From b37cc951cfdb95f18f0f028f2923d2d271c2f2b7 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Mon, 11 Nov 2024 17:16:13 +0300 Subject: [PATCH 1/7] country code loader update --- gradle/libs.versions.toml | 2 + multiplatformContact/build.gradle.kts | 2 +- .../kotlin/multiContacts/Picker.kt | 51 +++++++++++-------- .../kotlin/multiContacts/MultiContacts.kt | 38 -------------- .../commonMain/kotlin/multiContacts/Picker.kt | 5 +- .../iosMain/kotlin/multiContacts/Picker.kt | 5 +- .../kotlin/multicontactSample/Sample.kt | 39 ++++++++++++-- 7 files changed, 77 insertions(+), 65 deletions(-) delete mode 100644 multiplatformContact/src/commonMain/kotlin/multiContacts/MultiContacts.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 25baeb3..de532f5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,6 +17,7 @@ kotlin = "1.9.23" kotlinVersion = "1.9.21" coreKtx = "1.13.1" compose-activity = "1.9.0" +libphonenumber = "8.2.0" nexus-publish = "2.0.0" [libraries] @@ -33,6 +34,7 @@ androidx-activity-compose = { module = "androidx.activity:activity-compose", ver compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" } core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +libphonenumber = { module = "com.googlecode.libphonenumber:libphonenumber", version.ref = "libphonenumber" } nexus-publish = { module = "io.github.gradle-nexus.publish-plugin:io.github.gradle-nexus.publish-plugin.gradle.plugin", version.ref = "nexus-publish" } #Activity diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index 87bda61..4cc4764 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -28,7 +28,7 @@ kotlin { api(libs.androidx.activity.compose) api(libs.androidx.appcompat) //phone - implementation("com.googlecode.libphonenumber:libphonenumber:8.2.0") + implementation(libs.libphonenumber) } commonMain.dependencies { diff --git a/multiplatformContact/src/androidMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/androidMain/kotlin/multiContacts/Picker.kt index 9ad934f..104f270 100644 --- a/multiplatformContact/src/androidMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/androidMain/kotlin/multiContacts/Picker.kt @@ -4,7 +4,6 @@ import android.Manifest import android.content.Context import android.database.Cursor import android.net.Uri -import android.os.Build import android.provider.ContactsContract import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts @@ -16,6 +15,9 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext +import com.google.i18n.phonenumbers.NumberParseException +import com.google.i18n.phonenumbers.PhoneNumberUtil + /** * @param Launcher used to invoke the contacts picker @@ -24,32 +26,46 @@ import androidx.compose.ui.platform.LocalContext @Composable -actual fun pickMultiplatformContacts(onResult: (String) -> Unit): Launcher { +actual fun pickMultiplatformContacts( + countryISOCode: String, + onResult: (String) -> Unit +): Launcher { val context = LocalContext.current val launcherCustom: Launcher? val resultContacts = remember { mutableStateOf(null) } var phoneNumber by remember { mutableStateOf(null) } + val phoneUtil = PhoneNumberUtil.getInstance() val resultContactsValue = remember { mutableStateOf(false) } - val launcherContacts = rememberLauncherForActivityResult(ActivityResultContracts.PickContact()) { + val launcherContacts = + rememberLauncherForActivityResult(ActivityResultContracts.PickContact()) { resultContacts.value = it } - val launcherPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted: Boolean -> - resultContactsValue.value = isGranted - } + val launcherPermission = + rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted: Boolean -> + resultContactsValue.value = isGranted + } LaunchedEffect(resultContacts.value) { resultContacts.value?.let { uri -> phoneNumber = getPhoneNumberFromUriData(context, uri) } } phoneNumber?.let { - onResult(it) + try { + val formattedNumber = phoneUtil.parse(it, countryISOCode) + val e164FormattedNumber = + phoneUtil.format(formattedNumber, PhoneNumberUtil.PhoneNumberFormat.E164) + onResult(e164FormattedNumber) + } catch (e: NumberParseException) { + System.err.println("NumberParseException was thrown: $e") + } + // onResult(it) } launcherCustom = remember { Launcher(onLaunch = { launcherPermission.launch(Manifest.permission.READ_CONTACTS) - if(resultContactsValue.value){ + if (resultContactsValue.value) { launcherContacts.launch() - }else{ + } else { launcherPermission.launch(Manifest.permission.READ_CONTACTS) } }) @@ -59,7 +75,7 @@ actual fun pickMultiplatformContacts(onResult: (String) -> Unit): Launcher { fun getPhoneNumberFromUriData(context: Context, uri: Uri): String? { val contentResolver = context.contentResolver - val cursor: Cursor? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR) { + val cursor: Cursor? = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, arrayOf(ContactsContract.CommonDataKinds.Phone.NUMBER), @@ -67,18 +83,13 @@ fun getPhoneNumberFromUriData(context: Context, uri: Uri): String? { arrayOf(uri.lastPathSegment), null ) - } else { - TODO("VERSION.SDK_INT < ECLAIR") - } var phoneNumber: String? = null - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - cursor?.use { - if (it.moveToFirst()) { - phoneNumber = it.getString( - it.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER) - ) - } + cursor?.use { + if (it.moveToFirst()) { + phoneNumber = it.getString( + it.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER) + ) } } return phoneNumber diff --git a/multiplatformContact/src/commonMain/kotlin/multiContacts/MultiContacts.kt b/multiplatformContact/src/commonMain/kotlin/multiContacts/MultiContacts.kt deleted file mode 100644 index 23dd1c1..0000000 --- a/multiplatformContact/src/commonMain/kotlin/multiContacts/MultiContacts.kt +++ /dev/null @@ -1,38 +0,0 @@ -package multiContacts - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -@Composable -fun MultiContacts( - modifier: Modifier = Modifier, -) { - var number by remember { mutableStateOf("") } - val multiplatformContactsPicker = pickMultiplatformContacts(onResult = { - number = it - }) - Column(modifier = Modifier.fillMaxSize()) { - Text(text = number) - Button(modifier = Modifier.padding(top = 16.dp), - onClick = { - multiplatformContactsPicker.launch() - }) { - Text("Run") - } - } -} - - - - - diff --git a/multiplatformContact/src/commonMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/commonMain/kotlin/multiContacts/Picker.kt index 1f36953..0d8d9a9 100644 --- a/multiplatformContact/src/commonMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/commonMain/kotlin/multiContacts/Picker.kt @@ -3,4 +3,7 @@ package multiContacts import androidx.compose.runtime.Composable @Composable -expect fun pickMultiplatformContacts(onResult: (String) -> Unit): Launcher \ No newline at end of file +expect fun pickMultiplatformContacts( + countryISOCode: String, + onResult: (String) -> Unit +): Launcher \ No newline at end of file diff --git a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt index 3a9bb0c..1842665 100644 --- a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt @@ -18,7 +18,10 @@ import platform.darwin.NSObject typealias ContactPickedCallback = (String) -> Unit @Composable -actual fun pickMultiplatformContacts(onResult: ContactPickedCallback): Launcher { +actual fun pickMultiplatformContacts( + countryISOCode: String, + onResult: ContactPickedCallback +): Launcher { val launcherCustom = remember { Launcher(onLaunch = { val picker = CNContactPickerViewController() diff --git a/sample/common/src/commonMain/kotlin/multicontactSample/Sample.kt b/sample/common/src/commonMain/kotlin/multicontactSample/Sample.kt index b2827dc..831e29f 100644 --- a/sample/common/src/commonMain/kotlin/multicontactSample/Sample.kt +++ b/sample/common/src/commonMain/kotlin/multicontactSample/Sample.kt @@ -1,26 +1,57 @@ package multicontactSample +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import multiContacts.MultiContacts +import multiContacts.pickMultiplatformContacts @Composable fun Sample() { - + var number by remember { mutableStateOf("") } + val multiplatformContactsPicker = pickMultiplatformContacts( + countryISOCode = "KE", + onResult = { + number = it + }) Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background, ) { - Column(modifier = Modifier.fillMaxSize()) { + Column( + modifier = Modifier + .fillMaxSize(), + horizontalAlignment = Alignment.CenterHorizontally + ) { Text("Sample tests", modifier = Modifier.padding(bottom = 20.dp)) - MultiContacts(modifier = Modifier) + Text(text = number) + Row( + modifier = Modifier + .fillMaxWidth(), + horizontalArrangement = Arrangement.Center + ) { + Button(modifier = Modifier.padding(top = 16.dp), + onClick = { + multiplatformContactsPicker.launch() + }) { + Text("Load Contacts") + } + + } } } } \ No newline at end of file From c1e10fa0a41a2fba092c27f5f34049566ab4fa19 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Tue, 12 Nov 2024 18:01:25 +0300 Subject: [PATCH 2/7] country code update --- iosApp/Configuration/Config.xcconfig | 3 + iosApp/Podfile | 19 + iosApp/Podfile.lock | 34 + .../multiplatformContact.podspec.json | 39 + iosApp/Pods/Manifest.lock | 34 + iosApp/Pods/PhoneNumberKit/LICENSE | 21 + .../PhoneNumberKit/Bundle+Resources.swift | 40 + .../PhoneNumberKit/Constants.swift | 156 + .../PhoneNumberKit/Formatter.swift | 120 + .../PhoneNumberKit/MetadataManager.swift | 94 + .../PhoneNumberKit/MetadataParsing.swift | 161 + .../PhoneNumberKit/MetadataTypes.swift | 104 + .../NSRegularExpression+Swift.swift | 84 + .../PhoneNumberKit/ParseManager.swift | 197 + .../PhoneNumberKit/PartialFormatter.swift | 424 + .../PhoneNumberKit/PhoneNumber+Codable.swift | 144 + .../PhoneNumberKit/PhoneNumber.swift | 95 + .../PhoneNumberKit/PhoneNumberFormatter.swift | 223 + .../PhoneNumberKit/PhoneNumberKit.swift | 362 + .../PhoneNumberKit/PhoneNumberParser.swift | 299 + .../PhoneNumberKit/RegexManager.swift | 208 + .../Resources/PhoneNumberMetadata.json | 1 + .../UI/CountryCodePickerOptions.swift | 59 + .../UI/CountryCodePickerViewController.swift | 303 + .../UI/PhoneNumberTextField.swift | 622 + iosApp/Pods/PhoneNumberKit/README.md | 192 + iosApp/Pods/Pods.xcodeproj/project.pbxproj | 1153 ++ .../PhoneNumberKit/PhoneNumberKit-Info.plist | 26 + .../PhoneNumberKit/PhoneNumberKit-dummy.m | 5 + .../PhoneNumberKit/PhoneNumberKit-prefix.pch | 12 + .../PhoneNumberKit/PhoneNumberKit-umbrella.h | 16 + .../PhoneNumberKit.debug.xcconfig | 15 + .../PhoneNumberKit/PhoneNumberKit.modulemap | 6 + .../PhoneNumberKit.release.xcconfig | 15 + .../Pods-iosApp/Pods-iosApp-Info.plist | 26 + .../Pods-iosApp-acknowledgements.markdown | 208 + .../Pods-iosApp-acknowledgements.plist | 246 + .../Pods-iosApp/Pods-iosApp-dummy.m | 5 + ...pp-frameworks-Debug-input-files.xcfilelist | 3 + ...p-frameworks-Debug-output-files.xcfilelist | 2 + ...-frameworks-Release-input-files.xcfilelist | 3 + ...frameworks-Release-output-files.xcfilelist | 2 + .../Pods-iosApp/Pods-iosApp-frameworks.sh | 188 + ...App-resources-Debug-input-files.xcfilelist | 2 + ...pp-resources-Debug-output-files.xcfilelist | 1 + ...p-resources-Release-input-files.xcfilelist | 2 + ...-resources-Release-output-files.xcfilelist | 1 + .../Pods-iosApp/Pods-iosApp-resources.sh | 129 + .../Pods-iosApp/Pods-iosApp-umbrella.h | 16 + .../Pods-iosApp/Pods-iosApp.debug.xcconfig | 15 + .../Pods-iosApp/Pods-iosApp.modulemap | 6 + .../Pods-iosApp/Pods-iosApp.release.xcconfig | 15 + .../libPhoneNumber-iOS-Info.plist | 26 + .../libPhoneNumber-iOS-dummy.m | 5 + .../libPhoneNumber-iOS-prefix.pch | 12 + .../libPhoneNumber-iOS-umbrella.h | 29 + .../libPhoneNumber-iOS.debug.xcconfig | 13 + .../libPhoneNumber-iOS.modulemap | 6 + .../libPhoneNumber-iOS.release.xcconfig | 13 + .../multiplatformContact.debug.xcconfig | 16 + .../multiplatformContact.release.xcconfig | 16 + iosApp/Pods/libPhoneNumber-iOS/LICENSE | 176 + iosApp/Pods/libPhoneNumber-iOS/README.md | 121 + .../libPhoneNumber/NBAsYouTypeFormatter.h | 31 + .../libPhoneNumber/NBAsYouTypeFormatter.m | 1241 ++ .../libPhoneNumber/NBMetadataCore.h | 762 + .../libPhoneNumber/NBMetadataCore.m | 14078 ++++++++++++++++ .../libPhoneNumber/NBMetadataCoreMapper.h | 8 + .../libPhoneNumber/NBMetadataCoreMapper.m | 915 + .../libPhoneNumber/NBMetadataCoreTest.h | 93 + .../libPhoneNumber/NBMetadataCoreTest.m | 1619 ++ .../libPhoneNumber/NBMetadataCoreTestMapper.h | 8 + .../libPhoneNumber/NBMetadataCoreTestMapper.m | 116 + .../libPhoneNumber/NBMetadataHelper.h | 32 + .../libPhoneNumber/NBMetadataHelper.m | 259 + .../libPhoneNumber/NBNumberFormat.h | 22 + .../libPhoneNumber/NBNumberFormat.m | 98 + .../libPhoneNumber/NBPhoneMetaData.h | 43 + .../libPhoneNumber/NBPhoneMetaData.m | 106 + .../libPhoneNumber/NBPhoneNumber.h | 25 + .../libPhoneNumber/NBPhoneNumber.m | 119 + .../libPhoneNumber/NBPhoneNumberDefines.h | 85 + .../libPhoneNumber/NBPhoneNumberDesc.h | 19 + .../libPhoneNumber/NBPhoneNumberDesc.m | 105 + .../libPhoneNumber/NBPhoneNumberUtil.h | 98 + .../libPhoneNumber/NBPhoneNumberUtil.m | 3829 +++++ .../libPhoneNumber/NSArray+NBAdditions.h | 15 + .../libPhoneNumber/NSArray+NBAdditions.m | 28 + iosApp/iosApp.xcodeproj/project.pbxproj | 468 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../contents.xcworkspacedata | 10 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 14 + .../AppIcon.appiconset/app-icon-1024.png | Bin 0 -> 67285 bytes iosApp/iosApp/Assets.xcassets/Contents.json | 6 + iosApp/iosApp/ContentView.swift | 21 + iosApp/iosApp/Info.plist | 52 + .../Preview Assets.xcassets/Contents.json | 6 + iosApp/iosApp/iOSApp.swift | 10 + multiplatformContact/build.gradle.kts | 23 + .../multiplatformContact.podspec | 51 + .../iosMain/kotlin/multiContacts/Picker.kt | 22 +- 103 files changed, 31051 insertions(+), 1 deletion(-) create mode 100644 iosApp/Configuration/Config.xcconfig create mode 100644 iosApp/Podfile create mode 100644 iosApp/Podfile.lock create mode 100644 iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json create mode 100644 iosApp/Pods/Manifest.lock create mode 100644 iosApp/Pods/PhoneNumberKit/LICENSE create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/ParseManager.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift create mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift create mode 100644 iosApp/Pods/PhoneNumberKit/README.md create mode 100644 iosApp/Pods/Pods.xcodeproj/project.pbxproj create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap create mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-dummy.m create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist create mode 100755 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-output-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-output-files.xcfilelist create mode 100755 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-umbrella.h create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.modulemap create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap create mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig create mode 100644 iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig create mode 100644 iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig create mode 100755 iosApp/Pods/libPhoneNumber-iOS/LICENSE create mode 100755 iosApp/Pods/libPhoneNumber-iOS/README.md create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h create mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h create mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m create mode 100644 iosApp/iosApp.xcodeproj/project.pbxproj create mode 100644 iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 iosApp/iosApp.xcworkspace/contents.xcworkspacedata create mode 100644 iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png create mode 100644 iosApp/iosApp/Assets.xcassets/Contents.json create mode 100644 iosApp/iosApp/ContentView.swift create mode 100644 iosApp/iosApp/Info.plist create mode 100644 iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 iosApp/iosApp/iOSApp.swift create mode 100644 multiplatformContact/multiplatformContact.podspec diff --git a/iosApp/Configuration/Config.xcconfig b/iosApp/Configuration/Config.xcconfig new file mode 100644 index 0000000..737be3f --- /dev/null +++ b/iosApp/Configuration/Config.xcconfig @@ -0,0 +1,3 @@ +TEAM_ID= +BUNDLE_ID=org.example.project.MultiplatformContacts +APP_NAME=MultiplatformContacts \ No newline at end of file diff --git a/iosApp/Podfile b/iosApp/Podfile new file mode 100644 index 0000000..8edd7cd --- /dev/null +++ b/iosApp/Podfile @@ -0,0 +1,19 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + + + +target 'iosApp' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + platform :ios, '14.0' # ios.deploymentTarget + pod 'PhoneNumberKit', '~> 3.7' + + pod 'libPhoneNumber-iOS', '~> 0.8' + + pod 'multiplatformContact', :path => '/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec' + # Pods for iosApp + +end + + diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock new file mode 100644 index 0000000..55756dd --- /dev/null +++ b/iosApp/Podfile.lock @@ -0,0 +1,34 @@ +PODS: + - libPhoneNumber-iOS (0.8.0) + - multiplatformContact (1.0.0): + - libPhoneNumber-iOS (= 0.8) + - PhoneNumberKit (= 3.7) + - PhoneNumberKit (3.7.0): + - PhoneNumberKit/PhoneNumberKitCore (= 3.7.0) + - PhoneNumberKit/UIKit (= 3.7.0) + - PhoneNumberKit/PhoneNumberKitCore (3.7.0) + - PhoneNumberKit/UIKit (3.7.0): + - PhoneNumberKit/PhoneNumberKitCore + +DEPENDENCIES: + - libPhoneNumber-iOS (~> 0.8) + - multiplatformContact (from `/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec`) + - PhoneNumberKit (~> 3.7) + +SPEC REPOS: + trunk: + - libPhoneNumber-iOS + - PhoneNumberKit + +EXTERNAL SOURCES: + multiplatformContact: + :path: "/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec" + +SPEC CHECKSUMS: + libPhoneNumber-iOS: 6ad6dd425bea574d44885cc673b4b78ed7e9a355 + multiplatformContact: df498eb245ce2ee8c1d1d42a79cecec94792b46f + PhoneNumberKit: e8b8eb321385c969f5f350e0ef4104c38eebf2d0 + +PODFILE CHECKSUM: 4617581be2b6de64b8fb493bd5fad06b7c2c53aa + +COCOAPODS: 1.15.2 diff --git a/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json b/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json new file mode 100644 index 0000000..ebbb482 --- /dev/null +++ b/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json @@ -0,0 +1,39 @@ +{ + "name": "multiplatformContact", + "version": "1.0.0", + "homepage": "Link to the Shared Module homepage", + "source": { + "http": "" + }, + "authors": "", + "license": "", + "summary": "Some description for the Shared Module", + "vendored_frameworks": "build/cocoapods/framework/shared.framework", + "libraries": "c++", + "platforms": { + "ios": "14.0" + }, + "dependencies": { + "PhoneNumberKit": [ + "3.7" + ], + "libPhoneNumber-iOS": [ + "0.8" + ] + }, + "pod_target_xcconfig": { + "KOTLIN_PROJECT_PATH": ":multiplatformContact", + "PRODUCT_MODULE_NAME": "shared" + }, + "script_phases": [ + { + "name": "Build multiplatformContact", + "execution_position": "before_compile", + "shell_path": "/bin/sh", + "script": " if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"\"\n exit 0\n fi\n set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n" + } + ], + "resources": [ + "build/compose/ios/shared/compose-resources" + ] +} diff --git a/iosApp/Pods/Manifest.lock b/iosApp/Pods/Manifest.lock new file mode 100644 index 0000000..55756dd --- /dev/null +++ b/iosApp/Pods/Manifest.lock @@ -0,0 +1,34 @@ +PODS: + - libPhoneNumber-iOS (0.8.0) + - multiplatformContact (1.0.0): + - libPhoneNumber-iOS (= 0.8) + - PhoneNumberKit (= 3.7) + - PhoneNumberKit (3.7.0): + - PhoneNumberKit/PhoneNumberKitCore (= 3.7.0) + - PhoneNumberKit/UIKit (= 3.7.0) + - PhoneNumberKit/PhoneNumberKitCore (3.7.0) + - PhoneNumberKit/UIKit (3.7.0): + - PhoneNumberKit/PhoneNumberKitCore + +DEPENDENCIES: + - libPhoneNumber-iOS (~> 0.8) + - multiplatformContact (from `/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec`) + - PhoneNumberKit (~> 3.7) + +SPEC REPOS: + trunk: + - libPhoneNumber-iOS + - PhoneNumberKit + +EXTERNAL SOURCES: + multiplatformContact: + :path: "/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec" + +SPEC CHECKSUMS: + libPhoneNumber-iOS: 6ad6dd425bea574d44885cc673b4b78ed7e9a355 + multiplatformContact: df498eb245ce2ee8c1d1d42a79cecec94792b46f + PhoneNumberKit: e8b8eb321385c969f5f350e0ef4104c38eebf2d0 + +PODFILE CHECKSUM: 4617581be2b6de64b8fb493bd5fad06b7c2c53aa + +COCOAPODS: 1.15.2 diff --git a/iosApp/Pods/PhoneNumberKit/LICENSE b/iosApp/Pods/PhoneNumberKit/LICENSE new file mode 100644 index 0000000..f6314a6 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Roy Marmelstein + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift new file mode 100644 index 0000000..9eeb008 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift @@ -0,0 +1,40 @@ +import Foundation + +private class CurrentBundleFinder {} + +// The custom bundle locator code is needed to work around a bug in Xcode +// where SwiftUI previews in an SPM module will crash if they try to use +// resources in another SPM module that are loaded using the synthesized +// Bundle.module accessor. +// +extension Bundle { + static var phoneNumberKit: Bundle = { + #if DEBUG && SWIFT_PACKAGE + let bundleName = "PhoneNumberKit_PhoneNumberKit" + let candidates = [ + /* Bundle should be present here when the package is linked into an App. */ + Bundle.main.resourceURL, + /* Bundle should be present here when the package is linked into a framework. */ + Bundle(for: CurrentBundleFinder.self).resourceURL, + /* For command-line tools. */ + Bundle.main.bundleURL, + /* Bundle should be present here when running previews from a different package (this is the path to "…/Debug-iphonesimulator/"). */ + Bundle(for: CurrentBundleFinder.self).resourceURL?.deletingLastPathComponent().deletingLastPathComponent(), + /* Bundle should be present here when running previews from a framework which imports framework whick imports PhoneNumberKit package (this is the path to "…/Debug-iphonesimulator/"). */ + Bundle(for: CurrentBundleFinder.self).resourceURL?.deletingLastPathComponent() + ] + for candidate in candidates { + let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle") + if let bundle = bundlePath.flatMap(Bundle.init(url:)) { + return bundle + } + } + #endif + + #if SWIFT_PACKAGE + return Bundle.module + #else + return Bundle(for: CurrentBundleFinder.self) + #endif + }() +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift new file mode 100644 index 0000000..cde03ad --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift @@ -0,0 +1,156 @@ +// +// Constants.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 25/10/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +// MARK: Private Enums + +enum PhoneNumberCountryCodeSource { + case numberWithPlusSign + case numberWithIDD + case numberWithoutPlusSign + case defaultCountry +} + +// MARK: Public Enums + +/** + Enumeration for parsing error types + + - GeneralError: A general error occured. + - InvalidCountryCode: A country code could not be found or the one found was invalid + - InvalidNumber: The string provided is not a number + - TooLong: The string provided is too long to be a valid number + - TooShort: The string provided is too short to be a valid number + - Deprecated: The method used was deprecated + - metadataNotFound: PhoneNumberKit was unable to read the included metadata + - ambiguousNumber: The string could not be resolved to a single valid number + */ +public enum PhoneNumberError: Error, Equatable { + case generalError + case invalidCountryCode + case invalidNumber + case tooLong + case tooShort + case deprecated + case metadataNotFound + case ambiguousNumber(phoneNumbers: Set) +} + +extension PhoneNumberError: LocalizedError { + public var errorDescription: String? { + switch self { + case .generalError: return NSLocalizedString("An error occured whilst validating the phone number.", comment: "") + case .invalidCountryCode: return NSLocalizedString("The country code is invalid.", comment: "") + case .invalidNumber: return NSLocalizedString("The number provided is invalid.", comment: "") + case .tooLong: return NSLocalizedString("The number provided is too long.", comment: "") + case .tooShort: return NSLocalizedString("The number provided is too short.", comment: "") + case .deprecated: return NSLocalizedString("This function is deprecated.", comment: "") + case .metadataNotFound: return NSLocalizedString("Valid metadata is missing.", comment: "") + case .ambiguousNumber: return NSLocalizedString("Phone number is ambiguous.", comment: "") + } + } +} + +public enum PhoneNumberFormat { + case e164 // +33689123456 + case international // +33 6 89 12 34 56 + case national // 06 89 12 34 56 +} + +/** + Phone number type enumeration + - fixedLine: Fixed line numbers + - mobile: Mobile numbers + - fixedOrMobile: Either fixed or mobile numbers if we can't tell conclusively. + - pager: Pager numbers + - personalNumber: Personal number numbers + - premiumRate: Premium rate numbers + - sharedCost: Shared cost numbers + - tollFree: Toll free numbers + - voicemail: Voice mail numbers + - vOIP: Voip numbers + - uan: UAN numbers + - unknown: Unknown number type + */ +public enum PhoneNumberType: String, Codable { + case fixedLine + case mobile + case fixedOrMobile + case pager + case personalNumber + case premiumRate + case sharedCost + case tollFree + case voicemail + case voip + case uan + case unknown + case notParsed +} + +public enum PossibleLengthType: String, Codable { + case national + case localOnly +} + +// MARK: Constants + +struct PhoneNumberConstants { + static let defaultCountry = "US" + static let defaultExtnPrefix = " ext. " + static let longPhoneNumber = "999999999999999" + static let minLengthForNSN = 2 + static let maxInputStringLength = 250 + static let maxLengthCountryCode = 3 + static let maxLengthForNSN = 16 + static let nonBreakingSpace = "\u{00a0}" + static let plusChars = "++" + static let pausesAndWaitsChars = ",;" + static let operatorChars = "*#" + static let validDigitsString = "0-90-9٠-٩۰-۹" + static let digitPlaceholder = "\u{2008}" + static let separatorBeforeNationalNumber = " " +} + +struct PhoneNumberPatterns { + // MARK: Patterns + + static let firstGroupPattern = "(\\$\\d)" + static let fgPattern = "\\$FG" + static let npPattern = "\\$NP" + + static let allNormalizationMappings = ["0":"0", "1":"1", "2":"2", "3":"3", "4":"4", "5":"5", "6":"6", "7":"7", "8":"8", "9":"9", "٠":"0", "١":"1", "٢":"2", "٣":"3", "٤":"4", "٥":"5", "٦":"6", "٧":"7", "٨":"8", "٩":"9", "۰":"0", "۱":"1", "۲":"2", "۳":"3", "۴":"4", "۵":"5", "۶":"6", "۷":"7", "۸":"8", "۹":"9", "*":"*", "#":"#", ",":",", ";":";"] + static let capturingDigitPattern = "([0-90-9٠-٩۰-۹])" + + static let extnPattern = "(?:;ext=([0-90-9٠-٩۰-۹]{1,7})|[ \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|[,xxX##~~;]|int|anexo|int)[:\\..]?[ \\t,-]*([0-90-9٠-٩۰-۹]{1,7})#?|[- ]+([0-90-9٠-٩۰-۹]{1,5})#)$" + + static let iddPattern = "^(?:\\+|%@)" + + static let formatPattern = "^(?:%@)$" + + static let characterClassPattern = "\\[([^\\[\\]])*\\]" + + static let standaloneDigitPattern = "\\d(?=[^,}][^,}])" + + static let nationalPrefixParsingPattern = "^(?:%@)" + + static let prefixSeparatorPattern = "[- ]" + + static let eligibleAsYouTypePattern = "^[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*(\\$\\d[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*)+$" + + static let leadingPlusCharsPattern = "^[++]+" + + static let secondNumberStartPattern = "[\\\\\\/] *x" + + static let unwantedEndPattern = "[^0-90-9٠-٩۰-۹A-Za-z#]+$" + + static let validStartPattern = "[++0-90-9٠-٩۰-۹]" + + static let validPhoneNumberPattern = "^[0-90-9٠-٩۰-۹]{2}$|^[++]*(?:[-x\u{2010}-\u{2015}\u{2212}\u{30FC}\u{FF0D}-\u{FF0F} \u{00A0}\u{00AD}\u{200B}\u{2060}\u{3000}()\u{FF08}\u{FF09}\u{FF3B}\u{FF3D}.\\[\\]/~\u{2053}\u{223C}\u{FF5E}*]*[0-9\u{FF10}-\u{FF19}\u{0660}-\u{0669}\u{06F0}-\u{06F9}]){3,}[-x\u{2010}-\u{2015}\u{2212}\u{30FC}\u{FF0D}-\u{FF0F} \u{00A0}\u{00AD}\u{200B}\u{2060}\u{3000}()\u{FF08}\u{FF09}\u{FF3B}\u{FF3D}.\\[\\]/~\u{2053}\u{223C}\u{FF5E}*A-Za-z0-9\u{FF10}-\u{FF19}\u{0660}-\u{0669}\u{06F0}-\u{06F9}]*(?:(?:;ext=([0-90-9٠-٩۰-۹]{1,7})|[ \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|[,xxX##~~;]|int|anexo|int)[:\\..]?[ \\t,-]*([0-90-9٠-٩۰-۹]{1,7})#?|[- ]+([0-90-9٠-٩۰-۹]{1,5})#)?$)?[,;]*$" +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift new file mode 100644 index 0000000..c172fd9 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift @@ -0,0 +1,120 @@ +// +// Formatter.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 03/11/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +final class Formatter { + weak var regexManager: RegexManager? + + init(phoneNumberKit: PhoneNumberKit) { + self.regexManager = phoneNumberKit.regexManager + } + + init(regexManager: RegexManager) { + self.regexManager = regexManager + } + + // MARK: Formatting functions + + /// Formats phone numbers for display + /// + /// - Parameters: + /// - phoneNumber: Phone number object. + /// - formatType: Format type. + /// - regionMetadata: Region meta data. + /// - Returns: Formatted Modified national number ready for display. + func format(phoneNumber: PhoneNumber, formatType: PhoneNumberFormat, regionMetadata: MetadataTerritory?) -> String { + var formattedNationalNumber = phoneNumber.adjustedNationalNumber() + if let regionMetadata = regionMetadata { + formattedNationalNumber = self.formatNationalNumber(formattedNationalNumber, regionMetadata: regionMetadata, formatType: formatType) + if let formattedExtension = formatExtension(phoneNumber.numberExtension, regionMetadata: regionMetadata) { + formattedNationalNumber = formattedNationalNumber + formattedExtension + } + } + return formattedNationalNumber + } + + /// Formats extension for display + /// + /// - Parameters: + /// - numberExtension: Number extension string. + /// - regionMetadata: Region meta data. + /// - Returns: Modified number extension with either a preferred extension prefix or the default one. + func formatExtension(_ numberExtension: String?, regionMetadata: MetadataTerritory) -> String? { + if let extns = numberExtension { + if let preferredExtnPrefix = regionMetadata.preferredExtnPrefix { + return "\(preferredExtnPrefix)\(extns)" + } else { + return "\(PhoneNumberConstants.defaultExtnPrefix)\(extns)" + } + } + return nil + } + + /// Formats national number for display + /// + /// - Parameters: + /// - nationalNumber: National number string. + /// - regionMetadata: Region meta data. + /// - formatType: Format type. + /// - Returns: Modified nationalNumber for display. + func formatNationalNumber(_ nationalNumber: String, regionMetadata: MetadataTerritory, formatType: PhoneNumberFormat) -> String { + guard let regexManager = regexManager else { return nationalNumber } + let formats = regionMetadata.numberFormats + var selectedFormat: MetadataPhoneNumberFormat? + for format in formats { + if let leadingDigitPattern = format.leadingDigitsPatterns?.last { + if regexManager.stringPositionByRegex(leadingDigitPattern, string: String(nationalNumber)) == 0 { + if regexManager.matchesEntirely(format.pattern, string: String(nationalNumber)) { + selectedFormat = format + break + } + } + } else { + if regexManager.matchesEntirely(format.pattern, string: String(nationalNumber)) { + selectedFormat = format + break + } + } + } + if let formatPattern = selectedFormat { + guard let numberFormatRule = (formatType == PhoneNumberFormat.international && formatPattern.intlFormat != nil) ? formatPattern.intlFormat : formatPattern.format, let pattern = formatPattern.pattern else { + return nationalNumber + } + var formattedNationalNumber = String() + var prefixFormattingRule = String() + if let nationalPrefixFormattingRule = formatPattern.nationalPrefixFormattingRule, let nationalPrefix = regionMetadata.nationalPrefix { + prefixFormattingRule = regexManager.replaceStringByRegex(PhoneNumberPatterns.npPattern, string: nationalPrefixFormattingRule, template: nationalPrefix) + prefixFormattingRule = regexManager.replaceStringByRegex(PhoneNumberPatterns.fgPattern, string: prefixFormattingRule, template: "\\$1") + } + if formatType == PhoneNumberFormat.national, regexManager.hasValue(prefixFormattingRule) { + let replacePattern = regexManager.replaceFirstStringByRegex(PhoneNumberPatterns.firstGroupPattern, string: numberFormatRule, templateString: prefixFormattingRule) + formattedNationalNumber = regexManager.replaceStringByRegex(pattern, string: nationalNumber, template: replacePattern) + } else { + formattedNationalNumber = regexManager.replaceStringByRegex(pattern, string: nationalNumber, template: numberFormatRule) + } + return formattedNationalNumber + } else { + return nationalNumber + } + } +} + +public extension PhoneNumber { + /** + Adjust national number for display by adding leading zero if needed. Used for basic formatting functions. + - Returns: A string representing the adjusted national number. + */ + func adjustedNationalNumber() -> String { + if self.leadingZero == true { + return "0" + String(nationalNumber) + } else { + return String(nationalNumber) + } + } +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift new file mode 100644 index 0000000..a34e1d8 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift @@ -0,0 +1,94 @@ +// +// Metadata.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 03/10/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +final class MetadataManager { + private(set) var territories = [MetadataTerritory]() + + private var territoriesByCode = [UInt64: [MetadataTerritory]]() + private var mainTerritoryByCode = [UInt64: MetadataTerritory]() + private var territoriesByCountry = [String: MetadataTerritory]() + + // MARK: Lifecycle + + /// Private init populates metadata territories and the two hashed dictionaries for faster lookup. + /// + /// - Parameter metadataCallback: a closure that returns metadata as JSON Data. + public init(metadataCallback: MetadataCallback) { + self.territories = self.populateTerritories(metadataCallback: metadataCallback) + for item in self.territories { + var currentTerritories: [MetadataTerritory] = self.territoriesByCode[item.countryCode] ?? [MetadataTerritory]() + // In the case of multiple countries sharing a calling code, such as the NANPA countries, + // the one indicated with "isMainCountryForCode" in the metadata should be first. + if item.mainCountryForCode { + currentTerritories.insert(item, at: 0) + } else { + currentTerritories.append(item) + } + self.territoriesByCode[item.countryCode] = currentTerritories + if self.mainTerritoryByCode[item.countryCode] == nil || item.mainCountryForCode == true { + self.mainTerritoryByCode[item.countryCode] = item + } + self.territoriesByCountry[item.codeID] = item + } + } + + deinit { + territories.removeAll() + territoriesByCode.removeAll() + territoriesByCountry.removeAll() + } + + /// Populates the metadata from a metadataCallback. + /// + /// - Parameter metadataCallback: a closure that returns metadata as JSON Data. + /// - Returns: array of MetadataTerritory objects + private func populateTerritories(metadataCallback: MetadataCallback) -> [MetadataTerritory] { + var territoryArray = [MetadataTerritory]() + do { + let jsonData: Data? = try metadataCallback() + let jsonDecoder = JSONDecoder() + if let jsonData = jsonData, let metadata: PhoneNumberMetadata = try? jsonDecoder.decode(PhoneNumberMetadata.self, from: jsonData) { + territoryArray = metadata.territories + } + } catch { + debugPrint("ERROR: Unable to load PhoneNumberMetadata.json resource: \(error.localizedDescription)") + } + return territoryArray + } + + // MARK: Filters + + /// Get an array of MetadataTerritory objects corresponding to a given country code. + /// + /// - parameter code: international country code (e.g 44 for the UK). + /// + /// - returns: optional array of MetadataTerritory objects. + internal func filterTerritories(byCode code: UInt64) -> [MetadataTerritory]? { + return self.territoriesByCode[code] + } + + /// Get the MetadataTerritory objects for an ISO 3166 compliant region code. + /// + /// - parameter country: ISO 3166 compliant region code (e.g "GB" for the UK). + /// + /// - returns: A MetadataTerritory object. + internal func filterTerritories(byCountry country: String) -> MetadataTerritory? { + return self.territoriesByCountry[country.uppercased()] + } + + /// Get the main MetadataTerritory objects for a given country code. + /// + /// - parameter code: An international country code (e.g 1 for the US). + /// + /// - returns: A MetadataTerritory object. + internal func mainTerritory(forCode code: UInt64) -> MetadataTerritory? { + return self.mainTerritoryByCode[code] + } +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift new file mode 100644 index 0000000..4b83753 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift @@ -0,0 +1,161 @@ +// +// MetadataParsing.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 2019-02-10. +// Copyright © 2019 Roy Marmelstein. All rights reserved. +// + +import Foundation + +// MARK: - MetadataTerritory + +public extension MetadataTerritory { + enum CodingKeys: String, CodingKey { + case codeID = "id" + case countryCode + case internationalPrefix + case mainCountryForCode + case nationalPrefix + case nationalPrefixFormattingRule + case nationalPrefixForParsing + case nationalPrefixTransformRule + case preferredExtnPrefix + case emergency + case fixedLine + case generalDesc + case mobile + case pager + case personalNumber + case premiumRate + case sharedCost + case tollFree + case voicemail + case voip + case uan + case numberFormats = "numberFormat" + case leadingDigits + case availableFormats + } + + init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + + // Custom parsing logic + codeID = try container.decode(String.self, forKey: .codeID) + let code = try! container.decode(String.self, forKey: .countryCode) + countryCode = UInt64(code)! + mainCountryForCode = container.decodeBoolString(forKey: .mainCountryForCode) + let possibleNationalPrefixForParsing: String? = try container.decodeIfPresent(String.self, forKey: .nationalPrefixForParsing) + let possibleNationalPrefix: String? = try container.decodeIfPresent(String.self, forKey: .nationalPrefix) + nationalPrefix = possibleNationalPrefix + nationalPrefixForParsing = (possibleNationalPrefixForParsing == nil && possibleNationalPrefix != nil) ? nationalPrefix : possibleNationalPrefixForParsing + nationalPrefixFormattingRule = try container.decodeIfPresent(String.self, forKey: .nationalPrefixFormattingRule) + let availableFormats = try? container.nestedContainer(keyedBy: CodingKeys.self, forKey: .availableFormats) + let temporaryFormatList: [MetadataPhoneNumberFormat] = availableFormats?.decodeArrayOrObject(forKey: .numberFormats) ?? [MetadataPhoneNumberFormat]() + numberFormats = temporaryFormatList.withDefaultNationalPrefixFormattingRule(nationalPrefixFormattingRule) + + // Default parsing logic + internationalPrefix = try container.decodeIfPresent(String.self, forKey: .internationalPrefix) + nationalPrefixTransformRule = try container.decodeIfPresent(String.self, forKey: .nationalPrefixTransformRule) + preferredExtnPrefix = try container.decodeIfPresent(String.self, forKey: .preferredExtnPrefix) + emergency = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .emergency) + fixedLine = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .fixedLine) + generalDesc = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .generalDesc) + mobile = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .mobile) + pager = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .pager) + personalNumber = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .personalNumber) + premiumRate = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .premiumRate) + sharedCost = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .sharedCost) + tollFree = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .tollFree) + voicemail = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .voicemail) + voip = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .voip) + uan = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .uan) + leadingDigits = try container.decodeIfPresent(String.self, forKey: .leadingDigits) + } +} + +// MARK: - MetadataPhoneNumberFormat + +public extension MetadataPhoneNumberFormat { + enum CodingKeys: String, CodingKey { + case pattern + case format + case intlFormat + case leadingDigitsPatterns = "leadingDigits" + case nationalPrefixFormattingRule + case nationalPrefixOptionalWhenFormatting + case domesticCarrierCodeFormattingRule = "carrierCodeFormattingRule" + } + + init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + + // Custom parsing logic + leadingDigitsPatterns = container.decodeArrayOrObject(forKey: .leadingDigitsPatterns) + nationalPrefixOptionalWhenFormatting = container.decodeBoolString(forKey: .nationalPrefixOptionalWhenFormatting) + + // Default parsing logic + pattern = try container.decodeIfPresent(String.self, forKey: .pattern) + format = try container.decodeIfPresent(String.self, forKey: .format) + intlFormat = try container.decodeIfPresent(String.self, forKey: .intlFormat) + nationalPrefixFormattingRule = try container.decodeIfPresent(String.self, forKey: .nationalPrefixFormattingRule) + domesticCarrierCodeFormattingRule = try container.decodeIfPresent(String.self, forKey: .domesticCarrierCodeFormattingRule) + } +} + +// MARK: - PhoneNumberMetadata + +extension PhoneNumberMetadata { + enum CodingKeys: String, CodingKey { + case phoneNumberMetadata + case territories + case territory + } + + init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let metadataObject = try container.nestedContainer(keyedBy: CodingKeys.self, forKey: .phoneNumberMetadata) + let territoryObject = try metadataObject.nestedContainer(keyedBy: CodingKeys.self, forKey: .territories) + territories = try territoryObject.decode([MetadataTerritory].self, forKey: .territory) + } +} + +// MARK: - Parsing helpers + +private extension KeyedDecodingContainer where K: CodingKey { + /// Decodes a string to a boolean. Returns false if empty. + /// + /// - Parameter key: Coding key to decode + func decodeBoolString(forKey key: KeyedDecodingContainer.Key) -> Bool { + guard let value: String = try? self.decode(String.self, forKey: key) else { + return false + } + return Bool(value) ?? false + } + + /// Decodes either a single object or an array into an array. Returns an empty array if empty. + /// + /// - Parameter key: Coding key to decode + func decodeArrayOrObject(forKey key: KeyedDecodingContainer.Key) -> [T] { + guard let array: [T] = try? self.decode([T].self, forKey: key) else { + guard let object: T = try? self.decode(T.self, forKey: key) else { + return [T]() + } + return [object] + } + return array + } +} + +private extension Collection where Element == MetadataPhoneNumberFormat { + func withDefaultNationalPrefixFormattingRule(_ nationalPrefixFormattingRule: String?) -> [Element] { + return self.map { format -> MetadataPhoneNumberFormat in + var modifiedFormat = format + if modifiedFormat.nationalPrefixFormattingRule == nil { + modifiedFormat.nationalPrefixFormattingRule = nationalPrefixFormattingRule + } + return modifiedFormat + } + } +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift new file mode 100644 index 0000000..c7bf8ed --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift @@ -0,0 +1,104 @@ +// +// MetadataTypes.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 02/11/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +/** + MetadataTerritory object + - Parameter codeID: ISO 3166 compliant region code + - Parameter countryCode: International country code + - Parameter internationalPrefix: International prefix. Optional. + - Parameter mainCountryForCode: Whether the current metadata is the main country for its country code. + - Parameter nationalPrefix: National prefix + - Parameter nationalPrefixFormattingRule: National prefix formatting rule + - Parameter nationalPrefixForParsing: National prefix for parsing + - Parameter nationalPrefixTransformRule: National prefix transform rule + - Parameter emergency: MetadataPhoneNumberDesc for emergency numbers + - Parameter fixedLine: MetadataPhoneNumberDesc for fixed line numbers + - Parameter generalDesc: MetadataPhoneNumberDesc for general numbers + - Parameter mobile: MetadataPhoneNumberDesc for mobile numbers + - Parameter pager: MetadataPhoneNumberDesc for pager numbers + - Parameter personalNumber: MetadataPhoneNumberDesc for personal number numbers + - Parameter premiumRate: MetadataPhoneNumberDesc for premium rate numbers + - Parameter sharedCost: MetadataPhoneNumberDesc for shared cost numbers + - Parameter tollFree: MetadataPhoneNumberDesc for toll free numbers + - Parameter voicemail: MetadataPhoneNumberDesc for voice mail numbers + - Parameter voip: MetadataPhoneNumberDesc for voip numbers + - Parameter uan: MetadataPhoneNumberDesc for uan numbers + - Parameter leadingDigits: Optional leading digits for the territory + */ +public struct MetadataTerritory: Decodable { + public let codeID: String + public let countryCode: UInt64 + public let internationalPrefix: String? + public let mainCountryForCode: Bool + public let nationalPrefix: String? + public let nationalPrefixFormattingRule: String? + public let nationalPrefixForParsing: String? + public let nationalPrefixTransformRule: String? + public let preferredExtnPrefix: String? + public let emergency: MetadataPhoneNumberDesc? + public let fixedLine: MetadataPhoneNumberDesc? + public let generalDesc: MetadataPhoneNumberDesc? + public let mobile: MetadataPhoneNumberDesc? + public let pager: MetadataPhoneNumberDesc? + public let personalNumber: MetadataPhoneNumberDesc? + public let premiumRate: MetadataPhoneNumberDesc? + public let sharedCost: MetadataPhoneNumberDesc? + public let tollFree: MetadataPhoneNumberDesc? + public let voicemail: MetadataPhoneNumberDesc? + public let voip: MetadataPhoneNumberDesc? + public let uan: MetadataPhoneNumberDesc? + public let numberFormats: [MetadataPhoneNumberFormat] + public let leadingDigits: String? +} + +/** + MetadataPhoneNumberDesc object + - Parameter exampleNumber: An example phone number for the given type. Optional. + - Parameter nationalNumberPattern: National number regex pattern. Optional. + - Parameter possibleNumberPattern: Possible number regex pattern. Optional. + - Parameter possibleLengths: Possible phone number lengths. Optional. + */ +public struct MetadataPhoneNumberDesc: Decodable { + public let exampleNumber: String? + public let nationalNumberPattern: String? + public let possibleNumberPattern: String? + public let possibleLengths: MetadataPossibleLengths? +} + +public struct MetadataPossibleLengths: Decodable { + let national: String? + let localOnly: String? +} + +/** + MetadataPhoneNumberFormat object + - Parameter pattern: Regex pattern. Optional. + - Parameter format: Formatting template. Optional. + - Parameter intlFormat: International formatting template. Optional. + + - Parameter leadingDigitsPatterns: Leading digits regex pattern. Optional. + - Parameter nationalPrefixFormattingRule: National prefix formatting rule. Optional. + - Parameter nationalPrefixOptionalWhenFormatting: National prefix optional bool. Optional. + - Parameter domesticCarrierCodeFormattingRule: Domestic carrier code formatting rule. Optional. + */ +public struct MetadataPhoneNumberFormat: Decodable { + public let pattern: String? + public let format: String? + public let intlFormat: String? + public let leadingDigitsPatterns: [String]? + public var nationalPrefixFormattingRule: String? + public let nationalPrefixOptionalWhenFormatting: Bool? + public let domesticCarrierCodeFormattingRule: String? +} + +/// Internal object for metadata parsing +internal struct PhoneNumberMetadata: Decodable { + var territories: [MetadataTerritory] +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift new file mode 100644 index 0000000..ae6481c --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift @@ -0,0 +1,84 @@ +// +// NSRegularExpression+Swift.swift +// PhoneNumberKit +// +// Created by David Beck on 8/15/16. +// Copyright © 2016 Roy Marmelstein. All rights reserved. +// + +import Foundation + +extension String { + func nsRange(from range: Range) -> NSRange { + let utf16view = self.utf16 + let from = range.lowerBound.samePosition(in: utf16view) ?? self.startIndex + let to = range.upperBound.samePosition(in: utf16view) ?? self.endIndex + return NSRange(location: utf16view.distance(from: utf16view.startIndex, to: from), length: utf16view.distance(from: from, to: to)) + } + + func range(from nsRange: NSRange) -> Range? { + guard + let from16 = utf16.index(utf16.startIndex, offsetBy: nsRange.location, limitedBy: utf16.endIndex), + let to16 = utf16.index(from16, offsetBy: nsRange.length, limitedBy: utf16.endIndex), + let from = String.Index(from16, within: self), + let to = String.Index(to16, within: self) + else { return nil } + return from..? = nil, using block: (NSTextCheckingResult?, NSRegularExpression.MatchingFlags, UnsafeMutablePointer) -> Swift.Void) { + let range = range ?? string.startIndex..? = nil, using block: @escaping (NSTextCheckingResult?, NSRegularExpression.MatchingFlags, UnsafeMutablePointer) -> Swift.Void) { + let range = range ?? string.startIndex..? = nil) -> [NSTextCheckingResult] { + let range = range ?? string.startIndex..? = nil) -> Int { + let range = range ?? string.startIndex..? = nil) -> NSTextCheckingResult? { + let range = range ?? string.startIndex..? = nil) -> Range? { + let range = range ?? string.startIndex..? = nil, withTemplate templ: String) -> String { + let range = range ?? string.startIndex.. PhoneNumber { + guard let metadataManager = metadataManager, let regexManager = regexManager else { throw PhoneNumberError.generalError } + // Make sure region is in uppercase so that it matches metadata (1) + let region = region.uppercased() + // Extract number (2) + var nationalNumber = numberString + let match = try regexManager.phoneDataDetectorMatch(numberString) + let matchedNumber = nationalNumber.substring(with: match.range) + // Replace Arabic and Persian numerals and let the rest unchanged + nationalNumber = regexManager.stringByReplacingOccurrences(matchedNumber, map: PhoneNumberPatterns.allNormalizationMappings, keepUnmapped: true) + + // Strip and extract extension (3) + var numberExtension: String? + if let rawExtension = parser.stripExtension(&nationalNumber) { + numberExtension = self.parser.normalizePhoneNumber(rawExtension) + } + // Country code parse (4) + guard var regionMetadata = metadataManager.filterTerritories(byCountry: region) else { + throw PhoneNumberError.invalidCountryCode + } + let countryCode: UInt64 + do { + countryCode = try self.parser.extractCountryCode(nationalNumber, nationalNumber: &nationalNumber, metadata: regionMetadata) + } catch { + let plusRemovedNumberString = regexManager.replaceStringByRegex(PhoneNumberPatterns.leadingPlusCharsPattern, string: nationalNumber as String) + countryCode = try self.parser.extractCountryCode(plusRemovedNumberString, nationalNumber: &nationalNumber, metadata: regionMetadata) + } + + // Normalized number (5) + nationalNumber = self.parser.normalizePhoneNumber(nationalNumber) + if countryCode == 0 { + if let result = try validPhoneNumber(from: nationalNumber, using: regionMetadata, countryCode: regionMetadata.countryCode, ignoreType: ignoreType, numberString: numberString, numberExtension: numberExtension) { + return result + } + throw PhoneNumberError.invalidNumber + } + + // If country code is not default, grab correct metadata (6) + if countryCode != regionMetadata.countryCode, let countryMetadata = metadataManager.mainTerritory(forCode: countryCode) { + regionMetadata = countryMetadata + } + + if let result = try validPhoneNumber(from: nationalNumber, using: regionMetadata, countryCode: countryCode, ignoreType: ignoreType, numberString: numberString, numberExtension: numberExtension) { + return result + } + + // If everything fails, iterate through other territories with the same country code (7) + var possibleResults: Set = [] + if let metadataList = metadataManager.filterTerritories(byCode: countryCode) { + for metadata in metadataList where regionMetadata.codeID != metadata.codeID { + if let result = try validPhoneNumber(from: nationalNumber, using: metadata, countryCode: countryCode, ignoreType: ignoreType, numberString: numberString, numberExtension: numberExtension) { + possibleResults.insert(result) + } + } + } + + switch possibleResults.count { + case 0: throw PhoneNumberError.invalidNumber + case 1: return possibleResults.first! + default: throw PhoneNumberError.ambiguousNumber(phoneNumbers: possibleResults) + } + } + + // Parse task + + /** + Fastest way to parse an array of phone numbers. Uses custom region code. + - Parameter numberStrings: An array of raw number strings. + - Parameter region: ISO 3166 compliant region code. + - parameter ignoreType: Avoids number type checking for faster performance. + - Returns: An array of valid PhoneNumber objects. + */ + func parseMultiple(_ numberStrings: [String], withRegion region: String, ignoreType: Bool, shouldReturnFailedEmptyNumbers: Bool = false) -> [PhoneNumber] { + var hasError = false + + var multiParseArray = [PhoneNumber](unsafeUninitializedCapacity: numberStrings.count) { buffer, initializedCount in + DispatchQueue.concurrentPerform(iterations: numberStrings.count) { index in + let numberString = numberStrings[index] + do { + let phoneNumber = try self.parse(numberString, withRegion: region, ignoreType: ignoreType) + buffer.baseAddress!.advanced(by: index).initialize(to: phoneNumber) + } catch { + buffer.baseAddress!.advanced(by: index).initialize(to: PhoneNumber.notPhoneNumber()) + hasError = true + } + } + initializedCount = numberStrings.count + } + + if hasError && !shouldReturnFailedEmptyNumbers { + multiParseArray = multiParseArray.filter { $0.type != .notParsed } + } + + return multiParseArray + } + + /// Get correct ISO 3166 compliant region code for a number. + /// + /// - Parameters: + /// - nationalNumber: national number. + /// - countryCode: country code. + /// - leadingZero: whether or not the number has a leading zero. + /// - Returns: ISO 3166 compliant region code. + func getRegionCode(of nationalNumber: UInt64, countryCode: UInt64, leadingZero: Bool) -> String? { + guard let regexManager = regexManager, let metadataManager = metadataManager, let regions = metadataManager.filterTerritories(byCode: countryCode) else { return nil } + + if regions.count == 1 { + return regions[0].codeID + } + + let nationalNumberString = String(nationalNumber) + for region in regions { + if let leadingDigits = region.leadingDigits { + if regexManager.matchesAtStart(leadingDigits, string: nationalNumberString) { + return region.codeID + } + } + if leadingZero, self.parser.checkNumberType("0" + nationalNumberString, metadata: region) != .unknown { + return region.codeID + } + if self.parser.checkNumberType(nationalNumberString, metadata: region) != .unknown { + return region.codeID + } + } + return nil + } + + //MARK: Internal method + + + /// Creates a valid phone number given a specifc region metadata, used internally by the parse function + private func validPhoneNumber(from nationalNumber: String, using regionMetadata: MetadataTerritory, countryCode: UInt64, ignoreType: Bool, numberString: String, numberExtension: String?) throws -> PhoneNumber? { + guard let metadataManager = metadataManager, let regexManager = regexManager else { throw PhoneNumberError.generalError } + + var nationalNumber = nationalNumber + var regionMetadata = regionMetadata + + // National Prefix Strip (1) + self.parser.stripNationalPrefix(&nationalNumber, metadata: regionMetadata) + + // Test number against general number description for correct metadata (2) + if let generalNumberDesc = regionMetadata.generalDesc, + regexManager.hasValue(generalNumberDesc.nationalNumberPattern) == false || parser.isNumberMatchingDesc(nationalNumber, numberDesc: generalNumberDesc) == false { + return nil + } + // Finalize remaining parameters and create phone number object (3) + let leadingZero = nationalNumber.hasPrefix("0") + guard let finalNationalNumber = UInt64(nationalNumber) else { + throw PhoneNumberError.invalidNumber + } + + // Check if the number if of a known type (4) + var type: PhoneNumberType = .unknown + if ignoreType == false { + if let regionCode = getRegionCode(of: finalNationalNumber, countryCode: countryCode, leadingZero: leadingZero), let foundMetadata = metadataManager.filterTerritories(byCountry: regionCode){ + regionMetadata = foundMetadata + } + type = self.parser.checkNumberType(String(nationalNumber), metadata: regionMetadata, leadingZero: leadingZero) + if type == .unknown { + throw PhoneNumberError.invalidNumber + } + } + + return PhoneNumber(numberString: numberString, countryCode: countryCode, leadingZero: leadingZero, nationalNumber: finalNationalNumber, numberExtension: numberExtension, type: type, regionID: regionMetadata.codeID) + } + +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift new file mode 100644 index 0000000..0d98fa2 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift @@ -0,0 +1,424 @@ +// +// PartialFormatter.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 29/11/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +#if canImport(ObjectiveC) +import Foundation + +/// Partial formatter +public final class PartialFormatter { + private let phoneNumberKit: PhoneNumberKit + + weak var metadataManager: MetadataManager? + weak var parser: PhoneNumberParser? + weak var regexManager: RegexManager? + + public convenience init(phoneNumberKit: PhoneNumberKit = PhoneNumberKit(), + defaultRegion: String = PhoneNumberKit.defaultRegionCode(), + withPrefix: Bool = true, + maxDigits: Int? = nil, + ignoreIntlNumbers: Bool = false) { + self.init(phoneNumberKit: phoneNumberKit, + regexManager: phoneNumberKit.regexManager, + metadataManager: phoneNumberKit.metadataManager, + parser: phoneNumberKit.parseManager.parser, + defaultRegion: defaultRegion, + withPrefix: withPrefix, + maxDigits: maxDigits, + ignoreIntlNumbers: ignoreIntlNumbers) + } + + init(phoneNumberKit: PhoneNumberKit, + regexManager: RegexManager, + metadataManager: MetadataManager, + parser: PhoneNumberParser, defaultRegion: String, + withPrefix: Bool = true, + maxDigits: Int? = nil, + ignoreIntlNumbers: Bool = false) { + self.phoneNumberKit = phoneNumberKit + self.regexManager = regexManager + self.metadataManager = metadataManager + self.parser = parser + self.defaultRegion = defaultRegion + self.updateMetadataForDefaultRegion() + self.withPrefix = withPrefix + self.maxDigits = maxDigits + self.ignoreIntlNumbers = ignoreIntlNumbers + } + + public var defaultRegion: String { + didSet { + self.updateMetadataForDefaultRegion() + } + } + + public var maxDigits: Int? + + func updateMetadataForDefaultRegion() { + guard let metadataManager = metadataManager else { return } + if let regionMetadata = metadataManager.filterTerritories(byCountry: defaultRegion) { + self.defaultMetadata = metadataManager.mainTerritory(forCode: regionMetadata.countryCode) + } else { + self.defaultMetadata = nil + } + self.currentMetadata = self.defaultMetadata + } + + var defaultMetadata: MetadataTerritory? + var currentMetadata: MetadataTerritory? + var prefixBeforeNationalNumber = String() + var shouldAddSpaceAfterNationalPrefix = false + var withPrefix = true + var ignoreIntlNumbers = false + + // MARK: Status + + public var currentRegion: String { + if ignoreIntlNumbers, currentMetadata?.codeID == "001" { + return defaultRegion + } else { + let countryCode = self.phoneNumberKit.countryCode(for: self.defaultRegion) + if countryCode != 1, countryCode != 7 { + return currentMetadata?.codeID ?? "US" + } else { + return self.currentMetadata?.countryCode == 1 || self.currentMetadata?.countryCode == 7 + ? self.defaultRegion + : self.currentMetadata?.codeID ?? self.defaultRegion + } + } + } + + public func nationalNumber(from rawNumber: String) -> String { + guard let parser = parser else { return rawNumber } + + let iddFreeNumber = self.extractIDD(rawNumber) + var nationalNumber = parser.normalizePhoneNumber(iddFreeNumber) + if self.prefixBeforeNationalNumber.count > 0 { + nationalNumber = self.extractCountryCallingCode(nationalNumber) + } + + nationalNumber = self.extractNationalPrefix(nationalNumber) + + if let maxDigits = maxDigits { + let extra = nationalNumber.count - maxDigits + + if extra > 0 { + nationalNumber = String(nationalNumber.dropLast(extra)) + } + } + + return nationalNumber + } + + // MARK: Lifecycle + + /** + Formats a partial string (for use in TextField) + + - parameter rawNumber: Unformatted phone number string + + - returns: Formatted phone number string. + */ + public func formatPartial(_ rawNumber: String) -> String { + // Always reset variables with each new raw number + self.resetVariables() + + guard self.isValidRawNumber(rawNumber) else { + return rawNumber + } + let split = splitNumberAndPausesOrWaits(rawNumber) + + var nationalNumber = self.nationalNumber(from: split.number) + if let formats = availableFormats(nationalNumber) { + if let formattedNumber = applyFormat(nationalNumber, formats: formats) { + nationalNumber = formattedNumber + } else { + for format in formats { + if let template = createFormattingTemplate(format, rawNumber: nationalNumber) { + nationalNumber = self.applyFormattingTemplate(template, rawNumber: nationalNumber) + break + } + } + } + } + + var finalNumber = String() + if self.withPrefix, self.prefixBeforeNationalNumber.count > 0 { + finalNumber.append(self.prefixBeforeNationalNumber) + } + if self.withPrefix, self.shouldAddSpaceAfterNationalPrefix, self.prefixBeforeNationalNumber.count > 0, self.prefixBeforeNationalNumber.last != PhoneNumberConstants.separatorBeforeNationalNumber.first { + finalNumber.append(PhoneNumberConstants.separatorBeforeNationalNumber) + } + if nationalNumber.count > 0 { + finalNumber.append(nationalNumber) + } + if finalNumber.last == PhoneNumberConstants.separatorBeforeNationalNumber.first { + finalNumber = String(finalNumber[.. Bool { + do { + // In addition to validPhoneNumberPattern, + // accept any sequence of digits and whitespace, prefixed or not by a plus sign + let validPartialPattern = "[++]?(\\s*\\d)+\\s*$|\(PhoneNumberPatterns.validPhoneNumberPattern)" + let validNumberMatches = try regexManager?.regexMatches(validPartialPattern, string: rawNumber) + let validStart = self.regexManager?.stringPositionByRegex(PhoneNumberPatterns.validStartPattern, string: rawNumber) + if validNumberMatches?.count == 0 || validStart != 0 { + return false + } + } catch { + return false + } + return true + } + + internal func isNanpaNumberWithNationalPrefix(_ rawNumber: String) -> Bool { + guard self.currentMetadata?.countryCode == 1, rawNumber.count > 1 else { return false } + + let firstCharacter: String = String(describing: rawNumber.first) + let secondCharacter: String = String(describing: rawNumber[rawNumber.index(rawNumber.startIndex, offsetBy: 1)]) + return (firstCharacter == "1" && secondCharacter != "0" && secondCharacter != "1") + } + + func isFormatEligible(_ format: MetadataPhoneNumberFormat) -> Bool { + guard let phoneFormat = format.format else { + return false + } + do { + let validRegex = try regexManager?.regexWithPattern(PhoneNumberPatterns.eligibleAsYouTypePattern) + if validRegex?.firstMatch(in: phoneFormat, options: [], range: NSRange(location: 0, length: phoneFormat.count)) != nil { + return true + } + } catch {} + return false + } + + // MARK: Formatting Extractions + + func extractIDD(_ rawNumber: String) -> String { + var processedNumber = rawNumber + do { + if let internationalPrefix = currentMetadata?.internationalPrefix { + let prefixPattern = String(format: PhoneNumberPatterns.iddPattern, arguments: [internationalPrefix]) + let matches = try regexManager?.matchedStringByRegex(prefixPattern, string: rawNumber) + if let m = matches?.first { + let startCallingCode = m.count + let index = rawNumber.index(rawNumber.startIndex, offsetBy: startCallingCode) + processedNumber = String(rawNumber[index...]) + self.prefixBeforeNationalNumber = String(rawNumber[.. String { + var processedNumber = rawNumber + var startOfNationalNumber: Int = 0 + if self.isNanpaNumberWithNationalPrefix(rawNumber) { + self.prefixBeforeNationalNumber.append("1 ") + } else { + do { + if let nationalPrefix = currentMetadata?.nationalPrefixForParsing { + let nationalPrefixPattern = String(format: PhoneNumberPatterns.nationalPrefixParsingPattern, arguments: [nationalPrefix]) + let matches = try regexManager?.matchedStringByRegex(nationalPrefixPattern, string: rawNumber) + if let m = matches?.first { + startOfNationalNumber = m.count + } + } + } catch { + return processedNumber + } + } + let index = rawNumber.index(rawNumber.startIndex, offsetBy: startOfNationalNumber) + processedNumber = String(rawNumber[index...]) + self.prefixBeforeNationalNumber.append(String(rawNumber[.. String { + var processedNumber = rawNumber + if rawNumber.isEmpty { + return rawNumber + } + var numberWithoutCountryCallingCode = String() + if self.prefixBeforeNationalNumber.isEmpty == false, self.prefixBeforeNationalNumber.first != "+" { + self.prefixBeforeNationalNumber.append(PhoneNumberConstants.separatorBeforeNationalNumber) + } + if let potentialCountryCode = parser?.extractPotentialCountryCode(rawNumber, nationalNumber: &numberWithoutCountryCallingCode), potentialCountryCode != 0 { + processedNumber = numberWithoutCountryCallingCode + self.currentMetadata = self.metadataManager?.mainTerritory(forCode: potentialCountryCode) + let potentialCountryCodeString = String(potentialCountryCode) + prefixBeforeNationalNumber.append(potentialCountryCodeString) + self.prefixBeforeNationalNumber.append(" ") + } else if self.withPrefix == false, self.prefixBeforeNationalNumber.isEmpty { + let potentialCountryCodeString = String(describing: currentMetadata?.countryCode) + self.prefixBeforeNationalNumber.append(potentialCountryCodeString) + self.prefixBeforeNationalNumber.append(" ") + } + return processedNumber + } + + func splitNumberAndPausesOrWaits(_ rawNumber: String) -> (number: String, pausesOrWaits: String) { + if rawNumber.isEmpty { + return (rawNumber, "") + } + + let splitByComma = rawNumber.split(separator: ",", maxSplits: 1, omittingEmptySubsequences: false) + let splitBySemiColon = rawNumber.split(separator: ";", maxSplits: 1, omittingEmptySubsequences: false) + + if splitByComma[0].count != splitBySemiColon[0].count { + let foundCommasFirst = splitByComma[0].count < splitBySemiColon[0].count + + if foundCommasFirst { + return (String(splitByComma[0]), "," + splitByComma[1]) + } + else { + return (String(splitBySemiColon[0]), ";" + splitBySemiColon[1]) + } + } + return (rawNumber, "") + } + + func availableFormats(_ rawNumber: String) -> [MetadataPhoneNumberFormat]? { + guard let regexManager = regexManager else { return nil } + var tempPossibleFormats = [MetadataPhoneNumberFormat]() + var possibleFormats = [MetadataPhoneNumberFormat]() + if let metadata = currentMetadata { + let formatList = metadata.numberFormats + for format in formatList { + if self.isFormatEligible(format) { + tempPossibleFormats.append(format) + if let leadingDigitPattern = format.leadingDigitsPatterns?.last { + if regexManager.stringPositionByRegex(leadingDigitPattern, string: String(rawNumber)) == 0 { + possibleFormats.append(format) + } + } else { + if regexManager.matchesEntirely(format.pattern, string: String(rawNumber)) { + possibleFormats.append(format) + } + } + } + } + if possibleFormats.count == 0 { + possibleFormats.append(contentsOf: tempPossibleFormats) + } + return possibleFormats + } + return nil + } + + func applyFormat(_ rawNumber: String, formats: [MetadataPhoneNumberFormat]) -> String? { + guard let regexManager = regexManager else { return nil } + for format in formats { + if let pattern = format.pattern, let formatTemplate = format.format { + let patternRegExp = String(format: PhoneNumberPatterns.formatPattern, arguments: [pattern]) + do { + let matches = try regexManager.regexMatches(patternRegExp, string: rawNumber) + if matches.count > 0 { + if let nationalPrefixFormattingRule = format.nationalPrefixFormattingRule { + let separatorRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.prefixSeparatorPattern) + let nationalPrefixMatches = separatorRegex.matches(in: nationalPrefixFormattingRule, options: [], range: NSRange(location: 0, length: nationalPrefixFormattingRule.count)) + if nationalPrefixMatches.count > 0 { + self.shouldAddSpaceAfterNationalPrefix = true + } + } + let formattedNumber = regexManager.replaceStringByRegex(pattern, string: rawNumber, template: formatTemplate) + return formattedNumber + } + } catch {} + } + } + return nil + } + + func createFormattingTemplate(_ format: MetadataPhoneNumberFormat, rawNumber: String) -> String? { + guard var numberPattern = format.pattern, let numberFormat = format.format, let regexManager = regexManager else { + return nil + } + guard numberPattern.range(of: "|") == nil else { + return nil + } + do { + let characterClassRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.characterClassPattern) + numberPattern = characterClassRegex.stringByReplacingMatches(in: numberPattern, withTemplate: "\\\\d") + + let standaloneDigitRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.standaloneDigitPattern) + numberPattern = standaloneDigitRegex.stringByReplacingMatches(in: numberPattern, withTemplate: "\\\\d") + + if let tempTemplate = getFormattingTemplate(numberPattern, numberFormat: numberFormat, rawNumber: rawNumber) { + if let nationalPrefixFormattingRule = format.nationalPrefixFormattingRule { + let separatorRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.prefixSeparatorPattern) + let nationalPrefixMatch = separatorRegex.firstMatch(in: nationalPrefixFormattingRule, options: [], range: NSRange(location: 0, length: nationalPrefixFormattingRule.count)) + if nationalPrefixMatch != nil { + self.shouldAddSpaceAfterNationalPrefix = true + } + } + return tempTemplate + } + } catch {} + return nil + } + + func getFormattingTemplate(_ numberPattern: String, numberFormat: String, rawNumber: String) -> String? { + guard let regexManager = regexManager else { return nil } + do { + let matches = try regexManager.matchedStringByRegex(numberPattern, string: PhoneNumberConstants.longPhoneNumber) + if let match = matches.first { + if match.count < rawNumber.count { + return nil + } + var template = regexManager.replaceStringByRegex(numberPattern, string: match, template: numberFormat) + template = regexManager.replaceStringByRegex("9", string: template, template: PhoneNumberConstants.digitPlaceholder) + return template + } + } catch {} + return nil + } + + func applyFormattingTemplate(_ template: String, rawNumber: String) -> String { + var rebuiltString = String() + var rebuiltIndex = 0 + for character in template { + if character == PhoneNumberConstants.digitPlaceholder.first { + if rebuiltIndex < rawNumber.count { + let nationalCharacterIndex = rawNumber.index(rawNumber.startIndex, offsetBy: rebuiltIndex) + rebuiltString.append(rawNumber[nationalCharacterIndex]) + rebuiltIndex += 1 + } + } else { + if rebuiltIndex < rawNumber.count { + rebuiltString.append(character) + } + } + } + if rebuiltIndex < rawNumber.count { + let nationalCharacterIndex = rawNumber.index(rawNumber.startIndex, offsetBy: rebuiltIndex) + let remainingNationalNumber: String = String(rawNumber[nationalCharacterIndex...]) + rebuiltString.append(remainingNationalNumber) + } + rebuiltString = rebuiltString.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) + + return rebuiltString + } +} +#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift new file mode 100644 index 0000000..4f284b3 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift @@ -0,0 +1,144 @@ +// +// PhoneNumber+Codable.swift +// PhoneNumberKit +// +// Created by David Roman on 16/11/2021. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +/// The strategy used to decode a `PhoneNumber` value. +public enum PhoneNumberDecodingStrategy { + /// Decode `PhoneNumber` properties as key-value pairs. This is the default strategy. + case properties + /// Decode `PhoneNumber` as a E164 formatted string. + case e164 + /// The default `PhoneNumber` encoding strategy. + public static var `default` = properties +} + +/// The strategy used to encode a `PhoneNumber` value. +public enum PhoneNumberEncodingStrategy { + /// Encode `PhoneNumber` properties as key-value pairs. This is the default strategy. + case properties + /// Encode `PhoneNumber` as a E164 formatted string. + case e164 + /// The default `PhoneNumber` encoding strategy. + public static var `default` = properties +} + +public enum PhoneNumberDecodingUtils { + /// The default `PhoneNumberKit` instance used for parsing when decoding, if needed. + public static var defaultPhoneNumberKit: () -> PhoneNumberKit = { .init() } +} + +public enum PhoneNumberEncodingUtils { + /// The default `PhoneNumberKit` instance used for formatting when encoding, if needed. + public static var defaultPhoneNumberKit: () -> PhoneNumberKit = { .init() } +} + +extension JSONDecoder { + /// The strategy used to decode a `PhoneNumber` value. + public var phoneNumberDecodingStrategy: PhoneNumberDecodingStrategy { + get { + return userInfo[.phoneNumberDecodingStrategy] as? PhoneNumberDecodingStrategy ?? .default + } + set { + userInfo[.phoneNumberDecodingStrategy] = newValue + } + } + + /// The `PhoneNumberKit` instance used for parsing when decoding, if needed. + public var phoneNumberKit: () -> PhoneNumberKit { + get { + return userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberDecodingUtils.defaultPhoneNumberKit + } + set { + userInfo[.phoneNumberKit] = newValue + } + } +} + +extension JSONEncoder { + /// The strategy used to encode a `PhoneNumber` value. + public var phoneNumberEncodingStrategy: PhoneNumberEncodingStrategy { + get { + return userInfo[.phoneNumberEncodingStrategy] as? PhoneNumberEncodingStrategy ?? .default + } + set { + userInfo[.phoneNumberEncodingStrategy] = newValue + } + } + + /// The `PhoneNumberKit` instance used for formatting when encoding, if needed. + public var phoneNumberKit: () -> PhoneNumberKit { + get { + return userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberEncodingUtils.defaultPhoneNumberKit + } + set { + userInfo[.phoneNumberKit] = newValue + } + } +} + +extension PhoneNumber: Codable { + public init(from decoder: Decoder) throws { + let strategy = decoder.userInfo[.phoneNumberDecodingStrategy] as? PhoneNumberDecodingStrategy ?? .default + switch strategy { + case .properties: + let container = try decoder.container(keyedBy: CodingKeys.self) + try self.init( + numberString: container.decode(String.self, forKey: .numberString), + countryCode: container.decode(UInt64.self, forKey: .countryCode), + leadingZero: container.decode(Bool.self, forKey: .leadingZero), + nationalNumber: container.decode(UInt64.self, forKey: .nationalNumber), + numberExtension: container.decodeIfPresent(String.self, forKey: .numberExtension), + type: container.decode(PhoneNumberType.self, forKey: .type), + regionID: container.decodeIfPresent(String.self, forKey: .regionID) + ) + case .e164: + let container = try decoder.singleValueContainer() + let e164String = try container.decode(String.self) + let phoneNumberKit = decoder.userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberDecodingUtils.defaultPhoneNumberKit + self = try phoneNumberKit().parse(e164String, ignoreType: true) + } + } + + public func encode(to encoder: Encoder) throws { + let strategy = encoder.userInfo[.phoneNumberEncodingStrategy] as? PhoneNumberEncodingStrategy ?? .default + switch strategy { + case .properties: + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(numberString, forKey: .numberString) + try container.encode(countryCode, forKey: .countryCode) + try container.encode(leadingZero, forKey: .leadingZero) + try container.encode(nationalNumber, forKey: .nationalNumber) + try container.encode(numberExtension, forKey: .numberExtension) + try container.encode(type, forKey: .type) + try container.encode(regionID, forKey: .regionID) + case .e164: + var container = encoder.singleValueContainer() + let phoneNumberKit = encoder.userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberEncodingUtils.defaultPhoneNumberKit + let e164String = phoneNumberKit().format(self, toType: .e164) + try container.encode(e164String) + } + } + + private enum CodingKeys: String, CodingKey { + case numberString + case countryCode + case leadingZero + case nationalNumber + case numberExtension + case type + case regionID + } +} + +extension CodingUserInfoKey { + static let phoneNumberDecodingStrategy = Self(rawValue: "com.roymarmelstein.PhoneNumberKit.decoding-strategy")! + static let phoneNumberEncodingStrategy = Self(rawValue: "com.roymarmelstein.PhoneNumberKit.encoding-strategy")! + + static let phoneNumberKit = Self(rawValue: "com.roymarmelstein.PhoneNumberKit.instance")! +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift new file mode 100644 index 0000000..d25962f --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift @@ -0,0 +1,95 @@ +// +// PhoneNumber.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 26/09/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +/** + Parsed phone number object + + - numberString: String used to generate phone number struct + - countryCode: Country dialing code as an unsigned. Int. + - leadingZero: Some countries (e.g. Italy) require leading zeros. Bool. + - nationalNumber: National number as an unsigned. Int. + - numberExtension: Extension if available. String. Optional + - type: Computed phone number type on access. Returns from an enumeration - PNPhoneNumberType. + */ +public struct PhoneNumber { + public let numberString: String + public let countryCode: UInt64 + public let leadingZero: Bool + public let nationalNumber: UInt64 + public let numberExtension: String? + public let type: PhoneNumberType + public let regionID: String? +} + +extension PhoneNumber: Equatable { + public static func == (lhs: PhoneNumber, rhs: PhoneNumber) -> Bool { + return (lhs.countryCode == rhs.countryCode) + && (lhs.leadingZero == rhs.leadingZero) + && (lhs.nationalNumber == rhs.nationalNumber) + && (lhs.numberExtension == rhs.numberExtension) + } +} + +extension PhoneNumber: Hashable { + public func hash(into hasher: inout Hasher) { + hasher.combine(self.countryCode) + hasher.combine(self.nationalNumber) + hasher.combine(self.leadingZero) + if let numberExtension = numberExtension { + hasher.combine(numberExtension) + } else { + hasher.combine(0) + } + } +} + +extension PhoneNumber { + public static func notPhoneNumber() -> PhoneNumber { + return PhoneNumber(numberString: "", countryCode: 0, leadingZero: false, nationalNumber: 0, numberExtension: nil, type: .notParsed, regionID: nil) + } + + public func notParsed() -> Bool { + return self.type == .notParsed + } + + /** + Get a callable URL from the number. + - Returns: A callable URL. + */ + public var url: URL? { + return URL(string: "tel://" + numberString) + } +} + +/// In past versions of PhoneNumberKit you were able to initialize a PhoneNumber object to parse a String. Please use a PhoneNumberKit object's methods. +public extension PhoneNumber { + /** + DEPRECATED. + Parse a string into a phone number object using default region. Can throw. + - Parameter rawNumber: String to be parsed to phone number struct. + */ + @available(*, unavailable, message: "use PhoneNumberKit instead to produce PhoneNumbers") + init(rawNumber: String) throws { + assertionFailure(PhoneNumberError.deprecated.localizedDescription) + throw PhoneNumberError.deprecated + } + + /** + DEPRECATED. + Parse a string into a phone number object using custom region. Can throw. + - Parameter rawNumber: String to be parsed to phone number struct. + - Parameter region: ISO 3166 compliant region code. + */ + @available(*, unavailable, message: "use PhoneNumberKit instead to produce PhoneNumbers") + init(rawNumber: String, region: String) throws { + throw PhoneNumberError.deprecated + } +} + diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift new file mode 100644 index 0000000..47fa218 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift @@ -0,0 +1,223 @@ +// +// PhoneNumberFormatter.swift +// PhoneNumberKit +// +// Created by Jean-Daniel. +// Copyright © 2019 Xenonium. All rights reserved. +// + +#if canImport(ObjectiveC) +import Foundation + +open class PhoneNumberFormatter: Foundation.Formatter { + public let phoneNumberKit: PhoneNumberKit + + private let partialFormatter: PartialFormatter + + // We declare all properties as @objc, so we can configure them though IB (using custom property) + @objc public dynamic + var generatesPhoneNumber = false + + /// Override region to set a custom region. Automatically uses the default region code. + @objc public dynamic + var defaultRegion = PhoneNumberKit.defaultRegionCode() { + didSet { + self.partialFormatter.defaultRegion = self.defaultRegion + } + } + + @objc public dynamic + var withPrefix: Bool = true { + didSet { + self.partialFormatter.withPrefix = self.withPrefix + } + } + + @objc public dynamic + var currentRegion: String { + return self.partialFormatter.currentRegion + } + + // MARK: Lifecycle + + public init(phoneNumberKit pnk: PhoneNumberKit = PhoneNumberKit(), defaultRegion: String = PhoneNumberKit.defaultRegionCode(), withPrefix: Bool = true) { + self.phoneNumberKit = pnk + self.partialFormatter = PartialFormatter(phoneNumberKit: self.phoneNumberKit, defaultRegion: defaultRegion, withPrefix: withPrefix) + super.init() + } + + public required init?(coder aDecoder: NSCoder) { + self.phoneNumberKit = PhoneNumberKit() + self.partialFormatter = PartialFormatter(phoneNumberKit: self.phoneNumberKit, defaultRegion: self.defaultRegion, withPrefix: self.withPrefix) + super.init(coder: aDecoder) + } +} + +// MARK: - + +// MARK: NSFormatter implementation + +extension PhoneNumberFormatter { + open override func string(for obj: Any?) -> String? { + if let pn = obj as? PhoneNumber { + return self.phoneNumberKit.format(pn, toType: self.withPrefix ? .international : .national) + } + if let str = obj as? String { + return self.partialFormatter.formatPartial(str) + } + return nil + } + + open override func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer?, for string: String, errorDescription error: AutoreleasingUnsafeMutablePointer?) -> Bool { + if self.generatesPhoneNumber { + do { + obj?.pointee = try self.phoneNumberKit.parse(string) as AnyObject? + return true + } catch (let e) { + error?.pointee = e.localizedDescription as NSString + return false + } + } else { + obj?.pointee = string as NSString + return true + } + } + + // MARK: Phone number formatting + + /** + * To keep the cursor position, we find the character immediately after the cursor and count the number of times it repeats in the remaining string as this will remain constant in every kind of editing. + */ + private struct CursorPosition { + let numberAfterCursor: unichar + let repetitionCountFromEnd: Int + } + + private func extractCursorPosition(from text: NSString, selection selectedTextRange: NSRange) -> CursorPosition? { + var repetitionCountFromEnd = 0 + + // The selection range is based on NSString representation + var cursorEnd = selectedTextRange.location + selectedTextRange.length + + guard cursorEnd < text.length else { + // Cursor at end of string + return nil + } + + // Get the character after the cursor + var char: unichar + repeat { + char = text.character(at: cursorEnd) // should work even if char is start of compound sequence + cursorEnd += 1 + // We consider only digit as other characters may be inserted by the formatter (especially spaces) + } while !char.isDigit() && cursorEnd < text.length + + guard cursorEnd < text.length else { + // Cursor at end of string + return nil + } + + // Look for the next valid number after the cursor, when found return a CursorPosition struct + for i in cursorEnd.. Action { + // If origin range length > 0, this is a delete or replace action + if range.length == 0 { + return .insert + } + + // If proposed length = orig length - orig range length -> this is delete action + if origString.length - range.length == proposedString.length { + return .delete + } + // If proposed length > orig length - orig range length -> this is replace action + return .replace + } + + open override func isPartialStringValid( + _ partialStringPtr: AutoreleasingUnsafeMutablePointer, + proposedSelectedRange proposedSelRangePtr: NSRangePointer?, + originalString origString: String, + originalSelectedRange origSelRange: NSRange, + errorDescription error: AutoreleasingUnsafeMutablePointer? + ) -> Bool { + guard let proposedSelRangePtr = proposedSelRangePtr else { + // I guess this is an annotation issue. I can't see a valid case where the pointer can be null + return true + } + + // We want to allow space deletion or insertion + let orig = origString as NSString + let action = self.action(for: orig, range: origSelRange, proposedString: partialStringPtr.pointee, proposedRange: proposedSelRangePtr.pointee) + if action == .delete && orig.isWhiteSpace(in: origSelRange) { + // Deleting white space + return true + } + + // Also allow to add white space ? + if action == .insert || action == .replace { + // Determine the inserted text range. This is the range starting at orig selection index and with length = ∆length + let length = partialStringPtr.pointee.length - orig.length + origSelRange.length + if partialStringPtr.pointee.isWhiteSpace(in: NSRange(location: origSelRange.location, length: length)) { + return true + } + } + + let text = partialStringPtr.pointee as String + let formattedNationalNumber = self.partialFormatter.formatPartial(text) + guard formattedNationalNumber != text else { + // No change, no need to update the text + return true + } + + // Fix selection + + // The selection range is based on NSString representation + let formattedTextNSString = formattedNationalNumber as NSString + if let cursor = extractCursorPosition(from: partialStringPtr.pointee, selection: proposedSelRangePtr.pointee) { + var remaining = cursor.repetitionCountFromEnd + for i in stride(from: formattedTextNSString.length - 1, through: 0, by: -1) { + if formattedTextNSString.character(at: i) == cursor.numberAfterCursor { + if remaining > 0 { + remaining -= 1 + } else { + // We are done + proposedSelRangePtr.pointee = NSRange(location: i, length: 0) + break + } + } + } + } else { + // assume the pointer is at end of string + proposedSelRangePtr.pointee = NSRange(location: formattedTextNSString.length, length: 0) + } + + partialStringPtr.pointee = formattedNationalNumber as NSString + return false + } +} + +private extension NSString { + func isWhiteSpace(in range: NSRange) -> Bool { + return rangeOfCharacter(from: CharacterSet.whitespacesAndNewlines.inverted, options: [.literal], range: range).location == NSNotFound + } +} + +private extension unichar { + func isDigit() -> Bool { + return self >= 0x30 && self <= 0x39 // '0' < '9' + } +} +#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift new file mode 100644 index 0000000..e1a7765 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift @@ -0,0 +1,362 @@ +// +// PhoneNumberKit.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 03/10/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation +#if canImport(Contacts) +import Contacts +#endif + +public typealias MetadataCallback = (() throws -> Data?) + +public final class PhoneNumberKit { + // Manager objects + let metadataManager: MetadataManager + let parseManager: ParseManager + let regexManager = RegexManager() + + // MARK: Lifecycle + + public init(metadataCallback: @escaping MetadataCallback = PhoneNumberKit.defaultMetadataCallback) { + self.metadataManager = MetadataManager(metadataCallback: metadataCallback) + self.parseManager = ParseManager(metadataManager: self.metadataManager, regexManager: self.regexManager) + } + + // MARK: Parsing + + /// Parses a number string, used to create PhoneNumber objects. Throws. + /// + /// - Parameters: + /// - numberString: the raw number string. + /// - region: ISO 3166 compliant region code. + /// - ignoreType: Avoids number type checking for faster performance. + /// - Returns: PhoneNumber object. + public func parse(_ numberString: String, withRegion region: String = PhoneNumberKit.defaultRegionCode(), ignoreType: Bool = false) throws -> PhoneNumber { + let region = region.uppercased() + do { + return try self.parseManager.parse(numberString, withRegion: region, ignoreType: ignoreType) + } catch { + guard numberString.first != "+", let regionMetadata = metadataManager.filterTerritories(byCountry: region) else { + throw error + } + let countryCode = String(regionMetadata.countryCode) + guard numberString.prefix(countryCode.count) == countryCode else { + throw error + } + return try self.parse("+\(numberString)", withRegion: region, ignoreType: ignoreType) + } + } + + /// Parses an array of number strings. Optimised for performance. Invalid numbers are ignored in the resulting array + /// + /// - parameter numberStrings: array of raw number strings. + /// - parameter region: ISO 3166 compliant region code. + /// - parameter ignoreType: Avoids number type checking for faster performance. + /// + /// - returns: array of PhoneNumber objects. + public func parse(_ numberStrings: [String], withRegion region: String = PhoneNumberKit.defaultRegionCode(), ignoreType: Bool = false, shouldReturnFailedEmptyNumbers: Bool = false) -> [PhoneNumber] { + return self.parseManager.parseMultiple(numberStrings, withRegion: region, ignoreType: ignoreType, shouldReturnFailedEmptyNumbers: shouldReturnFailedEmptyNumbers) + } + + // MARK: Checking + + /// Checks if a number string is a valid PhoneNumber object + /// + /// - Parameters: + /// - numberString: the raw number string. + /// - region: ISO 3166 compliant region code. + /// - ignoreType: Avoids number type checking for faster performance. + /// - Returns: Bool + public func isValidPhoneNumber(_ numberString: String, withRegion region: String = PhoneNumberKit.defaultRegionCode(), ignoreType: Bool = false) -> Bool { + return (try? self.parse(numberString, withRegion: region, ignoreType: ignoreType)) != nil + } + + // MARK: Formatting + + /// Formats a PhoneNumber object for display. + /// + /// - parameter phoneNumber: PhoneNumber object. + /// - parameter formatType: PhoneNumberFormat enum. + /// - parameter prefix: whether or not to include the prefix. + /// + /// - returns: Formatted representation of the PhoneNumber. + public func format(_ phoneNumber: PhoneNumber, toType formatType: PhoneNumberFormat, withPrefix prefix: Bool = true) -> String { + if formatType == .e164 { + let formattedNationalNumber = phoneNumber.adjustedNationalNumber() + if prefix == false { + return formattedNationalNumber + } + return "+\(phoneNumber.countryCode)\(formattedNationalNumber)" + } else { + let formatter = Formatter(phoneNumberKit: self) + let regionMetadata = self.metadataManager.mainTerritory(forCode: phoneNumber.countryCode) + let formattedNationalNumber = formatter.format(phoneNumber: phoneNumber, formatType: formatType, regionMetadata: regionMetadata) + if formatType == .international, prefix == true { + return "+\(phoneNumber.countryCode) \(formattedNationalNumber)" + } else { + return formattedNationalNumber + } + } + } + + // MARK: Country and region code + + /// Get a list of all the countries in the metadata database + /// + /// - returns: An array of ISO 3166 compliant region codes. + public func allCountries() -> [String] { + let results = self.metadataManager.territories.map { $0.codeID } + return results + } + + /// Get an array of ISO 3166 compliant region codes corresponding to a given country code. + /// + /// - parameter countryCode: international country code (e.g 44 for the UK). + /// + /// - returns: optional array of ISO 3166 compliant region codes. + public func countries(withCode countryCode: UInt64) -> [String]? { + let results = self.metadataManager.filterTerritories(byCode: countryCode)?.map { $0.codeID } + return results + } + + /// Get an main ISO 3166 compliant region code for a given country code. + /// + /// - parameter countryCode: international country code (e.g 1 for the US). + /// + /// - returns: ISO 3166 compliant region code string. + public func mainCountry(forCode countryCode: UInt64) -> String? { + let country = self.metadataManager.mainTerritory(forCode: countryCode) + return country?.codeID + } + + /// Get an international country code for an ISO 3166 compliant region code + /// + /// - parameter country: ISO 3166 compliant region code. + /// + /// - returns: international country code (e.g. 33 for France). + public func countryCode(for country: String) -> UInt64? { + let results = self.metadataManager.filterTerritories(byCountry: country)?.countryCode + return results + } + + /// Get leading digits for an ISO 3166 compliant region code. + /// + /// - parameter country: ISO 3166 compliant region code. + /// + /// - returns: leading digits (e.g. 876 for Jamaica). + public func leadingDigits(for country: String) -> String? { + let leadingDigits = self.metadataManager.filterTerritories(byCountry: country)?.leadingDigits + return leadingDigits + } + + /// Determine the region code of a given phone number. + /// + /// - parameter phoneNumber: PhoneNumber object + /// + /// - returns: Region code, eg "US", or nil if the region cannot be determined. + public func getRegionCode(of phoneNumber: PhoneNumber) -> String? { + return self.parseManager.getRegionCode(of: phoneNumber.nationalNumber, countryCode: phoneNumber.countryCode, leadingZero: phoneNumber.leadingZero) + } + + /// Get an example phone number for an ISO 3166 compliant region code. + /// + /// - parameter countryCode: ISO 3166 compliant region code. + /// - parameter type: The `PhoneNumberType` desired. default: `.mobile` + /// + /// - returns: An example phone number + public func getExampleNumber(forCountry countryCode: String, ofType type: PhoneNumberType = .mobile) -> PhoneNumber? { + let metadata = self.metadata(for: countryCode) + let example: String? + switch type { + case .fixedLine: example = metadata?.fixedLine?.exampleNumber + case .mobile: example = metadata?.mobile?.exampleNumber + case .fixedOrMobile: example = metadata?.mobile?.exampleNumber + case .pager: example = metadata?.pager?.exampleNumber + case .personalNumber: example = metadata?.personalNumber?.exampleNumber + case .premiumRate: example = metadata?.premiumRate?.exampleNumber + case .sharedCost: example = metadata?.sharedCost?.exampleNumber + case .tollFree: example = metadata?.tollFree?.exampleNumber + case .voicemail: example = metadata?.voicemail?.exampleNumber + case .voip: example = metadata?.voip?.exampleNumber + case .uan: example = metadata?.uan?.exampleNumber + case .unknown: return nil + case .notParsed: return nil + } + do { + return try example.flatMap { try parse($0, withRegion: countryCode, ignoreType: false) } + } catch { + print("[PhoneNumberKit] Failed to parse example number for \(countryCode) region") + return nil + } + } + + /// Get a formatted example phone number for an ISO 3166 compliant region code. + /// + /// - parameter countryCode: ISO 3166 compliant region code. + /// - parameter type: `PhoneNumberType` desired. default: `.mobile` + /// - parameter format: `PhoneNumberFormat` to use for formatting. default: `.international` + /// - parameter prefix: Whether or not to include the prefix. + /// + /// - returns: A formatted example phone number + public func getFormattedExampleNumber( + forCountry countryCode: String, ofType type: PhoneNumberType = .mobile, + withFormat format: PhoneNumberFormat = .international, withPrefix prefix: Bool = true + ) -> String? { + return self.getExampleNumber(forCountry: countryCode, ofType: type) + .flatMap { self.format($0, toType: format, withPrefix: prefix) } + } + + /// Get the MetadataTerritory objects for an ISO 3166 compliant region code. + /// + /// - parameter country: ISO 3166 compliant region code (e.g "GB" for the UK). + /// + /// - returns: A MetadataTerritory object, or nil if no metadata was found for the country code + public func metadata(for country: String) -> MetadataTerritory? { + return self.metadataManager.filterTerritories(byCountry: country) + } + + /// Get an array of MetadataTerritory objects corresponding to a given country code. + /// + /// - parameter countryCode: international country code (e.g 44 for the UK) + public func metadata(forCode countryCode: UInt64) -> [MetadataTerritory]? { + return self.metadataManager.filterTerritories(byCode: countryCode) + } + + /// Get an array of possible phone number lengths for the country, as specified by the parameters. + /// + /// - parameter country: ISO 3166 compliant region code. + /// - parameter phoneNumberType: PhoneNumberType enum. + /// - parameter lengthType: PossibleLengthType enum. + /// + /// - returns: Array of possible lengths for the country. May be empty. + public func possiblePhoneNumberLengths(forCountry country: String, phoneNumberType: PhoneNumberType, lengthType: PossibleLengthType) -> [Int] { + guard let territory = metadataManager.filterTerritories(byCountry: country) else { return [] } + + let possibleLengths = possiblePhoneNumberLengths(forTerritory: territory, phoneNumberType: phoneNumberType) + + switch lengthType { + case .national: return possibleLengths?.national.flatMap { self.parsePossibleLengths($0) } ?? [] + case .localOnly: return possibleLengths?.localOnly.flatMap { self.parsePossibleLengths($0) } ?? [] + } + } + + private func possiblePhoneNumberLengths(forTerritory territory: MetadataTerritory, phoneNumberType: PhoneNumberType) -> MetadataPossibleLengths? { + switch phoneNumberType { + case .fixedLine: return territory.fixedLine?.possibleLengths + case .mobile: return territory.mobile?.possibleLengths + case .pager: return territory.pager?.possibleLengths + case .personalNumber: return territory.personalNumber?.possibleLengths + case .premiumRate: return territory.premiumRate?.possibleLengths + case .sharedCost: return territory.sharedCost?.possibleLengths + case .tollFree: return territory.tollFree?.possibleLengths + case .voicemail: return territory.voicemail?.possibleLengths + case .voip: return territory.voip?.possibleLengths + case .uan: return territory.uan?.possibleLengths + case .fixedOrMobile: return nil // caller needs to combine results for .fixedLine and .mobile + case .unknown: return nil + case .notParsed: return nil + } + } + + /// Parse lengths string into array of Int, e.g. "6,[8-10]" becomes [6,8,9,10] + private func parsePossibleLengths(_ lengths: String) -> [Int] { + let components = lengths.components(separatedBy: ",") + let results = components.reduce([Int](), { result, component in + let newComponents = parseLengthComponent(component) + return result + newComponents + }) + + return results + } + + /// Parses numbers and ranges into array of Int + private func parseLengthComponent(_ component: String) -> [Int] { + if let int = Int(component) { + return [int] + } else { + let trimmedComponent = component.trimmingCharacters(in: CharacterSet(charactersIn: "[]")) + let rangeLimits = trimmedComponent.components(separatedBy: "-").compactMap { Int($0) } + + guard rangeLimits.count == 2, + let rangeStart = rangeLimits.first, + let rangeEnd = rangeLimits.last + else { return [] } + + return Array(rangeStart...rangeEnd) + } + } + + // MARK: Class functions + + /// Get a user's default region code + /// + /// - returns: A computed value for the user's current region - based on the iPhone's carrier and if not available, the device region. + public class func defaultRegionCode() -> String { + #if canImport(Contacts) + if #available(iOS 12.0, macOS 10.13, macCatalyst 13.1, watchOS 4.0, *) { + // macCatalyst OS bug if language is set to Korean + // CNContactsUserDefaults.shared().countryCode will return ko instead of kr + // Failed parsing any phone number. + let countryCode = CNContactsUserDefaults.shared().countryCode.uppercased() + #if targetEnvironment(macCatalyst) + if "ko".caseInsensitiveCompare(countryCode) == .orderedSame { + return "KR" + } + #endif + return countryCode + } + #endif + + let currentLocale = Locale.current + if let countryCode = (currentLocale as NSLocale).object(forKey: .countryCode) as? String { + return countryCode.uppercased() + } + return PhoneNumberConstants.defaultCountry + } + + + + /// Default metadata callback, reads metadata from PhoneNumberMetadata.json file in bundle + /// + /// - returns: an optional Data representation of the metadata. + public static func defaultMetadataCallback() throws -> Data? { + let frameworkBundle = Bundle.phoneNumberKit + guard + let jsonPath = frameworkBundle.path(forResource: "PhoneNumberMetadata", ofType: "json"), + let handle = FileHandle(forReadingAtPath: jsonPath) else { + throw PhoneNumberError.metadataNotFound + } + + defer { + if #available(iOS 13.0, macOS 10.15, macCatalyst 13.1, tvOS 13.0, watchOS 6.0, *) { + try? handle.close() + } else { + handle.closeFile() + } + } + + let data = handle.readDataToEndOfFile() + return data + } +} + +#if canImport(UIKit) +extension PhoneNumberKit { + + /// Configuration for the CountryCodePicker presented from PhoneNumberTextField if `withDefaultPickerUI` is `true` + public enum CountryCodePicker { + /// Common Country Codes are shown below the Current section in the CountryCodePicker by default + public static var commonCountryCodes: [String] = [] + + /// When the Picker is shown from the textfield it is presented modally + public static var forceModalPresentation: Bool = false + + /// Set the search bar of the Picker to always visible + public static var alwaysShowsSearchBar: Bool = false + } +} +#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift new file mode 100644 index 0000000..391d04c --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift @@ -0,0 +1,299 @@ +// +// PhoneNumberParser.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 26/09/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +/** + Parser. Contains parsing functions. + */ +final class PhoneNumberParser { + let metadata: MetadataManager + let regex: RegexManager + + init(regex: RegexManager, metadata: MetadataManager) { + self.regex = regex + self.metadata = metadata + } + + // MARK: Normalizations + + /** + Normalize a phone number (e.g +33 612-345-678 to 33612345678). + - Parameter number: Phone number string. + - Returns: Normalized phone number string. + */ + func normalizePhoneNumber(_ number: String) -> String { + let normalizationMappings = PhoneNumberPatterns.allNormalizationMappings + return self.regex.stringByReplacingOccurrences(number, map: normalizationMappings) + } + + // MARK: Extractions + + /** + Extract country code (e.g +33 612-345-678 to 33). + - Parameter number: Number string. + - Parameter nationalNumber: National number string - inout. + - Parameter metadata: Metadata territory object. + - Returns: Country code is UInt64. + */ + func extractCountryCode(_ number: String, nationalNumber: inout String, metadata: MetadataTerritory) throws -> UInt64 { + var fullNumber = number + guard let possibleCountryIddPrefix = metadata.internationalPrefix else { + return 0 + } + let countryCodeSource = self.stripInternationalPrefixAndNormalize(&fullNumber, possibleIddPrefix: possibleCountryIddPrefix) + if countryCodeSource != .defaultCountry { + if fullNumber.count <= PhoneNumberConstants.minLengthForNSN { + throw PhoneNumberError.tooShort + } + if let potentialCountryCode = extractPotentialCountryCode(fullNumber, nationalNumber: &nationalNumber), potentialCountryCode != 0 { + return potentialCountryCode + } else { + return 0 + } + } else { + let defaultCountryCode = String(metadata.countryCode) + if fullNumber.hasPrefix(defaultCountryCode) { + let nsFullNumber = fullNumber as NSString + var potentialNationalNumber = nsFullNumber.substring(from: defaultCountryCode.count) + guard let validNumberPattern = metadata.generalDesc?.nationalNumberPattern, let possibleNumberPattern = metadata.generalDesc?.possibleNumberPattern else { + return 0 + } + self.stripNationalPrefix(&potentialNationalNumber, metadata: metadata) + let potentialNationalNumberStr = potentialNationalNumber + if (!self.regex.matchesEntirely(validNumberPattern, string: fullNumber) && self.regex.matchesEntirely(validNumberPattern, string: potentialNationalNumberStr)) || self.regex.testStringLengthAgainstPattern(possibleNumberPattern, string: fullNumber as String) == false { + nationalNumber = potentialNationalNumberStr + if let countryCode = UInt64(defaultCountryCode) { + return UInt64(countryCode) + } + } + } + } + return 0 + } + + /** + Extract potential country code (e.g +33 612-345-678 to 33). + - Parameter fullNumber: Full number string. + - Parameter nationalNumber: National number string. + - Returns: Country code is UInt64. Optional. + */ + func extractPotentialCountryCode(_ fullNumber: String, nationalNumber: inout String) -> UInt64? { + let nsFullNumber = fullNumber as NSString + if nsFullNumber.length == 0 || nsFullNumber.substring(to: 1) == "0" { + return 0 + } + let numberLength = nsFullNumber.length + let maxCountryCode = PhoneNumberConstants.maxLengthCountryCode + var startPosition = 0 + if fullNumber.hasPrefix("+") { + if nsFullNumber.length == 1 { + return 0 + } + startPosition = 1 + } + for i in 1...min(numberLength - startPosition, maxCountryCode) { + let stringRange = NSRange(location: startPosition, length: i) + let subNumber = nsFullNumber.substring(with: stringRange) + if let potentialCountryCode = UInt64(subNumber), metadata.filterTerritories(byCode: potentialCountryCode) != nil { + nationalNumber = nsFullNumber.substring(from: i) + return potentialCountryCode + } + } + return 0 + } + + // MARK: Validations + + func checkNumberType(_ nationalNumber: String, metadata: MetadataTerritory, leadingZero: Bool = false) -> PhoneNumberType { + if leadingZero { + let type = self.checkNumberType("0" + String(nationalNumber), metadata: metadata) + if type != .unknown { + return type + } + } + + guard let generalNumberDesc = metadata.generalDesc else { + return .unknown + } + if self.regex.hasValue(generalNumberDesc.nationalNumberPattern) == false || self.isNumberMatchingDesc(nationalNumber, numberDesc: generalNumberDesc) == false { + return .unknown + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.pager) { + return .pager + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.premiumRate) { + return .premiumRate + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.tollFree) { + return .tollFree + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.sharedCost) { + return .sharedCost + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.voip) { + return .voip + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.personalNumber) { + return .personalNumber + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.uan) { + return .uan + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.voicemail) { + return .voicemail + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.fixedLine) { + if metadata.fixedLine?.nationalNumberPattern == metadata.mobile?.nationalNumberPattern { + return .fixedOrMobile + } else if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.mobile) { + return .fixedOrMobile + } else { + return .fixedLine + } + } + if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.mobile) { + return .mobile + } + return .unknown + } + + /** + Checks if number matches description. + - Parameter nationalNumber: National number string. + - Parameter numberDesc: MetadataPhoneNumberDesc of a given phone number type. + - Returns: True or false. + */ + func isNumberMatchingDesc(_ nationalNumber: String, numberDesc: MetadataPhoneNumberDesc?) -> Bool { + return self.regex.matchesEntirely(numberDesc?.nationalNumberPattern, string: nationalNumber) + } + + /** + Checks and strips if prefix is international dialing pattern. + - Parameter number: Number string. + - Parameter iddPattern: iddPattern for a given country. + - Returns: True or false and modifies the number accordingly. + */ + func parsePrefixAsIdd(_ number: inout String, iddPattern: String) -> Bool { + if self.regex.stringPositionByRegex(iddPattern, string: number) == 0 { + do { + guard let matched = try regex.regexMatches(iddPattern as String, string: number as String).first else { + return false + } + let matchedString = number.substring(with: matched.range) + let matchEnd = matchedString.count + let remainString = (number as NSString).substring(from: matchEnd) + let capturingDigitPatterns = try NSRegularExpression(pattern: PhoneNumberPatterns.capturingDigitPattern, options: NSRegularExpression.Options.caseInsensitive) + let matchedGroups = capturingDigitPatterns.matches(in: remainString as String) + if let firstMatch = matchedGroups.first { + let digitMatched = remainString.substring(with: firstMatch.range) as NSString + if digitMatched.length > 0 { + let normalizedGroup = self.regex.stringByReplacingOccurrences(digitMatched as String, map: PhoneNumberPatterns.allNormalizationMappings) + if normalizedGroup == "0" { + return false + } + } + } + number = remainString as String + return true + } catch { + return false + } + } + return false + } + + // MARK: Strip helpers + + /** + Strip an extension (e.g +33 612-345-678 ext.89 to 89). + - Parameter number: Number string. + - Returns: Modified number without extension and optional extension as string. + */ + func stripExtension(_ number: inout String) -> String? { + do { + let matches = try regex.regexMatches(PhoneNumberPatterns.extnPattern, string: number) + if let match = matches.first { + let adjustedRange = NSRange(location: match.range.location + 1, length: match.range.length - 1) + let matchString = number.substring(with: adjustedRange) + let stringRange = NSRange(location: 0, length: match.range.location) + number = number.substring(with: stringRange) + return matchString + } + return nil + } catch { + return nil + } + } + + /** + Strip international prefix. + - Parameter number: Number string. + - Parameter possibleIddPrefix: Possible idd prefix for a given country. + - Returns: Modified normalized number without international prefix and a PNCountryCodeSource enumeration. + */ + func stripInternationalPrefixAndNormalize(_ number: inout String, possibleIddPrefix: String?) -> PhoneNumberCountryCodeSource { + if self.regex.matchesAtStart(PhoneNumberPatterns.leadingPlusCharsPattern, string: number as String) { + number = self.regex.replaceStringByRegex(PhoneNumberPatterns.leadingPlusCharsPattern, string: number as String) + return .numberWithPlusSign + } + number = self.normalizePhoneNumber(number as String) + guard let possibleIddPrefix = possibleIddPrefix else { + return .numberWithoutPlusSign + } + let prefixResult = self.parsePrefixAsIdd(&number, iddPattern: possibleIddPrefix) + if prefixResult == true { + return .numberWithIDD + } else { + return .defaultCountry + } + } + + /** + Strip national prefix. + - Parameter number: Number string. + - Parameter metadata: Final country's metadata. + - Returns: Modified number without national prefix. + */ + func stripNationalPrefix(_ number: inout String, metadata: MetadataTerritory) { + guard let possibleNationalPrefix = metadata.nationalPrefixForParsing else { + return + } + #if canImport(ObjectiveC) + let prefixPattern = String(format: "^(?:%@)", possibleNationalPrefix) + #else + // FIX: String format with %@ doesn't work without ObjectiveC (e.g. Linux) + let prefixPattern = "^(?:\(possibleNationalPrefix))" + #endif + do { + let matches = try regex.regexMatches(prefixPattern, string: number) + if let firstMatch = matches.first { + let nationalNumberRule = metadata.generalDesc?.nationalNumberPattern + let firstMatchString = number.substring(with: firstMatch.range) + let numOfGroups = firstMatch.numberOfRanges - 1 + var transformedNumber: String = String() + let firstRange = firstMatch.range(at: numOfGroups) + let firstMatchStringWithGroup = (firstRange.location != NSNotFound && firstRange.location < number.count) ? number.substring(with: firstRange) : String() + let firstMatchStringWithGroupHasValue = self.regex.hasValue(firstMatchStringWithGroup) + if let transformRule = metadata.nationalPrefixTransformRule, firstMatchStringWithGroupHasValue == true { + transformedNumber = self.regex.replaceFirstStringByRegex(prefixPattern, string: number, templateString: transformRule) + } else { + let index = number.index(number.startIndex, offsetBy: firstMatchString.count) + transformedNumber = String(number[index...]) + } + if self.regex.hasValue(nationalNumberRule), self.regex.matchesEntirely(nationalNumberRule, string: number), self.regex.matchesEntirely(nationalNumberRule, string: transformedNumber) == false { + return + } + number = transformedNumber + return + } + } catch { + return + } + } +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift new file mode 100644 index 0000000..a007368 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift @@ -0,0 +1,208 @@ +// +// RegexManager.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 04/10/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +import Foundation + +final class RegexManager { + public init() { + var characterSet = CharacterSet(charactersIn: PhoneNumberConstants.nonBreakingSpace) + characterSet.formUnion(.whitespacesAndNewlines) + spaceCharacterSet = characterSet + } + + // MARK: Regular expression pool + + var regularExpressionPool = [String: NSRegularExpression]() + + private let regularExpressionPoolQueue = DispatchQueue(label: "com.phonenumberkit.regexpool", target: .global()) + + var spaceCharacterSet: CharacterSet + + // MARK: Regular expression + + func regexWithPattern(_ pattern: String) throws -> NSRegularExpression { + var cached: NSRegularExpression? + cached = regularExpressionPoolQueue.sync { + regularExpressionPool[pattern] + } + + if let cached = cached { + return cached + } + + do { + let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive) + + regularExpressionPoolQueue.sync { + regularExpressionPool[pattern] = regex + } + + return regex + } catch { + throw PhoneNumberError.generalError + } + } + + func regexMatches(_ pattern: String, string: String) throws -> [NSTextCheckingResult] { + do { + let internalString = string + let currentPattern = try regexWithPattern(pattern) + let matches = currentPattern.matches(in: internalString) + return matches + } catch { + throw PhoneNumberError.generalError + } + } + + func phoneDataDetectorMatch(_ string: String) throws -> NSTextCheckingResult { + let fallBackMatches = try regexMatches(PhoneNumberPatterns.validPhoneNumberPattern, string: string) + if let firstMatch = fallBackMatches.first { + return firstMatch + } else { + throw PhoneNumberError.invalidNumber + } + } + + // MARK: Match helpers + + func matchesAtStart(_ pattern: String, string: String) -> Bool { + do { + let matches = try regexMatches(pattern, string: string) + for match in matches { + if match.range.location == 0 { + return true + } + } + } catch {} + return false + } + + func stringPositionByRegex(_ pattern: String, string: String) -> Int { + do { + let matches = try regexMatches(pattern, string: string) + if let match = matches.first { + return (match.range.location) + } + return -1 + } catch { + return -1 + } + } + + func matchesExist(_ pattern: String?, string: String) -> Bool { + guard let pattern = pattern else { + return false + } + do { + let matches = try regexMatches(pattern, string: string) + return matches.count > 0 + } catch { + return false + } + } + + func matchesEntirely(_ pattern: String?, string: String) -> Bool { + guard var pattern = pattern else { + return false + } + pattern = "^(\(pattern))$" + return matchesExist(pattern, string: string) + } + + func matchedStringByRegex(_ pattern: String, string: String) throws -> [String] { + do { + let matches = try regexMatches(pattern, string: string) + var matchedStrings = [String]() + for match in matches { + let processedString = string.substring(with: match.range) + matchedStrings.append(processedString) + } + return matchedStrings + } catch {} + return [] + } + + // MARK: String and replace + + func replaceStringByRegex(_ pattern: String, string: String, template: String = "") -> String { + do { + var replacementResult = string + let regex = try regexWithPattern(pattern) + let matches = regex.matches(in: string) + if matches.count == 1 { + let range = regex.rangeOfFirstMatch(in: string) + if range != nil { + replacementResult = regex.stringByReplacingMatches(in: string, options: [], range: range, withTemplate: template) + } + return replacementResult + } else if matches.count > 1 { + replacementResult = regex.stringByReplacingMatches(in: string, withTemplate: template) + } + return replacementResult + } catch { + return string + } + } + + func replaceFirstStringByRegex(_ pattern: String, string: String, templateString: String) -> String { + do { + let regex = try regexWithPattern(pattern) + let range = regex.rangeOfFirstMatch(in: string) + if range != nil { + return regex.stringByReplacingMatches(in: string, options: [], range: range, withTemplate: templateString) + } + return string + } catch { + return String() + } + } + + func stringByReplacingOccurrences(_ string: String, map: [String: String], keepUnmapped: Bool = false) -> String { + var targetString = String() + for i in 0 ..< string.count { + let oneChar = string[string.index(string.startIndex, offsetBy: i)] + let keyString = String(oneChar).uppercased() + if let mappedValue = map[keyString] { + targetString.append(mappedValue) + } else if keepUnmapped { + targetString.append(keyString) + } + } + return targetString + } + + // MARK: Validations + + func hasValue(_ value: String?) -> Bool { + if let valueString = value { + if valueString.trimmingCharacters(in: spaceCharacterSet).count == 0 { + return false + } + return true + } else { + return false + } + } + + func testStringLengthAgainstPattern(_ pattern: String, string: String) -> Bool { + if matchesEntirely(pattern, string: string) { + return true + } else { + return false + } + } +} + +// MARK: Extensions + +extension String { + func substring(with range: NSRange) -> String { + let nsString = self as NSString + return nsString.substring(with: range) + } +} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json new file mode 100644 index 0000000..ec5f541 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json @@ -0,0 +1 @@ +{ "phoneNumberMetadata": {"territories": {"territory": [{"id": "AC","countryCode": "247","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "(?:[01589]\\d|[46])\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "62889","nationalNumberPattern": "6[2-467]\\d{3}"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "40123","nationalNumberPattern": "4\\d{4}"},"uan": {"possibleLengths": {"national": "6"},"exampleNumber": "542011","nationalNumberPattern": "(?:0[1-9]|[1589]\\d)\\d{4}"}},{"id": "AD","countryCode": "376","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[135-9]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "6","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1|6\\d)\\d{7}|[135-9]\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "1800\\d{4}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "712345","nationalNumberPattern": "[78]\\d{5}"},"mobile": {"possibleLengths": {"national": "6,9"},"exampleNumber": "312345","nationalNumberPattern": "690\\d{6}|[356]\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "18001234","nationalNumberPattern": "180[02]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "912345","nationalNumberPattern": "[19]\\d{5}"}},{"id": "AE","countryCode": "971","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2,9})","leadingDigits": "60|8","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[236]|[479][2-8]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d)(\\d{5})","leadingDigits": "[479]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22345678","nationalNumberPattern": "[2-4679][2-8]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "501234567","nationalNumberPattern": "5[024-68]\\d{7}"},"tollFree": {"possibleLengths": {"national": "[5-12]"},"exampleNumber": "800123456","nationalNumberPattern": "400\\d{6}|800\\d{2,9}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900234567","nationalNumberPattern": "900[02]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "700012345","nationalNumberPattern": "700[05]\\d{5}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "600212345","nationalNumberPattern": "600[25]\\d{5}"}},{"id": "AF","countryCode": "93","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[1-9]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-7]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[2-7]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "234567890","nationalNumberPattern": "(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "701234567","nationalNumberPattern": "7\\d{8}"}},{"id": "AG","countryCode": "1","leadingDigits": "268","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([457]\\d{6})$|1","nationalPrefixTransformRule": "268$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:268|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684601234","nationalNumberPattern": "268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684641234","nationalNumberPattern": "268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}"},"pager": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684061234","nationalNumberPattern": "26840[69]\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684801234","nationalNumberPattern": "26848[01]\\d{4}"}},{"id": "AI","countryCode": "1","leadingDigits": "264","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2457]\\d{6})$|1","nationalPrefixTransformRule": "264$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:264|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2644612345","nationalNumberPattern": "264(?:292|4(?:6[12]|9[78]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2642351234","nationalNumberPattern": "264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}"},"pager": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2647241234","nationalNumberPattern": "264724\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "AL","countryCode": "355","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "80|9","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4[2-6]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2358][2-5]|4","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23578]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "[5-7]"},"exampleNumber": "22345678","nationalNumberPattern": "4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "672123456","nationalNumberPattern": "6(?:[78][2-9]|9\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "900123","nationalNumberPattern": "900[1-9]\\d\\d"},"sharedCost": {"possibleLengths": {"national": "6"},"exampleNumber": "808123","nationalNumberPattern": "808[1-9]\\d\\d"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70021234","nationalNumberPattern": "700[2-9]\\d{4}"}},{"id": "AM","countryCode": "374","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[89]0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2|3[12]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "1|47","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-9]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[1-489]\\d|55|60|77)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "5,6"},"exampleNumber": "10123456","nationalNumberPattern": "(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "77123456","nationalNumberPattern": "(?:33|4[1349]|55|77|88|9[13-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[016]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "80[1-4]\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "60271234","nationalNumberPattern": "60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}"}},{"id": "AO","countryCode": "244","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[29]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[29]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "923123456","nationalNumberPattern": "9[1-59]\\d{7}"}},{"id": "AR","countryCode": "54","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "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)?","nationalPrefixTransformRule": "9$1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})","leadingDigits": "0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "[1-9]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[1-8]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2-$3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1","format": "$1 $2-$3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[68]","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[23]","format": "$1 $2-$3"},{"pattern": "(\\d)(\\d{4})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$2 15-$3-$4","intlFormat": "$1 $2 $3-$4"},{"pattern": "(\\d)(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "91","format": "$2 15-$3-$4","intlFormat": "$1 $2 $3-$4"},{"pattern": "(\\d{3})(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2-$3"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$2 15-$3-$4","intlFormat": "$1 $2 $3-$4"}]},"generalDesc": {"nationalNumberPattern": "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "810\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "[6-8]"},"exampleNumber": "1123456789","nationalNumberPattern": "3888[013-9]\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6])))\\d{6}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"},"mobile": {"possibleLengths": {"national": "10,11","localOnly": "[6-8]"},"exampleNumber": "91123456789","nationalNumberPattern": "93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"},"tollFree": {"possibleLengths": {"national": "10,11"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7,8}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "6001234567","nationalNumberPattern": "60[04579]\\d{7}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "8101234567","nationalNumberPattern": "810\\d{7}"}},{"id": "AS","countryCode": "1","leadingDigits": "684","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([267]\\d{6})$|1","nationalPrefixTransformRule": "684$1","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|684|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6846221234","nationalNumberPattern": "6846(?:22|33|44|55|77|88|9[19])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6847331234","nationalNumberPattern": "684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "AT","countryCode": "43","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "14","format": "$1","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3,12})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:11|[2-9])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "517","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5[079]","format": "$1 $2"},{"pattern": "(\\d{6})","leadingDigits": "[18]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3,9})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-467]|5[2-6]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[4-13]","localOnly": "3"},"exampleNumber": "1234567890","nationalNumberPattern": "1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}"},"mobile": {"possibleLengths": {"national": "[7-13]"},"exampleNumber": "664123456","nationalNumberPattern": "6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}"},"tollFree": {"possibleLengths": {"national": "[9-13]"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,10}"},"premiumRate": {"possibleLengths": {"national": "[9-13]"},"exampleNumber": "900123456","nationalNumberPattern": "(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}"},"sharedCost": {"possibleLengths": {"national": "[8-13]"},"exampleNumber": "810123456","nationalNumberPattern": "8(?:10|2[018])\\d{6,10}|828\\d{5}"},"voip": {"possibleLengths": {"national": "[5-13]"},"exampleNumber": "780123456","nationalNumberPattern": "5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}"}},{"id": "AU","mainCountryForCode": "true","countryCode": "61","preferredInternationalPrefix": "0011","internationalPrefix": "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","nationalPrefix": "0","nationalPrefixForParsing": "(183[12])|0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "16","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "13","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "19","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": ["180","1802"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{3,4})","leadingDigits": "19","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "16","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "14|4","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","carrierCodeFormattingRule": "$CC ($FG)","leadingDigits": "[2378]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1(?:30|[89])","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})(\\d{4})","leadingDigits": "130","format": "$1 $2 $3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}"},"noInternationalDialling": {"possibleLengths": {"national": "[6-8],10,12"},"nationalNumberPattern": "1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "212345678","nationalNumberPattern": "(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|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]))|(?: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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}"},"pager": {"possibleLengths": {"national": "[5-9]"},"exampleNumber": "1631234","nationalNumberPattern": "163\\d{2,6}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "180(?:0\\d{3}|2)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "190[0-26]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "6,8,10,12"},"exampleNumber": "1300123456","nationalNumberPattern": "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "147101234","nationalNumberPattern": "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}"}},{"id": "AW","countryCode": "297","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[25-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[25-79]\\d\\d|800)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "5212345","nationalNumberPattern": "5(?:2\\d|8[1-9])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "5601234","nationalNumberPattern": "(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9001234","nationalNumberPattern": "900\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "5011234","nationalNumberPattern": "(?:28\\d|501)\\d{4}"}},{"id": "AX","countryCode": "358","leadingDigits": "18","preferredInternationalPrefix": "00","internationalPrefix": "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "181234567","nationalNumberPattern": "18[1-8]\\d{3,6}"},"mobile": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "412345678","nationalNumberPattern": "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "8,9"},"exampleNumber": "600123456","nationalNumberPattern": "[67]00\\d{5,6}"},"uan": {"possibleLengths": {"national": "[5-12]"},"exampleNumber": "10112345","nationalNumberPattern": "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"}},{"id": "AZ","countryCode": "994","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[1-9]","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "90","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "123123456","nationalNumberPattern": "(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "401234567","nationalNumberPattern": "36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "881234567","nationalNumberPattern": "88\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900200123","nationalNumberPattern": "900200\\d{3}"}},{"id": "BA","countryCode": "387","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[2-9]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6[1-3]|[7-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-5]|6[56]","format": "$1 $2-$3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "30212345","nationalNumberPattern": "(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "61123456","nationalNumberPattern": "6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "8[08]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "9[0246]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "82123456","nationalNumberPattern": "8[12]\\d{6}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "70341234","nationalNumberPattern": "703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}"}},{"id": "BB","countryCode": "1","leadingDigits": "246","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "246$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:246|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2464123456","nationalNumberPattern": "246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2462501234","nationalNumberPattern": "246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "9002123456","nationalNumberPattern": "(?:246976|900[2-9]\\d\\d)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2463101234","nationalNumberPattern": "24631\\d{5}"},"uan": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2464301234","nationalNumberPattern": "246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}"}},{"id": "BD","countryCode": "880","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "31[5-8]|[459]1","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{3,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "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]","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{3,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-9]|22","format": "$1-$2"},{"pattern": "(\\d)(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1-$2"}]},"generalDesc": {"nationalNumberPattern": "[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}"},"fixedLine": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "27111234","nationalNumberPattern": "(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:222|[45]\\d)\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "1812345678","nationalNumberPattern": "(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "80[03]\\d{7}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "9604123456","nationalNumberPattern": "96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\d{6}"}},{"id": "BE","countryCode": "32","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:80|9)0","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[239]|4[23]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[15-8]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "4\\d{8}|[1-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "470123456","nationalNumberPattern": "4[5-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800[1-9]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "(?:70(?:2[0-57]|3[04-7]|44|6[4-69]|7[0579])|90\\d\\d)\\d{4}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "78791234","nationalNumberPattern": "7879\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "78102345","nationalNumberPattern": "78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}"}},{"id": "BF","countryCode": "226","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[025-7]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[025-7]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20491234","nationalNumberPattern": "2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70123456","nationalNumberPattern": "(?:0[1-35-7]|5[0-8]|[67]\\d)\\d{6}"}},{"id": "BG","countryCode": "359","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{6})","leadingDigits": "1","format": "$1","intlFormat": "NA"},{"pattern": "(\\d)(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "43[1-6]|70[1-9]","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:70|8)0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "43[1-7]|7","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[48]|9[08]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}"},"fixedLine": {"possibleLengths": {"national": "[6-8]","localOnly": "4,5"},"exampleNumber": "2123456","nationalNumberPattern": "2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "43012345","nationalNumberPattern": "(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}"},"tollFree": {"possibleLengths": {"national": "8,12"},"exampleNumber": "80012345","nationalNumberPattern": "(?:00800\\d\\d|800)\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "90\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "700\\d{5}"}},{"id": "BH","countryCode": "973","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[13679]|8[02-4679]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[136-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "17001234","nationalNumberPattern": "(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "36001234","nationalNumberPattern": "(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "8[02369]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "(?:87|9[0-8])\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "84123456","nationalNumberPattern": "84\\d{6}"}},{"id": "BI","countryCode": "257","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2367]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:[267]\\d|31)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22201234","nationalNumberPattern": "(?:22|31)\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "79561234","nationalNumberPattern": "(?:29|[67][125-9])\\d{6}"}},{"id": "BJ","countryCode": "229","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[24-689]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[24-689]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20211234","nationalNumberPattern": "2(?:02|1[037]|2[45]|3[68]|4\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "90011234","nationalNumberPattern": "(?:4[0-356]|[56]\\d|9[013-9])\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "85751234","nationalNumberPattern": "857[58]\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "81123456","nationalNumberPattern": "81\\d{6}"}},{"id": "BL","countryCode": "590","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "590\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "590271234","nationalNumberPattern": "590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "690001234","nationalNumberPattern": "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:395|76[018])\\d|475[0-5])\\d{4}"}},{"id": "BM","countryCode": "1","leadingDigits": "441","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "441$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:441|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4414123456","nationalNumberPattern": "441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4413701234","nationalNumberPattern": "441(?:[2378]\\d|5[0-39]|92)\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "BN","countryCode": "673","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-578]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[2-578]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2345678","nationalNumberPattern": "22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7123456","nationalNumberPattern": "(?:22[89]|[78]\\d\\d)\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "5345678","nationalNumberPattern": "5[34]\\d{5}"}},{"id": "BO","countryCode": "591","internationalPrefix": "00(?:1\\d)?","nationalPrefix": "0","nationalPrefixForParsing": "0(1\\d)?","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{7})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "[23]|4[46]","format": "$1 $2"},{"pattern": "(\\d{8})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "[67]","format": "$1"},{"pattern": "(\\d{3})(\\d{2})(\\d{4})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-467]\\d\\d|8001)\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "8001[07]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22123456","nationalNumberPattern": "(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "71234567","nationalNumberPattern": "[67]\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800171234","nationalNumberPattern": "8001[07]\\d{4}"}},{"id": "BQ","countryCode": "599","leadingDigits": "[347]","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "(?:[34]1|7\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "7151234","nationalNumberPattern": "(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3181234","nationalNumberPattern": "(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}"}},{"id": "BR","countryCode": "55","internationalPrefix": "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","nationalPrefix": "0","nationalPrefixForParsing": "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","nationalPrefixTransformRule": "$2","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3,6})","leadingDigits": "1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"],"format": "$1-$2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["[2-57]","[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"],"format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{2,3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:[358]|90)0","format": "$1 $2 $3"},{"pattern": "(\\d{5})(\\d{4})","leadingDigits": "9","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($FG)","carrierCodeFormattingRule": "$NP $CC ($FG)","leadingDigits": "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]","format": "$1 $2-$3"},{"pattern": "(\\d{2})(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "($FG)","carrierCodeFormattingRule": "$NP $CC ($FG)","leadingDigits": "[16][1-9]|[2-57-9]","format": "$1 $2-$3"}]},"generalDesc": {"nationalNumberPattern": "(?:[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}"},"noInternationalDialling": {"possibleLengths": {"national": "[8-10]"},"nationalNumberPattern": "30(?:0\\d{5,7}|3\\d{7})|40(?:0\\d|20)\\d{4}|800\\d{6,7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "8"},"exampleNumber": "1123456789","nationalNumberPattern": "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}"},"mobile": {"possibleLengths": {"national": "10,11","localOnly": "8,9"},"exampleNumber": "11961234567","nationalNumberPattern": "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,7}"},"premiumRate": {"possibleLengths": {"national": "9,10"},"exampleNumber": "300123456","nationalNumberPattern": "300\\d{6}|[59]00\\d{6,7}"},"sharedCost": {"possibleLengths": {"national": "8,10"},"exampleNumber": "40041234","nationalNumberPattern": "(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370))\\d{4}|300\\d{5}"}},{"id": "BS","countryCode": "1","leadingDigits": "242","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([3-8]\\d{6})$|1","nationalPrefixTransformRule": "242$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:242|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2423456789","nationalNumberPattern": "242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2423591234","nationalNumberPattern": "242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8002123456","nationalNumberPattern": "242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "2422250123","nationalNumberPattern": "242225\\d{4}"}},{"id": "BT","countryCode": "975","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[2-7]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3})(\\d{3})","leadingDigits": "[2-68]|7[246]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "1[67]|7","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[17]\\d{7}|[2-8]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7","localOnly": "6"},"exampleNumber": "2345678","nationalNumberPattern": "(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "17123456","nationalNumberPattern": "(?:1[67]|77)\\d{6}"}},{"id": "BW","countryCode": "267","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "90","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[24-6]|3[15-9]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[37]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2401234","nationalNumberPattern": "(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "71123456","nationalNumberPattern": "(?:321|7(?:[1-7]\\d|8[0-4]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "0800012345","nationalNumberPattern": "(?:0800|800\\d)\\d{6}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9012345","nationalNumberPattern": "90\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "79101234","nationalNumberPattern": "79(?:1(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}"}},{"id": "BY","countryCode": "375","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","nationalPrefixForParsing": "0|80?","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "800","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,4})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "800","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP 0$FG","leadingDigits": ["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])"],"format": "$1 $2-$3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP 0$FG","leadingDigits": "1(?:[56]|7[467])|2[1-3]","format": "$1 $2-$3-$4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP 0$FG","leadingDigits": "[1-4]","format": "$1 $2-$3-$4"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[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}"},"noInternationalDialling": {"possibleLengths": {"national": "[6-11]"},"nationalNumberPattern": "800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "[5-7]"},"exampleNumber": "152450911","nationalNumberPattern": "(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "294911911","nationalNumberPattern": "(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "[6-11]"},"exampleNumber": "8011234567","nationalNumberPattern": "800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9021234567","nationalNumberPattern": "(?:810|902)\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "249123456","nationalNumberPattern": "249\\d{6}"}},{"id": "BZ","countryCode": "501","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-8]","format": "$1-$2"},{"pattern": "(\\d)(\\d{3})(\\d{4})(\\d{3})","leadingDigits": "0","format": "$1-$2-$3-$4"}]},"generalDesc": {"nationalNumberPattern": "(?:0800\\d|[2-8])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2221234","nationalNumberPattern": "(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "6221234","nationalNumberPattern": "6[0-35-7]\\d{5}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "08001234123","nationalNumberPattern": "0800\\d{7}"}},{"id": "CA","countryCode": "1","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[2-8]\\d|90)\\d{8}|3\\d{6}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "5062345678","nationalNumberPattern": "(?: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|73)|90[25])[2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "5062345678","nationalNumberPattern": "(?: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|73)|90[25])[2-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "6002012345","nationalNumberPattern": "600[2-9]\\d{6}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "3101234","nationalNumberPattern": "310\\d{4}"}},{"id": "CC","countryCode": "61","preferredInternationalPrefix": "0011","internationalPrefix": "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","nationalPrefix": "0","nationalPrefixForParsing": "([59]\\d{7})$|0","nationalPrefixTransformRule": "8$1","generalDesc": {"nationalNumberPattern": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "891621234","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "180(?:0\\d{3}|2)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "190[0-26]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "6,8,10,12"},"exampleNumber": "1300123456","nationalNumberPattern": "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "147101234","nationalNumberPattern": "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}"}},{"id": "CD","countryCode": "243","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "88","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-6]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[189]\\d{8}|[1-68]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,9"},"exampleNumber": "1234567","nationalNumberPattern": "12\\d{7}|[1-6]\\d{6}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "991234567","nationalNumberPattern": "88\\d{5}|(?:8[0-59]|9[017-9])\\d{7}"}},{"id": "CF","countryCode": "236","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[278]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:[27]\\d{3}|8776)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21612345","nationalNumberPattern": "2[12]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "7[024-7]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "87761234","nationalNumberPattern": "8776\\d{4}"}},{"id": "CG","countryCode": "242","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{4})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "[02]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "222\\d{6}|(?:0\\d|80)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "222[1-589]\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "061234567","nationalNumberPattern": "026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80[0-2]\\d{6}"}},{"id": "CH","countryCode": "41","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[047]|90","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-79]|81","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "8\\d{11}|[2-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "212345678","nationalNumberPattern": "(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "781234567","nationalNumberPattern": "7[35-9]\\d{7}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "740123456","nationalNumberPattern": "74[0248]\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90[016]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "840123456","nationalNumberPattern": "84[0248]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "878123456","nationalNumberPattern": "878\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "581234567","nationalNumberPattern": "5[18]\\d{7}"},"voicemail": {"possibleLengths": {"national": "12"},"exampleNumber": "860123456789","nationalNumberPattern": "860\\d{9}"}},{"id": "CI","countryCode": "225","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d)(\\d{5})","leadingDigits": "2","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[02]\\d{9}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2123456789","nationalNumberPattern": "2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "0123456789","nationalNumberPattern": "0[157]\\d{8}"}},{"id": "CK","countryCode": "682","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})","leadingDigits": "[2-578]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[2-578]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "21234","nationalNumberPattern": "(?:2\\d|3[13-7]|4[1-5])\\d{3}"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "71234","nationalNumberPattern": "[578]\\d{4}"}},{"id": "CL","countryCode": "56","internationalPrefix": "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "1(?:[03-589]|21)|[29]0|78","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "($FG)","leadingDigits": ["219","2196"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "44","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($FG)","leadingDigits": "2[1-36]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","leadingDigits": "9[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($FG)","leadingDigits": "3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","leadingDigits": "60|8","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{3})","leadingDigits": "60","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}"},"noInternationalDialling": {"possibleLengths": {"national": "10,11"},"nationalNumberPattern": "600\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "221234567","nationalNumberPattern": "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "221234567","nationalNumberPattern": "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9,11"},"exampleNumber": "800123456","nationalNumberPattern": "(?:123|8)00\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10,11"},"exampleNumber": "6001234567","nationalNumberPattern": "600\\d{7,8}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "441234567","nationalNumberPattern": "44\\d{7}"}},{"id": "CM","countryCode": "237","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "88","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[26]|88","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "[26]\\d{8}|88\\d{6,7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "2(?:22|33)\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "671234567","nationalNumberPattern": "(?:24[23]|6[25-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "88012345","nationalNumberPattern": "88\\d{6,7}"}},{"id": "CN","countryCode": "86","preferredInternationalPrefix": "00","internationalPrefix": "00|1(?:[12]\\d|79)\\d\\d00","nationalPrefix": "0","nationalPrefixForParsing": "(1(?:[12]\\d|79)\\d\\d)|0","availableFormats": {"numberFormat": [{"pattern": "(\\d{5,6})","leadingDigits": "10|96","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","10(?:10|9[56])|2[0-57-9](?:100|9[56])"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": ["[1-9]","1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])","1(?:0(?:[0-8]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])|6)|[3-9]"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "16[08]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["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])"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["[1-9]","1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]","1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])","1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "(?:4|80)0","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["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])"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "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]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{7,8})","leadingDigits": "9","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "80","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[3-578]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "1[3-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[12]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}"},"noInternationalDialling": {"possibleLengths": {"national": "[10-12]"},"nationalNumberPattern": "(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "[7-11]","localOnly": "5,6"},"exampleNumber": "1012345678","nationalNumberPattern": "(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|21(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))\\d{5}|(?:43[35]|754)\\d{7,8}|8(?:078\\d{7}|51\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\d\\d|95\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[1-9]\\d{6})|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[1-9]\\d{5})|9(?:[0-46-9]\\d{5}|5\\d{3,5}))"},"mobile": {"possibleLengths": {"national": "11"},"exampleNumber": "13123456789","nationalNumberPattern": "1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}"},"tollFree": {"possibleLengths": {"national": "10,12"},"exampleNumber": "8001234567","nationalNumberPattern": "(?:(?:10|21)8|8)00\\d{7}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "16812345","nationalNumberPattern": "16[08]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "[7-11]","localOnly": "5,6"},"exampleNumber": "4001234567","nationalNumberPattern": "10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}"}},{"id": "CO","countryCode": "57","internationalPrefix": "00(?:4(?:[14]4|56)|[579])","nationalPrefix": "0","nationalPrefixForParsing": "0(4(?:[14]4|56)|[579])?","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "($FG)","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "6","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "3[0-357]|91","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1-$2-$3","intlFormat": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6012345678","nationalNumberPattern": "601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|60[124-8][2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "3211234567","nationalNumberPattern": "3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "18001234567","nationalNumberPattern": "1800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "11"},"exampleNumber": "19001234567","nationalNumberPattern": "19(?:0[01]|4[78])\\d{7}"}},{"id": "CR","countryCode": "506","internationalPrefix": "00","nationalPrefixForParsing": "(19(?:0[0-2468]|1[09]|20|66|77|99))","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[2-7]|8[3-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[89]","format": "$1-$2-$3"}]},"generalDesc": {"nationalNumberPattern": "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "83123456","nationalNumberPattern": "(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "90[059]\\d{7}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "40001234","nationalNumberPattern": "(?:210[0-6]|4\\d{3}|5100)\\d{4}"}},{"id": "CU","countryCode": "53","internationalPrefix": "119","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4,6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[1-4]|[34]","format": "$1 $2"},{"pattern": "(\\d)(\\d{6,7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "7","format": "$1 $2"},{"pattern": "(\\d)(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[56]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[27]\\d{6,7}|[34]\\d{5,7}|63\\d{6}|(?:5|8\\d\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "[6-8],10","localOnly": "4,5"},"exampleNumber": "71234567","nationalNumberPattern": "(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "51234567","nationalNumberPattern": "(?:5\\d|63)\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "8071234567","nationalNumberPattern": "807\\d{7}"}},{"id": "CV","countryCode": "238","internationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[2-589]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:[2-59]\\d\\d|800)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2211234","nationalNumberPattern": "2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "9911234","nationalNumberPattern": "(?:36|5[1-389]|9\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "3401234","nationalNumberPattern": "(?:3[3-5]|4[356])\\d{5}"}},{"id": "CW","mainCountryForCode": "true","countryCode": "599","leadingDigits": "[69]","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[3467]","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{4})","leadingDigits": "9[4-8]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7,8"},"exampleNumber": "94351234","nationalNumberPattern": "9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "95181234","nationalNumberPattern": "953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}"},"pager": {"possibleLengths": {"national": "8"},"exampleNumber": "95581234","nationalNumberPattern": "955\\d{5}"},"sharedCost": {"possibleLengths": {"national": "7"},"exampleNumber": "6001234","nationalNumberPattern": "60[0-2]\\d{4}"}},{"id": "CX","countryCode": "61","preferredInternationalPrefix": "0011","internationalPrefix": "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","nationalPrefix": "0","nationalPrefixForParsing": "([59]\\d{7})$|0","nationalPrefixTransformRule": "8$1","generalDesc": {"nationalNumberPattern": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "891641234","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "180(?:0\\d{3}|2)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "190[0-26]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "6,8,10,12"},"exampleNumber": "1300123456","nationalNumberPattern": "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "147101234","nationalNumberPattern": "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}"}},{"id": "CY","countryCode": "357","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{6})","leadingDigits": "[257-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[279]\\d|[58]0)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22345678","nationalNumberPattern": "2[2-6]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "96123456","nationalNumberPattern": "9(?:10|[4-79]\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80001234","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[09]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "80[1-9]\\d{5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "700\\d{5}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "77123456","nationalNumberPattern": "(?:50|77)\\d{6}"}},{"id": "CZ","countryCode": "420","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[2-8]|9[015-7]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{2})","leadingDigits": "96","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "212345678","nationalNumberPattern": "(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "601123456","nationalNumberPattern": "(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "9(?:0[05689]|76)\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "811234567","nationalNumberPattern": "8[134]\\d{7}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "70[01]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "910123456","nationalNumberPattern": "9[17]0\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "972123456","nationalNumberPattern": "9(?:5\\d|7[2-4])\\d{6}"},"voicemail": {"possibleLengths": {"national": "[9-12]"},"exampleNumber": "93123456789","nationalNumberPattern": "9(?:3\\d{9}|6\\d{7,10})"}},{"id": "DE","countryCode": "49","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,13})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3[02]|40|[68]9","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3,12})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{2,11})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[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]"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "138","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{2,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,11})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "181","format": "$1 $2"},{"pattern": "(\\d{3})(\\d)(\\d{4,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:3|80)|9","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[67]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7,12})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["185","1850","18500"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "18[68]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15[0568]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15[1279]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "18","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:6[023]|7)","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15[279]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[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}"},"fixedLine": {"possibleLengths": {"national": "[5-15]","localOnly": "[2-4]"},"exampleNumber": "30123456","nationalNumberPattern": "32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}"},"mobile": {"possibleLengths": {"national": "10,11"},"exampleNumber": "15123456789","nationalNumberPattern": "15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}"},"pager": {"possibleLengths": {"national": "[4-14]"},"exampleNumber": "16412345","nationalNumberPattern": "16(?:4\\d{1,10}|[89]\\d{1,11})"},"tollFree": {"possibleLengths": {"national": "[10-15]"},"exampleNumber": "8001234567890","nationalNumberPattern": "800\\d{7,12}"},"premiumRate": {"possibleLengths": {"national": "10,11"},"exampleNumber": "9001234567","nationalNumberPattern": "(?:137[7-9]|900(?:[135]|9\\d))\\d{6}"},"sharedCost": {"possibleLengths": {"national": "[7-14]"},"exampleNumber": "18012345","nationalNumberPattern": "180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "11"},"exampleNumber": "70012345678","nationalNumberPattern": "700\\d{8}"},"uan": {"possibleLengths": {"national": "[8-14]"},"exampleNumber": "18500123456","nationalNumberPattern": "18(?:1\\d{5,11}|[2-9]\\d{8})"},"voicemail": {"possibleLengths": {"national": "12,13"},"exampleNumber": "177991234567","nationalNumberPattern": "1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}"}},{"id": "DJ","countryCode": "253","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[27]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:2\\d|77)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21360003","nationalNumberPattern": "2(?:1[2-5]|7[45])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "77831001","nationalNumberPattern": "77\\d{6}"}},{"id": "DK","countryCode": "45","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2-9]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "32123456","nationalNumberPattern": "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "32123456","nationalNumberPattern": "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "90\\d{6}"}},{"id": "DM","countryCode": "1","leadingDigits": "767","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-7]\\d{6})$|1","nationalPrefixTransformRule": "767$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|767|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7674201234","nationalNumberPattern": "767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7672251234","nationalNumberPattern": "767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "DO","countryCode": "1","leadingDigits": "8001|8[024]9","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8092345678","nationalNumberPattern": "8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8092345678","nationalNumberPattern": "8[024]9[2-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "DZ","countryCode": "213","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-4]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[5-8]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[1-4]|[5-79]\\d|80)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "12345678","nationalNumberPattern": "9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "551234567","nationalNumberPattern": "(?:5(?:4[0-29]|5\\d|6[0-2])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "808123456","nationalNumberPattern": "80[3-689]1\\d{5}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "801123456","nationalNumberPattern": "80[12]1\\d{5}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "983123456","nationalNumberPattern": "98[23]\\d{6}"}},{"id": "EC","countryCode": "593","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-7]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2-7]","format": "$1 $2-$3","intlFormat": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3,4})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22123456","nationalNumberPattern": "[2-7][2-7]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "991234567","nationalNumberPattern": "964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "10,11"},"exampleNumber": "18001234567","nationalNumberPattern": "1800\\d{7}|1[78]00\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "28901234","nationalNumberPattern": "[2-7]890\\d{4}"}},{"id": "EE","countryCode": "372","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": ["[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"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3,4})","leadingDigits": ["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "7"},"nationalNumberPattern": "800[2-9]\\d{3}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3212345","nationalNumberPattern": "(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "51234567","nationalNumberPattern": "(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}"},"tollFree": {"possibleLengths": {"national": "7,8,10"},"exampleNumber": "80012345","nationalNumberPattern": "800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}"},"premiumRate": {"possibleLengths": {"national": "7,8"},"exampleNumber": "9001234","nationalNumberPattern": "(?:40\\d\\d|900)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "70[0-2]\\d{5}"}},{"id": "EG","countryCode": "20","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[35]|[4-6]|8[2468]|9[235-7]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "234567890","nationalNumberPattern": "13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "1001234567","nationalNumberPattern": "1[0-25]\\d{8}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "900\\d{7}"}},{"id": "EH","countryCode": "212","leadingDigits": "528[89]","internationalPrefix": "00","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "[5-8]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "528812345","nationalNumberPattern": "528[89]\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "650123456","nationalNumberPattern": "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891234567","nationalNumberPattern": "89\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "592401234","nationalNumberPattern": "592(?:4[0-2]|93)\\d{4}"}},{"id": "ER","countryCode": "291","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[178]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[178]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7","localOnly": "6"},"exampleNumber": "8370362","nationalNumberPattern": "(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7123456","nationalNumberPattern": "(?:17[1-3]|7\\d\\d)\\d{4}"}},{"id": "ES","countryCode": "34","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "905","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{6})","leadingDigits": "[79]9","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[89]00","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[5-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[5-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "810123456","nationalNumberPattern": "96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "612345678","nationalNumberPattern": "(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "[89]00\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "803123456","nationalNumberPattern": "80[367]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "901123456","nationalNumberPattern": "90[12]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "70\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "511234567","nationalNumberPattern": "51\\d{7}"}},{"id": "ET","countryCode": "251","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-579]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:11|[2-579]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "111112345","nationalNumberPattern": "11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "911234567","nationalNumberPattern": "700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}"}},{"id": "FI","mainCountryForCode": "true","countryCode": "358","leadingDigits": "1[03-79]|[2-9]","preferredInternationalPrefix": "00","internationalPrefix": "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "75[12]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d)(\\d{4,9})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2568][1-8]|3(?:0[1-9]|[1-9])|9","format": "$1 $2"},{"pattern": "(\\d{6})","leadingDigits": "11","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]00|[368]|70[07-9]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1245]|7[135]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}"},"noInternationalDialling": {"possibleLengths": {"national": "[5-12]"},"nationalNumberPattern": "20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}"},"fixedLine": {"possibleLengths": {"national": "[5-9]"},"exampleNumber": "131234567","nationalNumberPattern": "(?:1[3-79][1-8]|[235689][1-8]\\d)\\d{2,6}"},"mobile": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "412345678","nationalNumberPattern": "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "8,9"},"exampleNumber": "600123456","nationalNumberPattern": "[67]00\\d{5,6}"},"uan": {"possibleLengths": {"national": "[5-12]"},"exampleNumber": "10112345","nationalNumberPattern": "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"}},{"id": "FJ","countryCode": "679","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|52)","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[235-9]|45","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "45\\d{5}|(?:0800\\d|[235-9])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3212345","nationalNumberPattern": "603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7012345","nationalNumberPattern": "(?:[279]\\d|45|5[01568]|8[034679])\\d{5}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "08001234567","nationalNumberPattern": "0800\\d{7}"}},{"id": "FK","countryCode": "500","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "[2-7]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "31234","nationalNumberPattern": "[2-47]\\d{4}"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "51234","nationalNumberPattern": "[56]\\d{4}"}},{"id": "FM","countryCode": "691","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[389]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[39]\\d\\d|820)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3201234","nationalNumberPattern": "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3501234","nationalNumberPattern": "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}"}},{"id": "FO","countryCode": "298","internationalPrefix": "00","nationalPrefixForParsing": "(10(?:01|[12]0|88))","availableFormats": {"numberFormat": {"pattern": "(\\d{6})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[2-9]","format": "$1"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "201234","nationalNumberPattern": "(?:20|[34]\\d|8[19])\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "211234","nationalNumberPattern": "(?:[27][1-9]|5\\d|9[16])\\d{4}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "802123","nationalNumberPattern": "80[257-9]\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "901123","nationalNumberPattern": "90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d"},"voip": {"possibleLengths": {"national": "6"},"exampleNumber": "601234","nationalNumberPattern": "(?:6[0-36]|88)\\d{4}"}},{"id": "FR","countryCode": "33","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "10","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "8","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-79]","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "123456789","nationalNumberPattern": "59[1-9]\\d{6}|(?:[1-3]\\d|4[1-9]|5[0-8])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "612345678","nationalNumberPattern": "(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80[0-5]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891123456","nationalNumberPattern": "836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "884012345","nationalNumberPattern": "8(?:1[01]|2[0156]|4[02]|84)\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "9\\d{8}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "806123456","nationalNumberPattern": "80[6-9]\\d{6}"}},{"id": "GA","countryCode": "241","internationalPrefix": "00","nationalPrefixForParsing": "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","nationalPrefixTransformRule": "$1","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "0$FG","leadingDigits": "[2-7]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "0","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "0$FG","leadingDigits": "11|[67]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "01441234","nationalNumberPattern": "[01]1\\d{6}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "06031234","nationalNumberPattern": "(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}"}},{"id": "GB","mainCountryForCode": "true","countryCode": "44","internationalPrefix": "00","nationalPrefix": "0","preferredExtnPrefix": " x","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["800","8001","80011","800111","8001111"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["845","8454","84546","845464"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "800","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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)"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:[2-69][02-9]|[78])","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1389]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9,10","localOnly": "[4-8]"},"exampleNumber": "1212345678","nationalNumberPattern": "(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[0-79])|(?:(?: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-2]))|(?: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}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7400123456","nationalNumberPattern": "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}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "7640123456","nationalNumberPattern": "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}"},"tollFree": {"possibleLengths": {"national": "7,9,10"},"exampleNumber": "8001234567","nationalNumberPattern": "80[08]\\d{7}|800\\d{6}|8001111"},"premiumRate": {"possibleLengths": {"national": "7,10"},"exampleNumber": "9012345678","nationalNumberPattern": "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "(?:3[0347]|55)\\d{8}"}},{"id": "GD","countryCode": "1","leadingDigits": "473","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "473$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:473|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4732691234","nationalNumberPattern": "473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4734031234","nationalNumberPattern": "473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "GE","countryCode": "995","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "70","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "32","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[57]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[348]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[3-57]\\d\\d|800)\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "70[67]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "6,7"},"exampleNumber": "322123456","nationalNumberPattern": "(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "555123456","nationalNumberPattern": "5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|(?:5(?:00(?:0\\d|11|22|33|44|5[05]|77|88|99)|1(?:1(?:00|[124]\\d|3[01])|4\\d\\d)|(?:44|68)\\d\\d|5(?:[0157-9]\\d\\d|200)|7(?:[0147-9]\\d\\d|5(?:00|[57]5))|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}|5(?:0(?:070|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "706123456","nationalNumberPattern": "70[67]\\d{6}"}},{"id": "GF","countryCode": "594","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[56]|9[47]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[56]94\\d{6}|(?:80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "594101234","nationalNumberPattern": "594(?:[02-49]\\d|1[0-4]|5[6-9]|6[0-3]|80)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "694201234","nationalNumberPattern": "694(?:[0-249]\\d|3[0-8])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:396|76\\d)\\d|476[0-5])\\d{4}"}},{"id": "GG","countryCode": "44","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([25-9]\\d{5})$|0","nationalPrefixTransformRule": "1481$1","generalDesc": {"nationalNumberPattern": "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "1481256789","nationalNumberPattern": "1481[25-9]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7781123456","nationalNumberPattern": "7(?:(?:781|839)\\d|911[17])\\d{5}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "7640123456","nationalNumberPattern": "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}"},"tollFree": {"possibleLengths": {"national": "7,9,10"},"exampleNumber": "8001234567","nationalNumberPattern": "80[08]\\d{7}|800\\d{6}|8001111"},"premiumRate": {"possibleLengths": {"national": "7,10"},"exampleNumber": "9012345678","nationalNumberPattern": "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "(?:3[0347]|55)\\d{8}"}},{"id": "GH","countryCode": "233","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[237]|8[0-2]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[235]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[235]\\d{3}|800)\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "800\\d{5}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "302345678","nationalNumberPattern": "3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "231234567","nationalNumberPattern": "(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"}},{"id": "GI","countryCode": "350","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{5})","leadingDigits": "2","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[25]\\d|60)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20012345","nationalNumberPattern": "2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "57123456","nationalNumberPattern": "5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}"}},{"id": "GL","countryCode": "299","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "19|[2-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:19|[2-689]\\d|70)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "321000","nationalNumberPattern": "(?:19|3[1-7]|[68][1-9]|70|9\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "221234","nationalNumberPattern": "[245]\\d{5}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "801234","nationalNumberPattern": "80\\d{4}"},"voip": {"possibleLengths": {"national": "6"},"exampleNumber": "381234","nationalNumberPattern": "3[89]\\d{4}"}},{"id": "GM","countryCode": "220","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "5661234","nationalNumberPattern": "(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3012345","nationalNumberPattern": "(?:[23679]\\d|5[0-489])\\d{5}"}},{"id": "GN","countryCode": "224","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "3","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[67]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "722\\d{6}|(?:3|6\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "30241234","nationalNumberPattern": "3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "601123456","nationalNumberPattern": "6[0-356]\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "722123456","nationalNumberPattern": "722\\d{6}"}},{"id": "GP","mainCountryForCode": "true","countryCode": "590","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[569]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "590\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "590201234","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "690001234","nationalNumberPattern": "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:395|76[018])\\d|475[0-5])\\d{4}"}},{"id": "GQ","countryCode": "240","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[235]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{6})","leadingDigits": "[89]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "333091234","nationalNumberPattern": "33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "(?:222|55\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80\\d[1-9]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90\\d[1-9]\\d{5}"}},{"id": "GR","countryCode": "30","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4})(\\d{4})","leadingDigits": "21|7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{6})","leadingDigits": "2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "[2689]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{5})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2123456789","nationalNumberPattern": "2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "6912345678","nationalNumberPattern": "68[57-9]\\d{7}|(?:69|94)\\d{8}"},"tollFree": {"possibleLengths": {"national": "[10-12]"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7,9}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9091234567","nationalNumberPattern": "90[19]\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "8011234567","nationalNumberPattern": "8(?:0[16]|12|[27]5|50)\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5005000123","nationalNumberPattern": "5005000\\d{3}"}},{"id": "GT","countryCode": "502","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2-7]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1\\d{3}|[2-7])\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22456789","nationalNumberPattern": "[267][2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "51234567","nationalNumberPattern": "[3-5]\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "18001112222","nationalNumberPattern": "18[01]\\d{8}"},"premiumRate": {"possibleLengths": {"national": "11"},"exampleNumber": "19001112222","nationalNumberPattern": "19\\d{9}"}},{"id": "GU","countryCode": "1","leadingDigits": "671","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([3-9]\\d{6})$|1","nationalPrefixTransformRule": "671$1","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|671|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6713001234","nationalNumberPattern": "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6713001234","nationalNumberPattern": "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "GW","countryCode": "245","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "40","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[49]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[49]\\d{8}|4\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "443201234","nationalNumberPattern": "443\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "955012345","nationalNumberPattern": "9(?:5\\d|6[569]|77)\\d{6}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "4012345","nationalNumberPattern": "40\\d{5}"}},{"id": "GY","countryCode": "592","internationalPrefix": "001","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "9008\\d{3}|(?:[2-467]\\d\\d|510|862)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2201234","nationalNumberPattern": "(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "6091234","nationalNumberPattern": "(?:510|6\\d\\d|7(?:0\\d|1[0-8]|25|49))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "2891234","nationalNumberPattern": "(?:289|862)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9008123","nationalNumberPattern": "9008\\d{3}"}},{"id": "HK","countryCode": "852","preferredInternationalPrefix": "00","internationalPrefix": "00(?:30|5[09]|[126-9]?)","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2,5})","leadingDigits": ["900","9003"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2-7]|8[1-4]|9(?:0[1-9]|[1-8])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:[45][0-8]|6[01]|9\\d))|58(?:0[1-9]|1[2-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "51234567","nationalNumberPattern": "(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}"},"pager": {"possibleLengths": {"national": "8"},"exampleNumber": "71123456","nationalNumberPattern": "7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "[5-8],11"},"exampleNumber": "90012345678","nationalNumberPattern": "900(?:[0-24-9]\\d{7}|3\\d{1,4})"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "81123456","nationalNumberPattern": "8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "30161234","nationalNumberPattern": "30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}"}},{"id": "HN","countryCode": "504","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[237-9]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "8\\d{10}|[237-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "11"},"nationalNumberPattern": "8002\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "91234567","nationalNumberPattern": "[37-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "80021234567","nationalNumberPattern": "8002\\d{7}"}},{"id": "HR","countryCode": "385","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6[01]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[67]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-5]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "12345678","nationalNumberPattern": "1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "921234567","nationalNumberPattern": "9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|77|9[67])))\\d{4}|98\\d{6}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "800123456","nationalNumberPattern": "80[01]\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "[6-8]"},"exampleNumber": "611234","nationalNumberPattern": "6[01459]\\d{6}|6[01]\\d{4,5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "74123456","nationalNumberPattern": "7[45]\\d{6}"},"uan": {"possibleLengths": {"national": "8,9"},"exampleNumber": "62123456","nationalNumberPattern": "62\\d{6,7}|72\\d{6}"}},{"id": "HT","countryCode": "509","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "[2-589]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:[2-489]\\d|55)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22453300","nationalNumberPattern": "2(?:2\\d|5[1-5]|81|9[149])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "34101234","nationalNumberPattern": "(?:[34]\\d|55)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "8\\d{7}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "98901234","nationalNumberPattern": "9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}"}},{"id": "HU","countryCode": "36","internationalPrefix": "00","nationalPrefix": "06","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[2-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[235-7]\\d{8}|[1-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8,9"},"nationalNumberPattern": "(?:[48]0\\d|680[29])\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "12345678","nationalNumberPattern": "(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "201234567","nationalNumberPattern": "(?:[257]0|3[01])\\d{7}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "80123456","nationalNumberPattern": "(?:[48]0\\d|680[29])\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "9[01]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "211234567","nationalNumberPattern": "21\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "381234567","nationalNumberPattern": "38\\d{7}"}},{"id": "ID","countryCode": "62","internationalPrefix": "00[89]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","leadingDigits": "15","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{5,9})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[124]|[36]1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "800","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,8})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2-79]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-35-9]","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{6,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "804","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "80","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{4})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "001","format": "$1 $2 $3 $4","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "10,12,13"},"nationalNumberPattern": "001803\\d{6,7}|(?:007803\\d|8071)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "[7-11]","localOnly": "5,6"},"exampleNumber": "218350123","nationalNumberPattern": "2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}"},"mobile": {"possibleLengths": {"national": "[9-12]"},"exampleNumber": "812345678","nationalNumberPattern": "8[1-35-9]\\d{7,10}"},"tollFree": {"possibleLengths": {"national": "[8-13]"},"exampleNumber": "8001234567","nationalNumberPattern": "00[17]803\\d{7}|(?:177\\d|800)\\d{5,7}|001803\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "8091234567","nationalNumberPattern": "809\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "8041234567","nationalNumberPattern": "804\\d{7}"},"uan": {"possibleLengths": {"national": "7,10"},"exampleNumber": "8071123456","nationalNumberPattern": "(?:1500|8071\\d{3})\\d{3}"}},{"id": "IE","countryCode": "353","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[24-9]|47|58|6[237-9]|9[35-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[45]0","format": "$1 $2"},{"pattern": "(\\d)(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2569]|4[1-69]|7[14]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "70","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "81","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[78]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "4","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "18[59]0\\d{6}"},"fixedLine": {"possibleLengths": {"national": "[7-10]","localOnly": "5,6"},"exampleNumber": "2212345","nationalNumberPattern": "(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "850123456","nationalNumberPattern": "8(?:22|[35-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1800123456","nationalNumberPattern": "1800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1520123456","nationalNumberPattern": "15(?:1[2-8]|[2-8]0|9[089])\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "1850123456","nationalNumberPattern": "18[59]0\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "700\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "761234567","nationalNumberPattern": "76\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "818123456","nationalNumberPattern": "818\\d{6}"},"voicemail": {"possibleLengths": {"national": "10"},"exampleNumber": "8551234567","nationalNumberPattern": "88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}"}},{"id": "IL","countryCode": "972","internationalPrefix": "0(?:0|1[2-9])","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{3})","leadingDigits": "125","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{2})(\\d{2})","leadingDigits": "121","format": "$1-$2-$3"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-489]","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[57]","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "12","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{6})","leadingDigits": "159","format": "$1-$2"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "1[7-9]","format": "$1-$2-$3-$4"},{"pattern": "(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","leadingDigits": "15","format": "$1-$2 $3-$4"}]},"generalDesc": {"nationalNumberPattern": "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "1700\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8,11,12","localOnly": "7"},"exampleNumber": "21234567","nationalNumberPattern": "153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "502345678","nationalNumberPattern": "55410\\d{4}|5(?:(?:[02][02-9]|[149][2-9]|[36]\\d|8[3-7])\\d|5(?:01|2[2-9]|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "1(?:255|80[019]\\d{3})\\d{3}"},"premiumRate": {"possibleLengths": {"national": "8,10"},"exampleNumber": "1919123456","nationalNumberPattern": "1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "1700123456","nationalNumberPattern": "1700\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "771234567","nationalNumberPattern": "7(?:38(?:0\\d|5[09]|88)|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "1599123456","nationalNumberPattern": "1599\\d{6}"},"voicemail": {"possibleLengths": {"national": "11,12"},"exampleNumber": "15112340000","nationalNumberPattern": "151\\d{8,9}"}},{"id": "IM","countryCode": "44","leadingDigits": "74576|(?:16|7[56])24","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([25-8]\\d{5})$|0","nationalPrefixTransformRule": "1624$1","generalDesc": {"nationalNumberPattern": "1624\\d{6}|(?:[3578]\\d|90)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "1624756789","nationalNumberPattern": "1624(?:230|[5-8]\\d\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7924123456","nationalNumberPattern": "76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8081624567","nationalNumberPattern": "808162\\d{4}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9016247890","nationalNumberPattern": "8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}"}},{"id": "IN","countryCode": "91","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{7})","leadingDigits": "575","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{8})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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)"],"format": "$1"},{"pattern": "(\\d{4})(\\d{4,5})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["180","1800"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "140","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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])"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2 $3"},{"pattern": "(\\d{5})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[6-9]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{2,4})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["1(?:6|8[06])","1(?:6|8[06]0)"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})(\\d{3})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "18","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}"},"noInternationalDialling": {"possibleLengths": {"national": "[8-13]"},"nationalNumberPattern": "1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "[6-8]"},"exampleNumber": "7410410123","nationalNumberPattern": "2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "8123456789","nationalNumberPattern": "(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|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]|881))[0189]\\d{5}"},"tollFree": {"possibleLengths": {"national": "[8-13]"},"exampleNumber": "1800123456","nationalNumberPattern": "000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))"},"premiumRate": {"possibleLengths": {"national": "13"},"exampleNumber": "1861123456789","nationalNumberPattern": "186[12]\\d{9}"},"sharedCost": {"possibleLengths": {"national": "11"},"exampleNumber": "18603451234","nationalNumberPattern": "1860\\d{7}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "1409305260","nationalNumberPattern": "140\\d{7}"}},{"id": "IO","countryCode": "246","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "3","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "3\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3709100","nationalNumberPattern": "37\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3801234","nationalNumberPattern": "38\\d{5}"}},{"id": "IQ","countryCode": "964","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-6]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "12345678","nationalNumberPattern": "1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7912345678","nationalNumberPattern": "7[3-9]\\d{8}"}},{"id": "IR","countryCode": "98","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "96","format": "$1"},{"pattern": "(\\d{2})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-8]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}"},"noInternationalDialling": {"possibleLengths": {"national": "4,5,10"},"nationalNumberPattern": "9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))"},"fixedLine": {"possibleLengths": {"national": "6,7,10","localOnly": "4,5,8"},"exampleNumber": "2123456789","nationalNumberPattern": "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9123456789","nationalNumberPattern": "9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}"},"uan": {"possibleLengths": {"national": "4,5"},"exampleNumber": "9601","nationalNumberPattern": "96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])"}},{"id": "IS","countryCode": "354","preferredInternationalPrefix": "00","internationalPrefix": "00|1(?:0(?:01|[12]0)|100)","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[4-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "3","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:38\\d|[4-9])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "4101234","nationalNumberPattern": "(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "6111234","nationalNumberPattern": "(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "80[0-8]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9001234","nationalNumberPattern": "90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "4921234","nationalNumberPattern": "49[0-24-79]\\d{4}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "8091234","nationalNumberPattern": "809\\d{4}"},"voicemail": {"possibleLengths": {"national": "7"},"exampleNumber": "6891234","nationalNumberPattern": "(?:689|8(?:7[18]|80)|95[48])\\d{4}"}},{"id": "IT","mainCountryForCode": "true","countryCode": "39","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4,5})","leadingDigits": ["1(?:0|9[246])","1(?:0|9(?:2[2-9]|[46]))"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{6})","leadingDigits": "1(?:1|92)","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4,6})","leadingDigits": "0[26]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3,6})","leadingDigits": ["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]))"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{2,6})","leadingDigits": "0(?:[13-579][2-46-8]|8[236-8])","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "894","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","leadingDigits": "0[26]|5","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","leadingDigits": "1(?:44|[679])|[378]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{4})","leadingDigits": "0[13-57-9][0159]|14","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{5})","leadingDigits": "0[26]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4,5})","leadingDigits": "3","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "848\\d{6}"},"fixedLine": {"possibleLengths": {"national": "[6-11]"},"exampleNumber": "0212345678","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "3123456789","nationalNumberPattern": "3[1-9]\\d{8}|3[2-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "6,9"},"exampleNumber": "800123456","nationalNumberPattern": "80(?:0\\d{3}|3)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6,[8-10]"},"exampleNumber": "899123456","nationalNumberPattern": "(?: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}"},"sharedCost": {"possibleLengths": {"national": "6,9"},"exampleNumber": "848123456","nationalNumberPattern": "84(?:[08]\\d{3}|[17])\\d{3}"},"personalNumber": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1781234567","nationalNumberPattern": "1(?:78\\d|99)\\d{6}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "55\\d{8}"},"voicemail": {"possibleLengths": {"national": "11,12"},"exampleNumber": "33101234501","nationalNumberPattern": "3[2-8]\\d{9,10}"}},{"id": "JE","countryCode": "44","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([0-24-8]\\d{5})$|0","nationalPrefixTransformRule": "1534$1","generalDesc": {"nationalNumberPattern": "1534\\d{6}|(?:[3578]\\d|90)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "1534456789","nationalNumberPattern": "1534[0-24-8]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7797712345","nationalNumberPattern": "7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "7640123456","nationalNumberPattern": "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}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8007354567","nationalNumberPattern": "80(?:07(?:35|81)|8901)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9018105678","nationalNumberPattern": "(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7015115678","nationalNumberPattern": "701511\\d{4}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "(?: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}"}},{"id": "JM","countryCode": "1","leadingDigits": "658|876","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|658|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8765230123","nationalNumberPattern": "8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8762101234","nationalNumberPattern": "(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "JO","countryCode": "962","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2356]|87","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "70","format": "$1 $2"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "62001234","nationalNumberPattern": "87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "790123456","nationalNumberPattern": "7(?:[78][0-25-9]|9\\d)\\d{6}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "746612345","nationalNumberPattern": "74(?:66|77)\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "9\\d{7}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "85012345","nationalNumberPattern": "85\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "70\\d{7}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "88101234","nationalNumberPattern": "8(?:10|8\\d)\\d{5}"}},{"id": "JP","countryCode": "81","internationalPrefix": "010","nationalPrefix": "0","nationalPrefixForParsing": "(000[259]\\d{6})$|(?:(?:003768)0?)|0","nationalPrefixTransformRule": "$1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["007","0077","00777","00777[01]"],"format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:12|57|99)0","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d)(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "60","format": "$1-$2-$3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[14]|[289][2-9]|5[3-9]|7[2-4679]","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{2})(\\d{3,4})","leadingDigits": ["007","0077"],"format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{2})(\\d{4})","leadingDigits": "008","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "800","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[257-9]","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3,4})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})(\\d{4,5})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{5})(\\d{5,6})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{6})(\\d{6,7})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "[8-17]"},"nationalNumberPattern": "00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66|78)\\d{6,13}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "312345678","nationalNumberPattern": "(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9012345678","nationalNumberPattern": "[7-9]0[1-9]\\d{7}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "2012345678","nationalNumberPattern": "20\\d{8}"},"tollFree": {"possibleLengths": {"national": "[8-17]"},"exampleNumber": "120123456","nationalNumberPattern": "00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "990123456","nationalNumberPattern": "990\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "601234567","nationalNumberPattern": "60\\d{7}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5012345678","nationalNumberPattern": "50[1-9]\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "570123456","nationalNumberPattern": "570\\d{6}"}},{"id": "KE","countryCode": "254","internationalPrefix": "000","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[24-6]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[17]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}"},"fixedLine": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "202012345","nationalNumberPattern": "(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712123456","nationalNumberPattern": "(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\d\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800223456","nationalNumberPattern": "800[2-8]\\d{5,6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900223456","nationalNumberPattern": "900[02-9]\\d{5}"}},{"id": "KG","countryCode": "996","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3(?:1[346]|[24-79])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[235-79]|88","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d)(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "8\\d{9}|[235-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "5,6"},"exampleNumber": "312123456","nationalNumberPattern": "312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|9(?:12|9[05-9]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,7}"}},{"id": "KH","countryCode": "855","internationalPrefix": "00[14-9]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-9]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{9}|[1-9]\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "23756789","nationalNumberPattern": "23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "91234567","nationalNumberPattern": "(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1800123456","nationalNumberPattern": "1800(?:1\\d|2[019])\\d{4}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "1900(?:1\\d|2[09])\\d{4}"}},{"id": "KI","countryCode": "686","internationalPrefix": "00","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "5,8"},"exampleNumber": "31234","nationalNumberPattern": "(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "72001234","nationalNumberPattern": "(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "30010000","nationalNumberPattern": "30(?:0[01]\\d\\d|12(?:11|20))\\d\\d"}},{"id": "KM","countryCode": "269","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[3478]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[3478]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7","localOnly": "4"},"exampleNumber": "7712345","nationalNumberPattern": "7[4-7]\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3212345","nationalNumberPattern": "[34]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "8\\d{6}"}},{"id": "KN","countryCode": "1","leadingDigits": "869","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-7]\\d{6})$|1","nationalPrefixTransformRule": "869$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8692361234","nationalNumberPattern": "869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8697652917","nationalNumberPattern": "869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "KP","countryCode": "850","internationalPrefix": "00|99","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-7]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "85\\d{6}|(?:19\\d|[2-7])\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8,10","localOnly": "6,7"},"exampleNumber": "21234567","nationalNumberPattern": "(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "1921234567","nationalNumberPattern": "19[1-3]\\d{7}"}},{"id": "KR","countryCode": "82","internationalPrefix": "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","nationalPrefix": "0","nationalPrefixForParsing": "0(8(?:[1-46-8]|5\\d\\d))?","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["1[016-9]1","1[016-9]11","1[016-9]114"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "(?:3[1-3]|[46][1-4]|5[1-5])1","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "1","format": "$1-$2"},{"pattern": "(\\d)(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "2","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "60|8","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "[1346]|5[1-5]","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "[57]","format": "$1-$2-$3"},{"pattern": "(\\d{5})(\\d{3})(\\d{3})","leadingDigits": ["003","0030"],"format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "5","format": "$1-$2-$3"},{"pattern": "(\\d{5})(\\d{3,4})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{5})(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "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}"},"noInternationalDialling": {"possibleLengths": {"national": "[11-14]"},"nationalNumberPattern": "00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})"},"fixedLine": {"possibleLengths": {"national": "5,6,[8-10]","localOnly": "3,4,7"},"exampleNumber": "22123456","nationalNumberPattern": "(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1020000000","nationalNumberPattern": "1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[0-46-9]|[16-9]\\d|2[013-9])\\d{6,7}"},"pager": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1523456789","nationalNumberPattern": "15\\d{7,8}"},"tollFree": {"possibleLengths": {"national": "9,[11-14]"},"exampleNumber": "801234567","nationalNumberPattern": "00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|80)\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "602345678","nationalNumberPattern": "60[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10,11"},"exampleNumber": "5012345678","nationalNumberPattern": "50\\d{8,9}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "15441234","nationalNumberPattern": "1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[168]|88)|8(?:00|33|55|77|99))\\d{4}"}},{"id": "KW","countryCode": "965","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{3,4})","leadingDigits": "[169]|2(?:[235]|4[1-35-9])|52","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","leadingDigits": "[245]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "18\\d{5}|(?:[2569]\\d|41)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22345678","nationalNumberPattern": "2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "50012345","nationalNumberPattern": "(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "1801234","nationalNumberPattern": "18\\d{5}"}},{"id": "KY","countryCode": "1","leadingDigits": "345","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "345$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:345|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3452221234","nationalNumberPattern": "345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|[48]8)|9(?:14|4[035-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3453231234","nationalNumberPattern": "345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "3458491234","nationalNumberPattern": "345849\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "(?:345976|900[2-9]\\d\\d)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "KZ","countryCode": "7","leadingDigits": "33|7","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","generalDesc": {"nationalNumberPattern": "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "751\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "[5-7]"},"exampleNumber": "7123456789","nationalNumberPattern": "(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7710009998","nationalNumberPattern": "7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}"},"tollFree": {"possibleLengths": {"national": "10,14"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:00|108\\d{3})\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "8091234567","nationalNumberPattern": "809\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "8081234567","nationalNumberPattern": "808\\d{7}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "7511234567","nationalNumberPattern": "751\\d{7}"}},{"id": "LA","countryCode": "856","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2[13]|3[14]|[4-8]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "30[013-9]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "21212862","nationalNumberPattern": "(?:2[13]|[35-7][14]|41|8[1468])\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "2023123456","nationalNumberPattern": "(?:20(?:[2359]\\d|7[6-8]|88)|302\\d)\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "301234567","nationalNumberPattern": "30[013-9]\\d{6}"}},{"id": "LB","countryCode": "961","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[27-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[27-9]\\d{7}|[13-9]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,8"},"exampleNumber": "1123456","nationalNumberPattern": "7(?:62|8[0-7]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "71123456","nationalNumberPattern": "793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "9[01]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{6}"}},{"id": "LC","countryCode": "1","leadingDigits": "758","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-8]\\d{6})$|1","nationalPrefixTransformRule": "758$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|758|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7584305678","nationalNumberPattern": "758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7582845678","nationalNumberPattern": "758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "LI","countryCode": "423","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "(1001)|0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "69","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "6","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2345678","nationalNumberPattern": "(?:2(?:01|1[27]|2[02]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "660234567","nationalNumberPattern": "(?:6(?:(?:4[5-9]|5[0-4])\\d|6(?:[0245]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7,9"},"exampleNumber": "8002222","nationalNumberPattern": "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9002222","nationalNumberPattern": "90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "8702812","nationalNumberPattern": "870(?:28|87)\\d\\d"},"voicemail": {"possibleLengths": {"national": "9"},"exampleNumber": "697861234","nationalNumberPattern": "697(?:42|56|[78]\\d)\\d{4}"}},{"id": "LK","countryCode": "94","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-689]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "112345678","nationalNumberPattern": "(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "7(?:[0-25-8]\\d|4[0-4])\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "197312345","nationalNumberPattern": "1973\\d{5}"}},{"id": "LR","countryCode": "231","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[4-6]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23578]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[25]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "2\\d{7}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "770123456","nationalNumberPattern": "(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "332021234","nationalNumberPattern": "332(?:02|[34]\\d)\\d{4}"}},{"id": "LS","countryCode": "266","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2568]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[256]\\d\\d|800)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "2\\d{7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "50123456","nationalNumberPattern": "[56]\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80021234","nationalNumberPattern": "800[256]\\d{4}"}},{"id": "LT","countryCode": "370","internationalPrefix": "00","nationalPrefix": "8","nationalPrefixForParsing": "[08]","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP-$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "52[0-7]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP $FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[7-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP-$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "37|4(?:[15]|6[1-8])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP-$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[3-6]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[3469]\\d|52|[78]0)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "31234567","nationalNumberPattern": "(?:3[1478]|4[124-6]|52)\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "61234567","nationalNumberPattern": "6\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80[02]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "9(?:0[0239]|10)\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80812345","nationalNumberPattern": "808\\d{5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "70[05]\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "[89]01\\d{5}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "70712345","nationalNumberPattern": "70[67]\\d{5}"}},{"id": "LU","countryCode": "352","internationalPrefix": "00","nationalPrefixForParsing": "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "20[2-689]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:[0367]|4[3-8])","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "80[01]|90[015]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "20","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "6","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:[0367]|4[3-8])","format": "$1 $2 $3 $4 $5"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}"},"fixedLine": {"possibleLengths": {"national": "[4-11]"},"exampleNumber": "27123456","nationalNumberPattern": "(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "628123456","nationalNumberPattern": "6(?:[269][18]|5[1568]|7[189]|81)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[015]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "801\\d{5}"},"voip": {"possibleLengths": {"national": "[4-10]"},"exampleNumber": "20201234","nationalNumberPattern": "20(?:1\\d{5}|[2-689]\\d{1,7})"}},{"id": "LV","countryCode": "371","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[269]|8[01]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:[268]\\d|90)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "63123456","nationalNumberPattern": "6\\d{7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "23(?:23[0-57-9]|33[0238])\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[024-9]|3[0-24-9]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "90\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81123456","nationalNumberPattern": "81\\d{6}"}},{"id": "LY","countryCode": "218","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-9]","format": "$1-$2"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "212345678","nationalNumberPattern": "(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "9[1-6]\\d{7}"}},{"id": "MA","mainCountryForCode": "true","countryCode": "212","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["5(?:29|38)","5(?:29[1289]|389)","529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]"],"format": "$1-$2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5[45]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"format": "$1-$2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[5-7]","format": "$1-$2"}]},"generalDesc": {"nationalNumberPattern": "[5-8]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "520123456","nationalNumberPattern": "5293[01]\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "650123456","nationalNumberPattern": "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891234567","nationalNumberPattern": "89\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "592401234","nationalNumberPattern": "592(?:4[0-2]|93)\\d{4}"}},{"id": "MC","countryCode": "377","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{2})","leadingDigits": "87","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[389]","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "(?:[3489]|6\\d)\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "8[07]0\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "99123456","nationalNumberPattern": "(?:870|9[2-47-9]\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "612345678","nationalNumberPattern": "4(?:[46]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "(?:800|90\\d)\\d{5}"}},{"id": "MD","countryCode": "373","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "22|3","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[25-7]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[235-7]\\d|[89]0)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22212345","nationalNumberPattern": "(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "62112345","nationalNumberPattern": "562\\d{5}|(?:6\\d|7[16-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[056]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80812345","nationalNumberPattern": "808\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "30123456","nationalNumberPattern": "3[08]\\d{6}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "80312345","nationalNumberPattern": "803\\d{5}"}},{"id": "ME","countryCode": "382","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "30234567","nationalNumberPattern": "(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "67622901","nationalNumberPattern": "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "80080002","nationalNumberPattern": "80(?:[0-2578]|9\\d)\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "94515151","nationalNumberPattern": "9(?:4[1568]|5[178])\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "78108780","nationalNumberPattern": "78[1-49]\\d{5}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "77273012","nationalNumberPattern": "77[1-9]\\d{5}"}},{"id": "MF","countryCode": "590","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "590\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "590271234","nationalNumberPattern": "590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "690001234","nationalNumberPattern": "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:395|76[018])\\d|475[0-5])\\d{4}"}},{"id": "MG","countryCode": "261","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([24-9]\\d{6})$|0","nationalPrefixTransformRule": "20$1","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[23]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "202123456","nationalNumberPattern": "2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "321234567","nationalNumberPattern": "3[2-47-9]\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "221234567","nationalNumberPattern": "22\\d{7}"}},{"id": "MH","countryCode": "692","internationalPrefix": "011","nationalPrefix": "1","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-6]","format": "$1-$2"}},"generalDesc": {"nationalNumberPattern": "329\\d{4}|(?:[256]\\d|45)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2471234","nationalNumberPattern": "(?:247|45[78]|528|625)\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "2351234","nationalNumberPattern": "(?:(?:23|54)5|329|45[356])\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "6351234","nationalNumberPattern": "635\\d{4}"}},{"id": "MK","countryCode": "389","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2|34[47]|4(?:[37]7|5[47]|64)","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[347]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[58]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[2-578]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "22012345","nationalNumberPattern": "(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "72345678","nationalNumberPattern": "7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "50012345","nationalNumberPattern": "5\\d{7}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "8(?:0[1-9]|[1-9]\\d)\\d{5}"}},{"id": "ML","countryCode": "223","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": ["67[057-9]|74[045]","67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[24-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[24-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "80\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20212345","nationalNumberPattern": "2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "65012345","nationalNumberPattern": "2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80\\d{6}"}},{"id": "MM","countryCode": "95","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "16|2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[4-7]|8[1-35]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{4,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:2[0-4]|[35-9]|4[137-9])","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "92","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}"},"fixedLine": {"possibleLengths": {"national": "[6-9]","localOnly": "5"},"exampleNumber": "1234567","nationalNumberPattern": "(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[29]|62|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|[26]2|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:(?:3\\d|8[01459])\\d|4[67]0)))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}"},"mobile": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "92123456","nationalNumberPattern": "(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8008001234","nationalNumberPattern": "80080(?:0[1-9]|2\\d)\\d{3}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "13331234","nationalNumberPattern": "1333\\d{4}|[12]468\\d{4}"}},{"id": "MN","countryCode": "976","internationalPrefix": "001","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]1","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[5-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]2[1-3]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[12]\\d{7,9}|[5-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "[8-10]","localOnly": "[4-6]"},"exampleNumber": "53123456","nationalNumberPattern": "[12]2[1-3]\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\d\\d|7(?:0(?:[0-5]\\d|7[078]|80)|128))\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "88123456","nationalNumberPattern": "(?:83[01]|92[039])\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "75123456","nationalNumberPattern": "712[0-79]\\d{4}|7(?:1[013-9]|[25-9]\\d)\\d{5}"}},{"id": "MO","countryCode": "853","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{3})","leadingDigits": "0","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[268]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "0800\\d{3}|(?:28|[68]\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "28212345","nationalNumberPattern": "(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "66123456","nationalNumberPattern": "6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "0800501","nationalNumberPattern": "0800\\d{3}"}},{"id": "MP","countryCode": "1","leadingDigits": "670","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "670$1","generalDesc": {"nationalNumberPattern": "[58]\\d{9}|(?:67|90)0\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6702345678","nationalNumberPattern": "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6702345678","nationalNumberPattern": "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "MQ","countryCode": "596","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[569]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "596\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "596301234","nationalNumberPattern": "596(?:[03-7]\\d|10|2[7-9]|8[0-39]|9[04-9])\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "696201234","nationalNumberPattern": "69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976612345","nationalNumberPattern": "9(?:397[0-2]|477[0-5]|76(?:6\\d|7[0-367]))\\d{4}"}},{"id": "MR","countryCode": "222","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2-48]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:[2-4]\\d\\d|800)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "35123456","nationalNumberPattern": "(?:25[08]|35\\d|45[1-7])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "[2-4][0-46-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"}},{"id": "MS","countryCode": "1","leadingDigits": "664","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([34]\\d{6})$|1","nationalPrefixTransformRule": "664$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|664|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6644912345","nationalNumberPattern": "6644(?:1[0-3]|91)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6644923456","nationalNumberPattern": "664(?:3(?:49|9[1-6])|49[2-6])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "MT","countryCode": "356","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2357-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21001234","nationalNumberPattern": "20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "96961234","nationalNumberPattern": "(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}"},"pager": {"possibleLengths": {"national": "8"},"exampleNumber": "71171234","nationalNumberPattern": "7117\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80071234","nationalNumberPattern": "800(?:02|[3467]\\d)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "50037123","nationalNumberPattern": "5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "35501234","nationalNumberPattern": "3550\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "50112345","nationalNumberPattern": "501\\d{5}"}},{"id": "MU","countryCode": "230","preferredInternationalPrefix": "020","internationalPrefix": "0(?:0|[24-7]0|3[03])","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-46]|8[013]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[57]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{5})","leadingDigits": "8","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,8"},"exampleNumber": "54480123","nationalNumberPattern": "(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-8])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "52512345","nationalNumberPattern": "5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-2]|3[013]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "8001234","nationalNumberPattern": "802\\d{7}|80[0-2]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "3012345","nationalNumberPattern": "30\\d{5}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "3201234","nationalNumberPattern": "3(?:20|9\\d)\\d{4}"}},{"id": "MV","countryCode": "960","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|19)","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[34679]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "6701234","nationalNumberPattern": "(?:3(?:0[0-3]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7712345","nationalNumberPattern": "(?:46[46]|[79]\\d\\d)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "900\\d{7}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "4001234","nationalNumberPattern": "4(?:0[01]|50)\\d{4}"}},{"id": "MW","countryCode": "265","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[137-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,9"},"exampleNumber": "1234567","nationalNumberPattern": "(?:1[2-9]|2[12]\\d\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "991234567","nationalNumberPattern": "111\\d{6}|(?:31|77|[89][89])\\d{7}"}},{"id": "MX","countryCode": "52","preferredInternationalPrefix": "00","internationalPrefix": "0[09]","nationalPrefix": "01","nationalPrefixForParsing": "0(?:[12]|4[45])|1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","leadingDigits": "53","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "33|5[56]|81","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{2})(\\d{4})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1(?:33|5[56]|81)","format": "$2 $3 $4"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1","format": "$2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[01]\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7,8"},"exampleNumber": "2001234567","nationalNumberPattern": "657[12]\\d{6}|(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}"},"mobile": {"possibleLengths": {"national": "10,11","localOnly": "7,8"},"exampleNumber": "12221234567","nationalNumberPattern": "657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:00|88)\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "900\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "3001234567","nationalNumberPattern": "300\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5001234567","nationalNumberPattern": "500\\d{7}"}},{"id": "MY","countryCode": "60","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[4-79]","format": "$1-$2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"format": "$1-$2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3","format": "$1-$2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{2})(\\d{4})","leadingDigits": "1(?:[367]|80)","format": "$1-$2-$3-$4"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15","format": "$1-$2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1-$2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "323856789","nationalNumberPattern": "(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "123456789","nationalNumberPattern": "1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-7]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1300123456","nationalNumberPattern": "1[378]00\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1600123456","nationalNumberPattern": "1600\\d{6}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "1546012345","nationalNumberPattern": "15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}"}},{"id": "MZ","countryCode": "258","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","leadingDigits": "2|8[2-79]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:2|8\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21123456","nationalNumberPattern": "2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "821234567","nationalNumberPattern": "8[2-79]\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"}},{"id": "NA","countryCode": "264","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "88","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "87","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[68]\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "61221234","nationalNumberPattern": "64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "811234567","nationalNumberPattern": "(?:60|8[1245])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "870123456","nationalNumberPattern": "8701\\d{5}"},"voip": {"possibleLengths": {"national": "8,9"},"exampleNumber": "88612345","nationalNumberPattern": "8(?:3\\d\\d|86)\\d{5}"}},{"id": "NC","countryCode": "687","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})","leadingDigits": "5[6-8]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[02-57-9]","format": "$1.$2.$3"}]},"generalDesc": {"nationalNumberPattern": "(?:050|[2-57-9]\\d\\d)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "201234","nationalNumberPattern": "(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "751234","nationalNumberPattern": "(?:5[0-4]|[79]\\d|8[0-79])\\d{4}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "050012","nationalNumberPattern": "050\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "366711","nationalNumberPattern": "36\\d{4}"}},{"id": "NE","countryCode": "227","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "08","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[089]|2[013]|7[047]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[027-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20201234","nationalNumberPattern": "2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "93123456","nationalNumberPattern": "(?:23|7[047]|[89]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "08123456","nationalNumberPattern": "08\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "09123456","nationalNumberPattern": "09\\d{6}"}},{"id": "NF","countryCode": "672","internationalPrefix": "00","nationalPrefixForParsing": "([0-258]\\d{4})$","nationalPrefixTransformRule": "3$1","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "1[0-3]","format": "$1 $2"},{"pattern": "(\\d)(\\d{5})","leadingDigits": "[13]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[13]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6","localOnly": "5"},"exampleNumber": "106609","nationalNumberPattern": "(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "6","localOnly": "5"},"exampleNumber": "381234","nationalNumberPattern": "(?:14|3[58])\\d{4}"}},{"id": "NG","countryCode": "234","internationalPrefix": "009","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "78","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]|9(?:0[3-9]|[1-9])","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-7]|8[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[7-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[78]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[78]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}"},"fixedLine": {"possibleLengths": {"national": "7,8","localOnly": "5,6"},"exampleNumber": "18040123","nationalNumberPattern": "(?:(?:[1-356]\\d|4[02-8]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|7(?:0(?:[013-689]\\d|2[0-24-9])\\d{3,4}|[1-79]\\d{6})|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "8021234567","nationalNumberPattern": "(?:702[0-24-9]|819[01])\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\d{7}"},"tollFree": {"possibleLengths": {"national": "[10-14]"},"exampleNumber": "80017591759","nationalNumberPattern": "800\\d{7,11}"},"uan": {"possibleLengths": {"national": "[10-14]"},"exampleNumber": "7001234567","nationalNumberPattern": "700\\d{7,11}"}},{"id": "NI","countryCode": "505","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[125-8]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:1800|[25-8]\\d{3})\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "2\\d{7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "81234567","nationalNumberPattern": "(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "18001234","nationalNumberPattern": "1800\\d{4}"}},{"id": "NL","countryCode": "31","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "1[238]|[34]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3,4})","leadingDigits": "14","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{6})","leadingDigits": "1","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{4,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]0","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "66","format": "$1 $2"},{"pattern": "(\\d)(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[16-8]|2[259]|3[124]|4[17-9]|5[124679]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-578]|91","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[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}"},"noInternationalDialling": {"possibleLengths": {"national": "5,6"},"nationalNumberPattern": "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "101234567","nationalNumberPattern": "(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "9,11"},"exampleNumber": "612345678","nationalNumberPattern": "(?:6[1-58]|970\\d)\\d{7}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "662345678","nationalNumberPattern": "66\\d{7}"},"tollFree": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4,7}"},"premiumRate": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "9061234","nationalNumberPattern": "90[069]\\d{4,7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "851234567","nationalNumberPattern": "(?:85|91)\\d{7}"},"uan": {"possibleLengths": {"national": "5,6,9"},"exampleNumber": "14020","nationalNumberPattern": "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d"}},{"id": "NO","mainCountryForCode": "true","countryCode": "47","leadingDigits": "[02-689]|7[0-8]","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2-79]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:0|[2-9]\\d{3})\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "40612345","nationalNumberPattern": "(?:4[015-8]|9\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80[01]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "82012345","nationalNumberPattern": "82[09]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81021234","nationalNumberPattern": "810(?:0[0-6]|[2-8]\\d)\\d{3}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "88012345","nationalNumberPattern": "880\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "85012345","nationalNumberPattern": "85[0-5]\\d{5}"},"uan": {"possibleLengths": {"national": "5,8"},"exampleNumber": "02000","nationalNumberPattern": "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"},"voicemail": {"possibleLengths": {"national": "8"},"exampleNumber": "81212345","nationalNumberPattern": "81[23]\\d{5}"}},{"id": "NP","countryCode": "977","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[2-6]","format": "$1-$2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[01]|[2-8]|9(?:[1-59]|[67][2-6])","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{7})","leadingDigits": "9","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{2})(\\d{5})","leadingDigits": "1","format": "$1-$2-$3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "(?:1\\d|9)\\d{9}|[1-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "14567890","nationalNumberPattern": "(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9841234567","nationalNumberPattern": "9(?:6[0-3]|7[024-6]|8[0-24-68])\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "16600101234","nationalNumberPattern": "1(?:66001|800\\d\\d)\\d{5}"}},{"id": "NR","countryCode": "674","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[4-68]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:444|(?:55|8\\d)\\d|666)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "4441234","nationalNumberPattern": "444\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "5551234","nationalNumberPattern": "(?:55[3-9]|666|8\\d\\d)\\d{4}"}},{"id": "NU","countryCode": "683","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[47]|888\\d)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "4"},"exampleNumber": "7012","nationalNumberPattern": "[47]\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "8884012","nationalNumberPattern": "888[4-9]\\d{3}"}},{"id": "NZ","countryCode": "64","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|161)","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-79]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["50[036-8]|8|90","50(?:[0367]|88)|8|90"],"format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "24|[346]|7[2-57-9]|9[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2(?:10|74)|[589]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1|2[028]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2(?:[169]|7[0-35-9])|7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[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}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "32345678","nationalNumberPattern": "24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}"},"mobile": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "211234567","nationalNumberPattern": "2(?:[0-27-9]\\d|6)\\d{6,7}|2(?:1\\d|75)\\d{5}"},"tollFree": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "800123456","nationalNumberPattern": "508\\d{6,7}|80\\d{6,8}"},"premiumRate": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "900123456","nationalNumberPattern": "(?:1[13-57-9]\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "70\\d{7}"},"uan": {"possibleLengths": {"national": "[5-10]"},"exampleNumber": "83012378","nationalNumberPattern": "8(?:1[16-9]|22|3\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\d{2,7}"}},{"id": "OM","countryCode": "968","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4,6})","leadingDigits": "[58]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","leadingDigits": "2","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[179]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "23123456","nationalNumberPattern": "2[1-6]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "92123456","nationalNumberPattern": "1505\\d{4}|(?:7(?:[1289]\\d|6[89]|7[0-5])|9(?:0[1-9]|[1-9]\\d))\\d{5}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "80071234","nationalNumberPattern": "8007\\d{4,5}|(?:500|800[05])\\d{4}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "900\\d{5}"}},{"id": "PA","countryCode": "507","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[1-57-9]","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[68]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2001234","nationalNumberPattern": "(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "61234567","nationalNumberPattern": "(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7,8,10,11"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4,5}|(?:00800|800\\d)\\d{6}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "8601234","nationalNumberPattern": "(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}"}},{"id": "PE","countryCode": "51","preferredInternationalPrefix": "00","internationalPrefix": "00|19(?:1[124]|77|90)00","nationalPrefix": "0","preferredExtnPrefix": " Anexo ","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "80","format": "$1 $2"},{"pattern": "(\\d)(\\d{7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[4-8]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[14-8]|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "11234567","nationalNumberPattern": "(?:(?:4[34]|5[14])[0-8]\\d|7(?:173|3[0-8]\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "9\\d{8}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "80512345","nationalNumberPattern": "805\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "801\\d{5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "80212345","nationalNumberPattern": "80[24]\\d{5}"}},{"id": "PF","countryCode": "689","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "44","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "4|8[7-9]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "4\\d{5}(?:\\d{2})?|8\\d{7,8}"},"noInternationalDialling": {"possibleLengths": {"national": "6"},"nationalNumberPattern": "44\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "40412345","nationalNumberPattern": "4(?:0[4-689]|9[4-68])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "87123456","nationalNumberPattern": "8[7-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "49901234","nationalNumberPattern": "499\\d{5}"},"uan": {"possibleLengths": {"national": "6"},"exampleNumber": "440123","nationalNumberPattern": "44\\d{4}"}},{"id": "PG","countryCode": "675","preferredInternationalPrefix": "00","internationalPrefix": "00|140[1-3]","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "18|[2-69]|85","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[78]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3123456","nationalNumberPattern": "(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70123456","nationalNumberPattern": "(?:7\\d|8[128])\\d{6}"},"pager": {"possibleLengths": {"national": "7"},"exampleNumber": "2700123","nationalNumberPattern": "27[01]\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "1801234","nationalNumberPattern": "180\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "2751234","nationalNumberPattern": "2(?:0[0-57]|7[568])\\d{4}"}},{"id": "PH","countryCode": "63","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4,6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["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]))"],"format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"format": "$1 $2"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[3-7]|8[2-8]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}"},"fixedLine": {"possibleLengths": {"national": "6,[8-10]","localOnly": "4,5,7"},"exampleNumber": "232345678","nationalNumberPattern": "(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9051234567","nationalNumberPattern": "(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}"},"tollFree": {"possibleLengths": {"national": "[11-13]"},"exampleNumber": "180012345678","nationalNumberPattern": "1800\\d{7,9}"}},{"id": "PK","countryCode": "92","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{2,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]0","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{5})","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{6,7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["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]"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7,8})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "58","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[24-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "9,10","localOnly": "[5-8]"},"exampleNumber": "2123456789","nationalNumberPattern": "(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?: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]))[2-9]\\d{5,6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "3012345678","nationalNumberPattern": "3(?:[0-24]\\d|3[0-79]|55|64)\\d{7}"},"tollFree": {"possibleLengths": {"national": "8,11"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}(?:\\d{3})?"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "900\\d{5}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "122044444","nationalNumberPattern": "122\\d{6}"},"uan": {"possibleLengths": {"national": "11,12"},"exampleNumber": "21111825888","nationalNumberPattern": "(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}"}},{"id": "PL","countryCode": "48","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","leadingDigits": "19","format": "$1"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "11|20|64","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})","leadingDigits": ["(?: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"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,3})","leadingDigits": "64","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "1[2-8]|[2-7]|8[1-79]|9[145]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7,9"},"exampleNumber": "123456789","nationalNumberPattern": "47\\d{7}|(?: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])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "512345678","nationalNumberPattern": "21(?:1(?:[145]\\d|3[1-5])|2\\d\\d)\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}"},"pager": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "641234567","nationalNumberPattern": "64\\d{4,7}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "70[01346-8]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "801\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "391234567","nationalNumberPattern": "39\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "804123456","nationalNumberPattern": "804\\d{6}"}},{"id": "PM","countryCode": "508","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[45]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[45]\\d{5}|(?:708|80\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "430123","nationalNumberPattern": "(?:4[1-35-7]|5[01])\\d{4}"},"mobile": {"possibleLengths": {"national": "6,9"},"exampleNumber": "551234","nationalNumberPattern": "(?:4[02-4]|5[056]|708[45][0-5])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"}},{"id": "PR","countryCode": "1","leadingDigits": "787|939","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[589]\\d\\d|787)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7872345678","nationalNumberPattern": "(?:787|939)[2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7872345678","nationalNumberPattern": "(?:787|939)[2-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "PS","countryCode": "970","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2489]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[2489]2\\d{6}|(?:1\\d|5)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22234567","nationalNumberPattern": "(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "599123456","nationalNumberPattern": "5[69]\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1800123456","nationalNumberPattern": "1800\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "1700123456","nationalNumberPattern": "1700\\d{6}"}},{"id": "PT","countryCode": "351","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "2[12]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "16|[236-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "212345678","nationalNumberPattern": "2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "6(?:[06]92(?:30|9\\d)|[35]92(?:3[03]|9\\d))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "622212345","nationalNumberPattern": "6222\\d{5}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80[02]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "760123456","nationalNumberPattern": "(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "808123456","nationalNumberPattern": "80(?:8\\d|9[1579])\\d{5}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "884123456","nationalNumberPattern": "884[0-4689]\\d{5}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "301234567","nationalNumberPattern": "30\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "707123456","nationalNumberPattern": "70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}"},"voicemail": {"possibleLengths": {"national": "9"},"exampleNumber": "600110000","nationalNumberPattern": "600\\d{6}|6[06]9233\\d{3}"}},{"id": "PW","countryCode": "680","internationalPrefix": "01[12]","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[24-8]\\d\\d|345|900)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2771234","nationalNumberPattern": "(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "6201234","nationalNumberPattern": "(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}"}},{"id": "PY","countryCode": "595","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-9]0","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4,5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "87","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:[5-79]|8[1-6])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-8]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}"},"fixedLine": {"possibleLengths": {"national": "[7-9]","localOnly": "5,6"},"exampleNumber": "212345678","nationalNumberPattern": "(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "961456789","nationalNumberPattern": "9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}"},"tollFree": {"possibleLengths": {"national": "[9-11]"},"exampleNumber": "98000123456","nationalNumberPattern": "9800\\d{5,7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "870012345","nationalNumberPattern": "8700[0-4]\\d{4}"},"uan": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "201234567","nationalNumberPattern": "[2-9]0\\d{4,7}"}},{"id": "QA","countryCode": "974","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "2[16]|8","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[3-7]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "44123456","nationalNumberPattern": "4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "33123456","nationalNumberPattern": "[35-7]\\d{7}"},"pager": {"possibleLengths": {"national": "7"},"exampleNumber": "2123456","nationalNumberPattern": "2[16]\\d{5}"},"tollFree": {"possibleLengths": {"national": "7,9,11"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}|(?:0080[01]|800)\\d{6}"}},{"id": "RE","mainCountryForCode": "true","countryCode": "262","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2689]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:26|[689]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "262161234","nationalNumberPattern": "26(?:2\\d\\d|3(?:0\\d|1[0-5]))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "692123456","nationalNumberPattern": "69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-27]|8[0-8]|9[0-479]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891123456","nationalNumberPattern": "89[1-37-9]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "810123456","nationalNumberPattern": "8(?:1[019]|2[0156]|84|90)\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "939901234","nationalNumberPattern": "9(?:399[0-3]|479[0-5]|76(?:2[27]|3[0-37]))\\d{4}"}},{"id": "RO","countryCode": "40","internationalPrefix": "00","nationalPrefix": "0","preferredExtnPrefix": " int ","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["2[3-6]","2[3-6]\\d9"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "219|31","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]1","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[237-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[2378]\\d|90)\\d{7}|[23]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6,9"},"exampleNumber": "211234567","nationalNumberPattern": "[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712034567","nationalNumberPattern": "7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-29])\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90[0136]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "801123456","nationalNumberPattern": "801\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "372123456","nationalNumberPattern": "(?:37\\d|80[578])\\d{6}"}},{"id": "RS","countryCode": "381","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,9})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:2[389]|39)0|[7-9]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-36]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[7-12]","localOnly": "[4-6]"},"exampleNumber": "10234567","nationalNumberPattern": "(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}"},"mobile": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "601234567","nationalNumberPattern": "6(?:[0-689]|7\\d)\\d{6,7}"},"tollFree": {"possibleLengths": {"national": "[6-12]"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{3,9}"},"premiumRate": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "90012345","nationalNumberPattern": "(?:78\\d|90[0169])\\d{3,7}"},"uan": {"possibleLengths": {"national": "[6-12]"},"exampleNumber": "700123456","nationalNumberPattern": "7[06]\\d{4,10}"}},{"id": "RU","mainCountryForCode": "true","countryCode": "7","leadingDigits": "3[04-689]|[489]","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[0-79]","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{5})(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[349]|8(?:[02-7]|1[1-8])","format": "$1 $2-$3-$4"},{"pattern": "(\\d{4})(\\d{4})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP ($FG)","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "8\\d{13}|[347-9]\\d{9}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3011234567","nationalNumberPattern": "(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9123456789","nationalNumberPattern": "9\\d{9}"},"tollFree": {"possibleLengths": {"national": "10,14"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:0[04]|108\\d{3})\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "8091234567","nationalNumberPattern": "80[39]\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "8081234567","nationalNumberPattern": "808\\d{7}"}},{"id": "RW","countryCode": "250","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "0","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[7-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:06|[27]\\d\\d|[89]00)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "250123456","nationalNumberPattern": "(?:06|2[23568]\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "720123456","nationalNumberPattern": "7[237-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "900\\d{6}"}},{"id": "SA","countryCode": "966","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{5})","leadingDigits": "9","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "81","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "92\\d{7}|(?:[15]|8\\d)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "112345678","nationalNumberPattern": "1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "512345678","nationalNumberPattern": "579[01]\\d{5}|5(?:[013-689]\\d|7[0-35-8])\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "925012345","nationalNumberPattern": "925\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "920012345","nationalNumberPattern": "920\\d{6}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "8110123456","nationalNumberPattern": "811\\d{7}"}},{"id": "SB","countryCode": "677","internationalPrefix": "0[01]","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{5})","leadingDigits": "7|8[4-9]|9(?:[1-8]|9[0-8])","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[1-6]|[7-9]\\d\\d)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "40123","nationalNumberPattern": "(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}"},"mobile": {"possibleLengths": {"national": "5,7"},"exampleNumber": "7421234","nationalNumberPattern": "48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "5"},"exampleNumber": "18123","nationalNumberPattern": "1[38]\\d{3}"},"voip": {"possibleLengths": {"national": "5"},"exampleNumber": "51123","nationalNumberPattern": "5[12]\\d{3}"}},{"id": "SC","countryCode": "248","preferredInternationalPrefix": "00","internationalPrefix": "010|0[0-2]","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{3})(\\d{3})","leadingDigits": "[246]|9[57]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "800\\d{4}|(?:[249]\\d|64)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "4217123","nationalNumberPattern": "4[2-46]\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "2510123","nationalNumberPattern": "2[125-8]\\d{5}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8000000","nationalNumberPattern": "800[08]\\d{3}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "6412345","nationalNumberPattern": "971\\d{4}|(?:64|95)\\d{5}"}},{"id": "SD","countryCode": "249","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[19]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[19]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "153123456","nationalNumberPattern": "1(?:5\\d|8[35-7])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "911231234","nationalNumberPattern": "(?:1[0-2]|9[0-3569])\\d{7}"}},{"id": "SE","countryCode": "46","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2,3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "20","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:00|39|44|9)","format": "$1-$2","intlFormat": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12][136]|3[356]|4[0246]|6[03]|90[1-9]","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d)(\\d{2,3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2,3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "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])","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2,3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:00|39|44)","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "10|7","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[26]","format": "$1-$2 $3 $4 $5","intlFormat": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}"},"fixedLine": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "8123456","nationalNumberPattern": "(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "7[02369]\\d{7}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "740123456","nationalNumberPattern": "74[02-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "20123456","nationalNumberPattern": "20\\d{4,7}"},"premiumRate": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "9001234567","nationalNumberPattern": "649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "771234567","nationalNumberPattern": "77[0-7]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "751234567","nationalNumberPattern": "75[1-8]\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "102345678","nationalNumberPattern": "10[1-8]\\d{6}"},"voicemail": {"possibleLengths": {"national": "12"},"exampleNumber": "254123456789","nationalNumberPattern": "(?:25[245]|67[3-68])\\d{9}"}},{"id": "SG","countryCode": "65","internationalPrefix": "0[0-3]\\d","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4,5})","leadingDigits": ["1[013-9]|77","1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[369]|8(?:0[1-8]|[1-9])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})(\\d{3})","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "61234567","nationalNumberPattern": "662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "81234567","nationalNumberPattern": "8(?:08[01]|95[0-2])\\d{4}|(?:8(?:0[1-7]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "10,11"},"exampleNumber": "18001234567","nationalNumberPattern": "(?:18|8)00\\d{7}"},"premiumRate": {"possibleLengths": {"national": "11"},"exampleNumber": "19001234567","nationalNumberPattern": "1900\\d{7}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "31234567","nationalNumberPattern": "(?:3[12]\\d|666)\\d{5}"},"uan": {"possibleLengths": {"national": "11"},"exampleNumber": "70001234567","nationalNumberPattern": "7000\\d{7}"}},{"id": "SH","mainCountryForCode": "true","countryCode": "290","leadingDigits": "[256]","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "(?:[256]\\d|8)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "4,5"},"exampleNumber": "22158","nationalNumberPattern": "2(?:[0-57-9]\\d|6[4-9])\\d\\d"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "51234","nationalNumberPattern": "[56]\\d{4}"},"voip": {"possibleLengths": {"national": "5"},"exampleNumber": "26212","nationalNumberPattern": "262\\d\\d"}},{"id": "SI","countryCode": "386","preferredInternationalPrefix": "00","internationalPrefix": "00|10(?:22|66|88|99)","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[09]|9","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "59|8","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[37][01]|4[0139]|51|6","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[1-57]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "12345678","nationalNumberPattern": "(?:[1-357][2-8]|4[24-8])\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "31234567","nationalNumberPattern": "65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}"},"tollFree": {"possibleLengths": {"national": "[6-8]"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "[5-8]"},"exampleNumber": "90123456","nationalNumberPattern": "89[1-3]\\d{2,5}|90\\d{4,6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "59012345","nationalNumberPattern": "(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}"}},{"id": "SJ","countryCode": "47","leadingDigits": "79","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "0\\d{4}|(?:[489]\\d|79)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "79123456","nationalNumberPattern": "79\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "41234567","nationalNumberPattern": "(?:4[015-8]|9\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80[01]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "82012345","nationalNumberPattern": "82[09]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81021234","nationalNumberPattern": "810(?:0[0-6]|[2-8]\\d)\\d{3}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "88012345","nationalNumberPattern": "880\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "85012345","nationalNumberPattern": "85[0-5]\\d{5}"},"uan": {"possibleLengths": {"national": "5,8"},"exampleNumber": "02000","nationalNumberPattern": "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"},"voicemail": {"possibleLengths": {"national": "8"},"exampleNumber": "81212345","nationalNumberPattern": "81[23]\\d{5}"}},{"id": "SK","countryCode": "421","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "21","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[3-5][1-8]1","[3-5][1-8]1[67]"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["909","9090"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1/$2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[689]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-5]","format": "$1/$2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "7,9"},"nationalNumberPattern": "9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}"},"fixedLine": {"possibleLengths": {"national": "6,7,9"},"exampleNumber": "221234567","nationalNumberPattern": "(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912123456","nationalNumberPattern": "909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}"},"pager": {"possibleLengths": {"national": "7"},"exampleNumber": "9090123","nationalNumberPattern": "9090\\d{3}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "9(?:00|[78]\\d)\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "850123456","nationalNumberPattern": "8[5-9]\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "690123456","nationalNumberPattern": "6(?:02|5[0-4]|9[0-6])\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "961234567","nationalNumberPattern": "96\\d{7}"}},{"id": "SL","countryCode": "232","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[236-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[237-9]\\d|66)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "22221234","nationalNumberPattern": "22[2-4][2-9]\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "25123456","nationalNumberPattern": "(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}"}},{"id": "SM","countryCode": "378","internationalPrefix": "00","nationalPrefixForParsing": "([89]\\d{5})$","nationalPrefixTransformRule": "0549$1","availableFormats": {"numberFormat": [{"pattern": "(\\d{6})","leadingDigits": "[89]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[5-7]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{4})(\\d{6})","leadingDigits": "0","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:0549|[5-7]\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "0549886377","nationalNumberPattern": "0549(?:8[0157-9]|9\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "66661212","nationalNumberPattern": "6[16]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "71123456","nationalNumberPattern": "7[178]\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "58001110","nationalNumberPattern": "5[158]\\d{6}"}},{"id": "SN","countryCode": "221","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "8","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[379]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[378]\\d|93)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "301012345","nationalNumberPattern": "3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "7(?:(?:[06-8]\\d|21|90)\\d|5(?:01|[19]0|25|[38]3|[4-7]\\d))\\d{5}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "884123456","nationalNumberPattern": "88[4689]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "810123456","nationalNumberPattern": "81[02468]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "933301234","nationalNumberPattern": "(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}"}},{"id": "SO","countryCode": "252","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "8[125]","format": "$1 $2"},{"pattern": "(\\d{6})","leadingDigits": "[134]","format": "$1"},{"pattern": "(\\d)(\\d{6})","leadingDigits": "[15]|2[0-79]|3[0-46-8]|4[0-7]","format": "$1 $2"},{"pattern": "(\\d)(\\d{7})","leadingDigits": "(?:2|90)4|[67]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[348]|64|79|90","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{5,7})","leadingDigits": "1|28|6[0-35-9]|77|9[2-9]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6,7"},"exampleNumber": "4012345","nationalNumberPattern": "(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}"},"mobile": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "71123456","nationalNumberPattern": "(?:(?:15|(?:3[59]|4[89]|6\\d|7[79]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}"}},{"id": "SR","countryCode": "597","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "56","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[2-5]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[6-8]","format": "$1-$2"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-5]|68|[78]\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6,7"},"exampleNumber": "211234","nationalNumberPattern": "(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7412345","nationalNumberPattern": "(?:7[124-7]|8[124-9])\\d{5}"},"voip": {"possibleLengths": {"national": "6"},"exampleNumber": "561234","nationalNumberPattern": "56\\d{4}"}},{"id": "SS","countryCode": "211","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[19]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[19]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "181234567","nationalNumberPattern": "1[89]\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "977123456","nationalNumberPattern": "(?:12|9[1257-9])\\d{7}"}},{"id": "ST","countryCode": "239","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[29]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:22|9\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2221234","nationalNumberPattern": "22\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "9812345","nationalNumberPattern": "900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}"}},{"id": "SV","countryCode": "503","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[267]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70123456","nationalNumberPattern": "[67]\\d{7}"},"tollFree": {"possibleLengths": {"national": "7,11"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}(?:\\d{4})?"},"premiumRate": {"possibleLengths": {"national": "7,11"},"exampleNumber": "9001234","nationalNumberPattern": "900\\d{4}(?:\\d{4})?"}},{"id": "SX","countryCode": "1","leadingDigits": "721","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "(5\\d{6})$|1","nationalPrefixTransformRule": "721$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7215425678","nationalNumberPattern": "7215(?:4[2-8]|8[239]|9[056])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7215205678","nationalNumberPattern": "7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "SY","countryCode": "963","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[1-5]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-39]\\d{8}|[1-5]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "112345678","nationalNumberPattern": "21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "944567890","nationalNumberPattern": "9[1-689]\\d{7}"}},{"id": "SZ","countryCode": "268","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[0237]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4})","leadingDigits": "9","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "0800\\d{4}|(?:[237]\\d|900)\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "0800\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22171234","nationalNumberPattern": "[23][2-5]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "76123456","nationalNumberPattern": "7[6-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "08001234","nationalNumberPattern": "0800\\d{4}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900012345","nationalNumberPattern": "900\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "70\\d{6}"}},{"id": "TA","countryCode": "290","leadingDigits": "8","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "8\\d{3}"},"fixedLine": {"possibleLengths": {"national": "4"},"exampleNumber": "8999","nationalNumberPattern": "8\\d{3}"}},{"id": "TC","countryCode": "1","leadingDigits": "649","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-479]\\d{6})$|1","nationalPrefixTransformRule": "649$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|649|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6497121234","nationalNumberPattern": "649(?:266|712|9(?:4\\d|50))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6492311234","nationalNumberPattern": "649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6497101234","nationalNumberPattern": "649(?:71[01]|966)\\d{4}"}},{"id": "TD","countryCode": "235","preferredInternationalPrefix": "00","internationalPrefix": "00|16","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2679]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:22|[69]\\d|77)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22501234","nationalNumberPattern": "22(?:[37-9]0|5[0-5]|6[89])\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "63012345","nationalNumberPattern": "(?:6[0235689]|77|9\\d)\\d{6}"}},{"id": "TG","countryCode": "228","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[279]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[279]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22212345","nationalNumberPattern": "2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "90112345","nationalNumberPattern": "(?:7[019]|9[0-36-9])\\d{6}"}},{"id": "TH","countryCode": "66","internationalPrefix": "00[1-9]","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-9]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "812345678","nationalNumberPattern": "671[0-8]\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}"},"tollFree": {"possibleLengths": {"national": "10,13"},"exampleNumber": "1800123456","nationalNumberPattern": "(?:001800\\d|1800)\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "1900\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "601234567","nationalNumberPattern": "6[08]\\d{7}"}},{"id": "TJ","countryCode": "992","preferredInternationalPrefix": "8~10","internationalPrefix": "810","availableFormats": {"numberFormat": [{"pattern": "(\\d{6})(\\d)(\\d{2})","leadingDigits": ["331","3317"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{4})","leadingDigits": "44[04]|[34]7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d)(\\d{4})","leadingDigits": "3[1-5]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "[0-57-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[0-57-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "3,[5-7]"},"exampleNumber": "372123456","nationalNumberPattern": "(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:4[046]|74|87))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "917123456","nationalNumberPattern": "(?:41[18]|81[1-9])\\d{6}|(?:0[0-57-9]|1[017]|2[02]|[34]0|5[05]|7[0178]|8[078]|9\\d)\\d{7}"}},{"id": "TK","countryCode": "690","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "[2-47]\\d{3,6}"},"fixedLine": {"possibleLengths": {"national": "[4-7]"},"exampleNumber": "3101","nationalNumberPattern": "(?:2[2-4]|[34]\\d)\\d{2,5}"},"mobile": {"possibleLengths": {"national": "[4-7]"},"exampleNumber": "7290","nationalNumberPattern": "7[2-4]\\d{2,5}"}},{"id": "TL","countryCode": "670","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-489]|70","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2112345","nationalNumberPattern": "(?:2[1-5]|3[1-9]|4[1-4])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "77212345","nationalNumberPattern": "7[2-8]\\d{6}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8012345","nationalNumberPattern": "80\\d{5}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9012345","nationalNumberPattern": "90\\d{5}"},"personalNumber": {"possibleLengths": {"national": "7"},"exampleNumber": "7012345","nationalNumberPattern": "70\\d{5}"}},{"id": "TM","countryCode": "993","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "12","format": "$1 $2-$3-$4"},{"pattern": "(\\d{3})(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "[1-5]","format": "$1 $2-$3-$4"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "6","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[1-6]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "66123456","nationalNumberPattern": "6\\d{7}"}},{"id": "TN","countryCode": "216","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[2-57-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[2-57-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "30010123","nationalNumberPattern": "81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "20123456","nationalNumberPattern": "3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-8])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80101234","nationalNumberPattern": "8010\\d{4}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "88123456","nationalNumberPattern": "88\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81101234","nationalNumberPattern": "8[12]10\\d{4}"}},{"id": "TO","countryCode": "676","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})","leadingDigits": "[2-4]|50|6[09]|7[0-24-69]|8[05]","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{3})","leadingDigits": "0","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[5-9]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "20123","nationalNumberPattern": "(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7715123","nationalNumberPattern": "(?:55[4-6]|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "0800222","nationalNumberPattern": "0800\\d{3}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "5510123","nationalNumberPattern": "55[0-37-9]\\d{4}"}},{"id": "TR","countryCode": "90","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d)(\\d{3})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "444","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "512|8[01589]|90","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[24][1-8]|3[1-9]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{6,7})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "80","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "7,10"},"nationalNumberPattern": "(?:444|811\\d{3})\\d{4}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2123456789","nationalNumberPattern": "(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "5012345678","nationalNumberPattern": "56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "5123456789","nationalNumberPattern": "512\\d{7}"},"tollFree": {"possibleLengths": {"national": "10,12,13"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "(?:8[89]8|900)\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5922121234","nationalNumberPattern": "592(?:21[12]|461)\\d{4}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "8500123456","nationalNumberPattern": "850\\d{7}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "4441444","nationalNumberPattern": "444\\d{4}"}},{"id": "TT","countryCode": "1","leadingDigits": "868","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-46-8]\\d{6})$|1","nationalPrefixTransformRule": "868$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8682211234","nationalNumberPattern": "868(?:2(?:01|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8682911234","nationalNumberPattern": "868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voicemail": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8686191234","nationalNumberPattern": "868619\\d{4}"}},{"id": "TV","countryCode": "688","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})","leadingDigits": "2","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "90","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:2|7\\d\\d|90)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "20123","nationalNumberPattern": "2[02-9]\\d{3}"},"mobile": {"possibleLengths": {"national": "6,7"},"exampleNumber": "901234","nationalNumberPattern": "(?:7[01]\\d|90)\\d{4}"}},{"id": "TW","countryCode": "886","internationalPrefix": "0(?:0[25-79]|19)","nationalPrefix": "0","preferredExtnPrefix": "#","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d)(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "202","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[258]0","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[49]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "221234567","nationalNumberPattern": "(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "(?:40001[0-2]|9[0-8]\\d{4})\\d{3}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "800123456","nationalNumberPattern": "80[0-79]\\d{6}|800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "7,9"},"exampleNumber": "203123456","nationalNumberPattern": "20(?:[013-9]\\d\\d|2)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "990123456","nationalNumberPattern": "99\\d{7}"},"voip": {"possibleLengths": {"national": "10,11"},"exampleNumber": "7012345678","nationalNumberPattern": "7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "500123456","nationalNumberPattern": "50[0-46-9]\\d{6}"}},{"id": "TZ","countryCode": "255","internationalPrefix": "00[056]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[24]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{7})","leadingDigits": "5","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[67]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[25-8]\\d|41|90)\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "(?:8(?:[04]0|6[01])|90\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222345678","nationalNumberPattern": "2[2-8]\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "621234567","nationalNumberPattern": "77[2-9]\\d{6}|(?:6[125-9]|7[13-689])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80[08]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90\\d{7}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "840123456","nationalNumberPattern": "8(?:40|6[01])\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "41\\d{7}"}},{"id": "UA","countryCode": "380","preferredInternationalPrefix": "0~0","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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])"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-7]|89|9[1-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[89]\\d{9}|[3-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "[5-7]"},"exampleNumber": "311234567","nationalNumberPattern": "(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "501234567","nationalNumberPattern": "(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800[1-8]\\d{5,6}"},"premiumRate": {"possibleLengths": {"national": "9,10"},"exampleNumber": "900212345","nationalNumberPattern": "900[239]\\d{5,6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "891234567","nationalNumberPattern": "89[1-579]\\d{6}"}},{"id": "UG","countryCode": "256","internationalPrefix": "00[057]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["202","2024"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[27-9]|4(?:6[45]|[7-9])","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[34]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "[5-7]"},"exampleNumber": "312345678","nationalNumberPattern": "20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "726[01]\\d{5}|7(?:[01578]\\d|20|36|4[0-4]|6[0-5]|9[89])\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800[1-3]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "901123456","nationalNumberPattern": "90[1-3]\\d{6}"}},{"id": "US","mainCountryForCode": "true","countryCode": "1","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "310","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[24-9]|3(?:[02-9]|1[1-9])","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[2-9]","format": "($1) $2-$3","intlFormat": "$1-$2-$3"}]},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{9}|3\\d{6}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2015550123","nationalNumberPattern": "5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|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]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|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}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2015550123","nationalNumberPattern": "5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|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]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|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}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "UY","countryCode": "598","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|1[3-9]\\d)","nationalPrefix": "0","preferredExtnPrefix": " int. ","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "405|8|90","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[124]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:0004|4)\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "21231234","nationalNumberPattern": "(?:1(?:770|987)|(?:2\\d|4[2-7])\\d\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "94231234","nationalNumberPattern": "9[1-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "7,10,13"},"exampleNumber": "8001234","nationalNumberPattern": "(?:(?:0004|4)\\d{5}|80[05])\\d{4}|405\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9001234","nationalNumberPattern": "90[0-8]\\d{4}"}},{"id": "UZ","countryCode": "998","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[235-9]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "200\\d{6}|(?:33|[5-79]\\d|88)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "669050123","nationalNumberPattern": "(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "(?:(?:200[01]|(?:33|50|88|9[0-57-9])\\d\\d)\\d|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}"}},{"id": "VA","countryCode": "39","leadingDigits": "06698","internationalPrefix": "00","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[6-11]"},"exampleNumber": "0669812345","nationalNumberPattern": "06698\\d{1,6}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "3123456789","nationalNumberPattern": "3[1-9]\\d{8}|3[2-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "6,9"},"exampleNumber": "800123456","nationalNumberPattern": "80(?:0\\d{3}|3)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6,[8-10]"},"exampleNumber": "899123456","nationalNumberPattern": "(?: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}"},"sharedCost": {"possibleLengths": {"national": "6,9"},"exampleNumber": "848123456","nationalNumberPattern": "84(?:[08]\\d{3}|[17])\\d{3}"},"personalNumber": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1781234567","nationalNumberPattern": "1(?:78\\d|99)\\d{6}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "55\\d{8}"},"voicemail": {"possibleLengths": {"national": "11,12"},"exampleNumber": "33101234501","nationalNumberPattern": "3[2-8]\\d{9,10}"}},{"id": "VC","countryCode": "1","leadingDigits": "784","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-7]\\d{6})$|1","nationalPrefixTransformRule": "784$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|784|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7842661234","nationalNumberPattern": "784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7844301234","nationalNumberPattern": "784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7845101234","nationalNumberPattern": "78451[0-2]\\d{4}"}},{"id": "VE","countryCode": "58","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[24-689]","format": "$1-$2"}},"generalDesc": {"nationalNumberPattern": "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2121234567","nationalNumberPattern": "(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "4121234567","nationalNumberPattern": "4(?:1[24-8]|2[46])\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "90[01]\\d{7}"},"uan": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "5010123456","nationalNumberPattern": "501\\d{7}"}},{"id": "VG","countryCode": "1","leadingDigits": "284","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-578]\\d{6})$|1","nationalPrefixTransformRule": "284$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:284|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2842291234","nationalNumberPattern": "284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2843001234","nationalNumberPattern": "284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "VI","countryCode": "1","leadingDigits": "340","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "340$1","generalDesc": {"nationalNumberPattern": "[58]\\d{9}|(?:34|90)0\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3406421234","nationalNumberPattern": "340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3406421234","nationalNumberPattern": "340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "VN","countryCode": "84","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[17]99","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "80","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "69","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4,6})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "6","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[357-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "2[48]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "2","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "7,8"},"nationalNumberPattern": "[17]99\\d{4}|69\\d{5,6}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2101234567","nationalNumberPattern": "2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}"},"tollFree": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "1800123456","nationalNumberPattern": "1800\\d{4,6}|12(?:0[13]|28)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "1900123456","nationalNumberPattern": "1900\\d{4,6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "672012345","nationalNumberPattern": "672\\d{6}"},"uan": {"possibleLengths": {"national": "7,8"},"exampleNumber": "1992000","nationalNumberPattern": "(?:[17]99|80\\d)\\d{4}|69\\d{5,6}"}},{"id": "VU","countryCode": "678","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[57-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "22123","nationalNumberPattern": "(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "5912345","nationalNumberPattern": "(?:[58]\\d|7[013-7])\\d{5}"},"tollFree": {"possibleLengths": {"national": "5"},"exampleNumber": "81123","nationalNumberPattern": "81[18]\\d\\d"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "9010123","nationalNumberPattern": "9(?:0[1-9]|1[01])\\d{4}"},"uan": {"possibleLengths": {"national": "5,7"},"exampleNumber": "30123","nationalNumberPattern": "(?:3[03]|900\\d)\\d{3}"}},{"id": "WF","countryCode": "681","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[478]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "721234","nationalNumberPattern": "72\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "821234","nationalNumberPattern": "(?:72|8[23])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voicemail": {"possibleLengths": {"national": "6"},"exampleNumber": "401234","nationalNumberPattern": "[48]0\\d{4}"}},{"id": "WS","countryCode": "685","internationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","leadingDigits": "[2-5]|6[1-9]","format": "$1"},{"pattern": "(\\d{3})(\\d{3,7})","leadingDigits": "[68]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "5,6"},"exampleNumber": "22123","nationalNumberPattern": "6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}"},"mobile": {"possibleLengths": {"national": "7,10"},"exampleNumber": "7212345","nationalNumberPattern": "(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "800123","nationalNumberPattern": "800\\d{3}"}},{"id": "XK","countryCode": "383","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-4]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "28012345","nationalNumberPattern": "(?:2[89]|39)0\\d{6}|[23][89]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "43201234","nationalNumberPattern": "4[3-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80001234","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90001234","nationalNumberPattern": "900\\d{5}"}},{"id": "YE","countryCode": "967","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-6]|7(?:[24-6]|8[0-7])","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1|7\\d)\\d{7}|[1-7]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,8","localOnly": "6"},"exampleNumber": "1234567","nationalNumberPattern": "78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "7[01378]\\d{7}"}},{"id": "YT","countryCode": "262","internationalPrefix": "00","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "269601234","nationalNumberPattern": "269(?:0[0-467]|5[0-4]|6\\d|[78]0)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "639012345","nationalNumberPattern": "639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "939801234","nationalNumberPattern": "9(?:(?:39|47)8[01]|769\\d)\\d{4}"}},{"id": "ZA","countryCode": "27","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-4]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-4]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "860","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-79]\\d{8}|8\\d{4,9}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "101234567","nationalNumberPattern": "(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}"},"mobile": {"possibleLengths": {"national": "[5-9]"},"exampleNumber": "711234567","nationalNumberPattern": "(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "862345678","nationalNumberPattern": "(?:86[2-9]|9[0-2]\\d)\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "860123456","nationalNumberPattern": "860\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "871234567","nationalNumberPattern": "87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}"},"uan": {"possibleLengths": {"national": "9,10"},"exampleNumber": "861123456","nationalNumberPattern": "861\\d{6,7}"}},{"id": "ZM","countryCode": "260","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[1-9]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[28]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[79]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "800\\d{6}|(?:21|63|[79]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "6"},"exampleNumber": "211234567","nationalNumberPattern": "21[1-8]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "955123456","nationalNumberPattern": "(?:7[5-79]|9[5-8])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "630123456","nationalNumberPattern": "63\\d{7}"}},{"id": "ZW","countryCode": "263","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{2,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[49]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "80","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["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]"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "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]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "29[013-9]|39|54","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["(?:25|54)8","258|5483"],"format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[5-10]","localOnly": "3,4"},"exampleNumber": "1312345","nationalNumberPattern": "(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "7(?:[178]\\d|3[1-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "80(?:[01]\\d|20|8[0-8])\\d{3}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "8686123456","nationalNumberPattern": "86(?:1[12]|22|30|44|55|77|8[368])\\d{6}"}},{"id": "001","countryCode": "800","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "\\d","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:00|[1-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "(?:00|[1-9]\\d)\\d{6}"}},{"id": "001","countryCode": "808","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[1-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{7}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "[1-9]\\d{7}"}},{"id": "001","countryCode": "870","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[35-7]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "7\\d{11}|[35-7]\\d{8}"},"mobile": {"possibleLengths": {"national": "9,12"},"exampleNumber": "301234567","nationalNumberPattern": "(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"}},{"id": "001","countryCode": "878","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{5})(\\d{5})","leadingDigits": "1","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "10\\d{10}"},"voip": {"possibleLengths": {"national": "12"},"exampleNumber": "101234567890","nationalNumberPattern": "10\\d{10}"}},{"id": "001","countryCode": "881","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{3})(\\d{5})","leadingDigits": "[0-36-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[0-36-9]\\d{8}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "612345678","nationalNumberPattern": "[0-36-9]\\d{8}"}},{"id": "001","countryCode": "882","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "16|342","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","leadingDigits": "49","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "1[36]|9","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{3})","leadingDigits": "3[23]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","leadingDigits": "16","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","leadingDigits": "10|23|3(?:[15]|4[57])|4|51","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","leadingDigits": "34","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4,5})(\\d{5})","leadingDigits": "[1-35]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?"},"mobile": {"possibleLengths": {"national": "[7-10],12"},"exampleNumber": "3421234","nationalNumberPattern": "342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}"},"voip": {"possibleLengths": {"national": "[7-12]"},"exampleNumber": "390123456789","nationalNumberPattern": "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}"},"voicemail": {"possibleLengths": {"national": "11"},"exampleNumber": "34851234567","nationalNumberPattern": "348[57]\\d{7}"}},{"id": "001","countryCode": "883","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{2,8})","leadingDigits": "[14]|2[24-689]|3[02-689]|51[24-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "510","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "21","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})(\\d{4})","leadingDigits": "51[13]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[235]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[1-4]\\d|51)\\d{6,10}"},"voip": {"possibleLengths": {"national": "[8-12]"},"exampleNumber": "510012345","nationalNumberPattern": "(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"}},{"id": "001","countryCode": "888","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{5})","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "\\d{11}"},"uan": {"possibleLengths": {"national": "11"},"exampleNumber": "12345678901","nationalNumberPattern": "\\d{11}"}},{"id": "001","countryCode": "979","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{4})(\\d{4})","leadingDigits": "[1359]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[1359]\\d{8}"},"premiumRate": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "123456789","nationalNumberPattern": "[1359]\\d{8}"}}]} }} \ No newline at end of file diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift new file mode 100644 index 0000000..0f25f89 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift @@ -0,0 +1,59 @@ +// +// CountryCodePickerOptions.swift +// PhoneNumberKit +// +// Created by Joao Vitor Molinari on 19/09/23. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +#if os(iOS) +import UIKit + +/** + CountryCodePickerOptions object + - Parameter backgroundColor: UIColor used for background + - Parameter separatorColor: UIColor used for the separator line between cells + - Parameter textLabelColor: UIColor for the TextLabel (Country code) + - Parameter textLabelFont: UIFont for the TextLabel (Country code) + - Parameter detailTextLabelColor: UIColor for the DetailTextLabel (Country name) + - Parameter detailTextLabelFont: UIFont for the DetailTextLabel (Country name) + - Parameter tintColor: Default TintColor used on the view + - Parameter cellBackgroundColor: UIColor for the cell background + - Parameter cellBackgroundColorSelection: UIColor for the cell selectedBackgroundView + */ +public struct CountryCodePickerOptions { + + public init() { } + + public init(backgroundColor: UIColor? = nil, + separatorColor: UIColor? = nil, + textLabelColor: UIColor? = nil, + textLabelFont: UIFont? = nil, + detailTextLabelColor: UIColor? = nil, + detailTextLabelFont: UIFont? = nil, + tintColor: UIColor? = nil, + cellBackgroundColor: UIColor? = nil, + cellBackgroundColorSelection: UIColor? = nil) { + + self.backgroundColor = backgroundColor + self.separatorColor = separatorColor + self.textLabelColor = textLabelColor + self.textLabelFont = textLabelFont + self.detailTextLabelColor = detailTextLabelColor + self.detailTextLabelFont = detailTextLabelFont + self.tintColor = tintColor + self.cellBackgroundColor = cellBackgroundColor + self.cellBackgroundColorSelection = cellBackgroundColorSelection + } + + public var backgroundColor: UIColor? + public var separatorColor: UIColor? + public var textLabelColor: UIColor? + public var textLabelFont: UIFont? + public var detailTextLabelColor: UIColor? + public var detailTextLabelFont: UIFont? + public var tintColor: UIColor? + public var cellBackgroundColor: UIColor? + public var cellBackgroundColorSelection: UIColor? +} +#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift new file mode 100644 index 0000000..501c8dc --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift @@ -0,0 +1,303 @@ +#if os(iOS) + +import UIKit + +public protocol CountryCodePickerDelegate: AnyObject { + func countryCodePickerViewControllerDidPickCountry(_ country: CountryCodePickerViewController.Country) +} + +public class CountryCodePickerViewController: UITableViewController { + + lazy var searchController: UISearchController = { + let searchController = UISearchController(searchResultsController: nil) + searchController.searchBar.placeholder = NSLocalizedString( + "PhoneNumberKit.CountryCodePicker.SearchBarPlaceholder", + value: "Search Country Codes", + comment: "Placeholder for country code search field") + + return searchController + }() + + public let phoneNumberKit: PhoneNumberKit + + public let options: CountryCodePickerOptions + + let commonCountryCodes: [String] + + var shouldRestoreNavigationBarToHidden = false + + var hasCurrent = true + var hasCommon = true + + lazy var allCountries = phoneNumberKit + .allCountries() + .compactMap({ Country(for: $0, with: self.phoneNumberKit) }) + .sorted(by: { $0.name.localizedCaseInsensitiveCompare($1.name) == .orderedAscending }) + + lazy var countries: [[Country]] = { + let countries = allCountries + .reduce([[Country]]()) { collection, country in + var collection = collection + guard var lastGroup = collection.last else { return [[country]] } + let lhs = lastGroup.first?.name.folding(options: .diacriticInsensitive, locale: nil) + let rhs = country.name.folding(options: .diacriticInsensitive, locale: nil) + if lhs?.first == rhs.first { + lastGroup.append(country) + collection[collection.count - 1] = lastGroup + } else { + collection.append([country]) + } + return collection + } + + let popular = commonCountryCodes.compactMap({ Country(for: $0, with: phoneNumberKit) }) + + var result: [[Country]] = [] + // Note we should maybe use the user's current carrier's country code? + if hasCurrent, let current = Country(for: PhoneNumberKit.defaultRegionCode(), with: phoneNumberKit) { + result.append([current]) + } + hasCommon = hasCommon && !popular.isEmpty + if hasCommon { + result.append(popular) + } + return result + countries + }() + + var filteredCountries: [Country] = [] + + public weak var delegate: CountryCodePickerDelegate? + + lazy var cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(dismissAnimated)) + + /** + Init with a phone number kit instance. Because a PhoneNumberKit initialization is expensive you can must pass a pre-initialized instance to avoid incurring perf penalties. + + - parameter phoneNumberKit: A PhoneNumberKit instance to be used by the text field. + - parameter commonCountryCodes: An array of country codes to display in the section below the current region section. defaults to `PhoneNumberKit.CountryCodePicker.commonCountryCodes` + */ + public init( + phoneNumberKit: PhoneNumberKit, + options: CountryCodePickerOptions?, + commonCountryCodes: [String] = PhoneNumberKit.CountryCodePicker.commonCountryCodes) + { + self.phoneNumberKit = phoneNumberKit + self.commonCountryCodes = commonCountryCodes + self.options = options ?? CountryCodePickerOptions() + super.init(style: .grouped) + self.commonInit() + } + + required init?(coder aDecoder: NSCoder) { + self.phoneNumberKit = PhoneNumberKit() + self.commonCountryCodes = PhoneNumberKit.CountryCodePicker.commonCountryCodes + self.options = CountryCodePickerOptions() + super.init(coder: aDecoder) + self.commonInit() + } + + func commonInit() { + self.title = NSLocalizedString("PhoneNumberKit.CountryCodePicker.Title", value: "Choose your country", comment: "Title of CountryCodePicker ViewController") + + tableView.register(Cell.self, forCellReuseIdentifier: Cell.reuseIdentifier) + searchController.searchResultsUpdater = self + searchController.obscuresBackgroundDuringPresentation = false + searchController.searchBar.backgroundColor = .clear + + navigationItem.searchController = searchController + navigationItem.hidesSearchBarWhenScrolling = !PhoneNumberKit.CountryCodePicker.alwaysShowsSearchBar + + definesPresentationContext = true + + if let tintColor = options.tintColor { + view.tintColor = tintColor + navigationController?.navigationBar.tintColor = tintColor + } + + if let backgroundColor = options.backgroundColor { + tableView.backgroundColor = backgroundColor + } + + if let separator = options.separatorColor { + tableView.separatorColor = separator + } + } + + public override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + if let nav = navigationController { + shouldRestoreNavigationBarToHidden = nav.isNavigationBarHidden + nav.setNavigationBarHidden(false, animated: true) + } + if let nav = navigationController, nav.isBeingPresented && nav.viewControllers.count == 1 { + navigationItem.setRightBarButton(cancelButton, animated: true) + } + } + + public override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + navigationController?.setNavigationBarHidden(shouldRestoreNavigationBarToHidden, animated: true) + } + + @objc func dismissAnimated() { + dismiss(animated: true) + } + + func country(for indexPath: IndexPath) -> Country { + isFiltering ? filteredCountries[indexPath.row] : countries[indexPath.section][indexPath.row] + } + + public override func numberOfSections(in tableView: UITableView) -> Int { + isFiltering ? 1 : countries.count + } + + public override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + isFiltering ? filteredCountries.count : countries[section].count + } + + public override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: Cell.reuseIdentifier, for: indexPath) + let country = self.country(for: indexPath) + + if let cellBackgroundColor = options.cellBackgroundColor { + cell.backgroundColor = cellBackgroundColor + } + + cell.textLabel?.text = country.prefix + " " + country.flag + + if let textLabelColor = options.textLabelColor { + cell.textLabel?.textColor = textLabelColor + } + + if let detailTextLabelColor = options.detailTextLabelColor { + cell.detailTextLabel?.textColor = detailTextLabelColor + } + + cell.detailTextLabel?.text = country.name + + if let textLabelFont = options.textLabelFont { + cell.textLabel?.font = textLabelFont + } + + if let detailTextLabelFont = options.detailTextLabelFont { + cell.detailTextLabel?.font = detailTextLabelFont + } + + if let cellBackgroundColorSelection = options.cellBackgroundColorSelection { + let view = UIView() + view.backgroundColor = cellBackgroundColorSelection + cell.selectedBackgroundView = view + } + + return cell + } + + public override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + if isFiltering { + return nil + } else if section == 0, hasCurrent { + return NSLocalizedString("PhoneNumberKit.CountryCodePicker.Current", value: "Current", comment: "Name of \"Current\" section") + } else if section == 0, !hasCurrent, hasCommon { + return NSLocalizedString("PhoneNumberKit.CountryCodePicker.Common", value: "Common", comment: "Name of \"Common\" section") + } else if section == 1, hasCurrent, hasCommon { + return NSLocalizedString("PhoneNumberKit.CountryCodePicker.Common", value: "Common", comment: "Name of \"Common\" section") + } + return countries[section].first?.name.first.map(String.init) + } + + public override func sectionIndexTitles(for tableView: UITableView) -> [String]? { + guard !isFiltering else { + return nil + } + var titles: [String] = [] + if hasCurrent { + titles.append("•") // NOTE: SFSymbols are not supported otherwise we would use 􀋑 + } + if hasCommon { + titles.append("★") // This is a classic unicode star + } + return titles + countries.suffix(countries.count - titles.count).map { group in + group.first?.name.first + .map(String.init)? + .folding(options: .diacriticInsensitive, locale: nil) ?? "" + } + } + + public override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let country = self.country(for: indexPath) + delegate?.countryCodePickerViewControllerDidPickCountry(country) + tableView.deselectRow(at: indexPath, animated: true) + } +} + +extension CountryCodePickerViewController: UISearchResultsUpdating { + + var isFiltering: Bool { + searchController.isActive && !isSearchBarEmpty + } + + var isSearchBarEmpty: Bool { + searchController.searchBar.text?.isEmpty ?? true + } + + public func updateSearchResults(for searchController: UISearchController) { + let searchText = searchController.searchBar.text ?? "" + filteredCountries = allCountries.filter { country in + country.name.lowercased().contains(searchText.lowercased()) || + country.code.lowercased().contains(searchText.lowercased()) || + country.prefix.lowercased().contains(searchText.lowercased()) + } + tableView.reloadData() + } +} + + +// MARK: Types + +public extension CountryCodePickerViewController { + + struct Country { + public var code: String + public var flag: String + public var name: String + public var prefix: String + + public init?(for countryCode: String, with phoneNumberKit: PhoneNumberKit) { + let flagBase = UnicodeScalar("🇦").value - UnicodeScalar("A").value + guard + let name = (Locale.current as NSLocale).localizedString(forCountryCode: countryCode), + let prefix = phoneNumberKit.countryCode(for: countryCode)?.description + else { + return nil + } + + self.code = countryCode + self.name = name + self.prefix = "+" + prefix + self.flag = "" + countryCode.uppercased().unicodeScalars.forEach { + if let scaler = UnicodeScalar(flagBase + $0.value) { + flag.append(String(describing: scaler)) + } + } + if flag.count != 1 { // Failed to initialize a flag ... use an empty string + return nil + } + } + } + + class Cell: UITableViewCell { + + static let reuseIdentifier = "Cell" + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: .value2, reuseIdentifier: Self.reuseIdentifier) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + } +} + +#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift new file mode 100644 index 0000000..3ff9839 --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift @@ -0,0 +1,622 @@ +// +// PhoneNumberTextField.swift +// PhoneNumberKit +// +// Created by Roy Marmelstein on 07/11/2015. +// Copyright © 2021 Roy Marmelstein. All rights reserved. +// + +#if os(iOS) + +import Foundation +import UIKit + +/// Custom text field that formats phone numbers +open class PhoneNumberTextField: UITextField, UITextFieldDelegate { + public let phoneNumberKit: PhoneNumberKit + + public lazy var flagButton = UIButton() + + /// Override setText so number will be automatically formatted when setting text by code + open override var text: String? { + set { + if isPartialFormatterEnabled, let newValue = newValue { + let formattedNumber = partialFormatter.formatPartial(newValue) + super.text = formattedNumber + } else { + super.text = newValue + } + NotificationCenter.default.post(name: UITextField.textDidChangeNotification, object: self) + self.updateFlag() + } + get { + return super.text + } + } + + /// allows text to be set without formatting + open func setTextUnformatted(newValue: String?) { + super.text = newValue + } + + private lazy var _defaultRegion: String = PhoneNumberKit.defaultRegionCode() + + /// Override region to set a custom region. Automatically uses the default region code. + open var defaultRegion: String { + get { + return self._defaultRegion + } + @available( + *, + deprecated, + message: """ + The setter of defaultRegion is deprecated, + please override defaultRegion in a subclass instead. + """ + ) + set { + self.partialFormatter.defaultRegion = newValue + } + } + + public var withPrefix: Bool = true { + didSet { + self.partialFormatter.withPrefix = self.withPrefix + if self.withPrefix == false { + self.keyboardType = .numberPad + } else { + self.keyboardType = .phonePad + } + if self.withExamplePlaceholder { + self.updatePlaceholder() + } + } + } + + public var withFlag: Bool = false { + didSet { + leftView = self.withFlag ? self.flagButton : nil + leftViewMode = self.withFlag ? .always : .never + self.updateFlag() + } + } + + public var withExamplePlaceholder: Bool = false { + didSet { + if self.withExamplePlaceholder { + self.updatePlaceholder() + } else { + attributedPlaceholder = nil + } + } + } + + #if compiler(>=5.1) + /// Available on iOS 13 and above just. + public var countryCodePlaceholderColor: UIColor = { + if #available(iOS 13.0, tvOS 13.0, *) { + return .secondaryLabel + } else { + return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22) + } + }() { + didSet { + self.updatePlaceholder() + } + } + + /// Available on iOS 13 and above just. + public var numberPlaceholderColor: UIColor = { + if #available(iOS 13.0, tvOS 13.0, *) { + return .tertiaryLabel + } else { + return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22) + } + }() { + didSet { + self.updatePlaceholder() + } + } + #endif + + private var _withDefaultPickerUI: Bool = false { + didSet { + if flagButton.actions(forTarget: self, forControlEvent: .touchUpInside) == nil { + flagButton.addTarget(self, action: #selector(didPressFlagButton), for: .touchUpInside) + } + } + } + + public var withDefaultPickerUI: Bool { + get { _withDefaultPickerUI } + set { _withDefaultPickerUI = newValue } + } + + private var withDefaultPickerUIOptions: CountryCodePickerOptions = CountryCodePickerOptions() + + public var modalPresentationStyle: UIModalPresentationStyle? + + public var isPartialFormatterEnabled = true + + public var maxDigits: Int? { + didSet { + self.partialFormatter.maxDigits = self.maxDigits + } + } + + public private(set) lazy var partialFormatter: PartialFormatter = PartialFormatter( + phoneNumberKit: phoneNumberKit, + defaultRegion: defaultRegion, + withPrefix: withPrefix, + ignoreIntlNumbers: true + ) + + let nonNumericSet: CharacterSet = { + var mutableSet = CharacterSet.decimalDigits.inverted + mutableSet.remove(charactersIn: PhoneNumberConstants.plusChars) + mutableSet.remove(charactersIn: PhoneNumberConstants.pausesAndWaitsChars) + mutableSet.remove(charactersIn: PhoneNumberConstants.operatorChars) + return mutableSet + }() + + private weak var _delegate: UITextFieldDelegate? + + open override var delegate: UITextFieldDelegate? { + get { + return self._delegate + } + set { + self._delegate = newValue + } + } + + // MARK: Status + + public var currentRegion: String { + return self.partialFormatter.currentRegion + } + + public var nationalNumber: String { + let rawNumber = self.text ?? String() + return self.partialFormatter.nationalNumber(from: rawNumber) + } + + public var isValidNumber: Bool { + let rawNumber = self.text ?? String() + do { + _ = try phoneNumberKit.parse(rawNumber, withRegion: currentRegion) + return true + } catch { + return false + } + } + + /** + Returns the current valid phone number. + - returns: PhoneNumber? + */ + public var phoneNumber: PhoneNumber? { + guard let rawNumber = self.text else { return nil } + do { + return try phoneNumberKit.parse(rawNumber, withRegion: currentRegion) + } catch { + return nil + } + } + + open override func layoutSubviews() { + if self.withFlag { // update the width of the flagButton automatically, iOS <13 doesn't handle this for you + let width = self.flagButton.systemLayoutSizeFitting(bounds.size).width + self.flagButton.frame.size.width = width + } + super.layoutSubviews() + } + + // MARK: - Insets + private var insets: UIEdgeInsets? + private var clearButtonPadding: CGFloat? + + // MARK: Lifecycle + + /** + Init with a phone number kit instance. Because a PhoneNumberKit initialization is expensive, + you can pass a pre-initialized instance to avoid incurring perf penalties. + + - parameter phoneNumberKit: A PhoneNumberKit instance to be used by the text field. + + - returns: UITextfield + */ + public convenience init(withPhoneNumberKit phoneNumberKit: PhoneNumberKit) { + self.init(frame: .zero, phoneNumberKit: phoneNumberKit) + } + + /** + Init with frame and phone number kit instance. + + - parameter frame: UITextfield frame + - parameter phoneNumberKit: A PhoneNumberKit instance to be used by the text field. + + - returns: UITextfield + */ + public init(frame: CGRect, phoneNumberKit: PhoneNumberKit) { + self.phoneNumberKit = phoneNumberKit + super.init(frame: frame) + self.setup() + } + + /** + Init with frame + + - parameter frame: UITextfield F + + - returns: UITextfield + */ + public override init(frame: CGRect) { + self.phoneNumberKit = PhoneNumberKit() + super.init(frame: frame) + self.setup() + } + + + /** + Initialize an instance with specific insets and clear button padding. + + This initializer creates an instance of the class with custom UIEdgeInsets and padding for the clear button. + Both of these parameters are used to customize the appearance of the text field and its clear button within the class. + + - Parameters: + - insets: The UIEdgeInsets to be applied to the text field's bounding rectangle. These insets define the padding + that is applied within the text field's bounding rectangle. A UIEdgeInsets value contains insets for + each of the four directions (top, bottom, left, right). Positive values move the content toward the center of the + text field, and negative values move the content toward the edges of the text field. + - clearButtonPadding: The padding to be applied to the clear button. This value defines the space between the clear + button and the edges of the text field. A positive value increases the distance between the clear button and the + text field's edges, and a negative value decreases this distance. + */ + public init(insets: UIEdgeInsets, clearButtonPadding: CGFloat) { + self.phoneNumberKit = PhoneNumberKit() + self.insets = insets + self.clearButtonPadding = clearButtonPadding + super.init(frame: .zero) + self.setup() + } + + /** + Init with coder + + - parameter aDecoder: decoder + + - returns: UITextfield + */ + public required init(coder aDecoder: NSCoder) { + self.phoneNumberKit = PhoneNumberKit() + super.init(coder: aDecoder)! + self.setup() + } + + func setup() { + self.autocorrectionType = .no + self.keyboardType = .phonePad + super.delegate = self + } + + func internationalPrefix(for countryCode: String) -> String? { + guard let countryCode = phoneNumberKit.countryCode(for: currentRegion)?.description else { return nil } + return "+" + countryCode + } + + open func updateFlag() { + guard self.withFlag else { return } + + if let phoneNumber = phoneNumber, + let regionCode = phoneNumber.regionID, + regionCode != currentRegion, + phoneNumber.countryCode == phoneNumberKit.countryCode(for: currentRegion) { + _defaultRegion = regionCode + partialFormatter.defaultRegion = regionCode + } + + let flagBase = UnicodeScalar("🇦").value - UnicodeScalar("A").value + + let flag = self.currentRegion + .uppercased() + .unicodeScalars + .compactMap { UnicodeScalar(flagBase + $0.value)?.description } + .joined() + + self.flagButton.setTitle(flag + " ", for: .normal) + self.flagButton.accessibilityLabel = NSLocalizedString( + "PhoneNumberKit.CountryCodePickerEntryButton.AccessibilityLabel", + value: "Select your country code", + comment: "Accessibility Label for Country Code Picker button") + + if let countryName = Locale.autoupdatingCurrent.localizedString(forRegionCode: self.currentRegion) { + let selectedFormat = NSLocalizedString( + "PhoneNumberKit.CountryCodePickerEntryButton.AccessibilityHint", + value: "%@ selected", + comment: "Accessiblity hint for currently selected country code") + self.flagButton.accessibilityHint = String(format: selectedFormat, countryName) + } + let fontSize = (font ?? UIFont.preferredFont(forTextStyle: .body)).pointSize + self.flagButton.titleLabel?.font = UIFont.systemFont(ofSize: fontSize) + } + + open func updatePlaceholder() { + guard self.withExamplePlaceholder else { return } + if isEditing, !(self.text ?? "").isEmpty { return } // No need to update a placeholder while the placeholder isn't showing + + let format = self.withPrefix ? PhoneNumberFormat.international : .national + let example = self.phoneNumberKit.getFormattedExampleNumber(forCountry: self.currentRegion, withFormat: format, withPrefix: self.withPrefix) ?? "12345678" + let font = self.font ?? UIFont.preferredFont(forTextStyle: .body) + let ph = NSMutableAttributedString(string: example, attributes: [.font: font]) + + #if compiler(>=5.1) + if #available(iOS 13.0, *), self.withPrefix { + // because the textfield will automatically handle insert & removal of the international prefix we make the + // prefix darker to indicate non default behaviour to users, this behaviour currently only happens on iOS 13 + // and above just because that is where we have access to label colors + let firstSpaceIndex = example.firstIndex(where: { $0 == " " }) ?? example.startIndex + + ph.addAttribute(.foregroundColor, value: self.countryCodePlaceholderColor, range: NSRange(.. CursorPosition? { + var repetitionCountFromEnd = 0 + // Check that there is text in the UITextField + guard let text = text, let selectedTextRange = selectedTextRange else { + return nil + } + let textAsNSString = text as NSString + let cursorEnd = offset(from: beginningOfDocument, to: selectedTextRange.end) + // Look for the next valid number after the cursor, when found return a CursorPosition struct + for i in cursorEnd.. NSRange? { + let textAsNSString = formattedText as NSString + var countFromEnd = 0 + guard let cursorPosition = extractCursorPosition() else { + return nil + } + + for i in stride(from: textAsNSString.length - 1, through: 0, by: -1) { + let candidateRange = NSRange(location: i, length: 1) + let candidateCharacter = textAsNSString.substring(with: candidateRange) + if candidateCharacter == cursorPosition.numberAfterCursor { + countFromEnd += 1 + if countFromEnd == cursorPosition.repetitionCountFromEnd { + return candidateRange + } + } + } + + return nil + } + + open func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + guard let text = text else { + return false + } + + // allow delegate to intervene + guard self._delegate?.textField?(textField, shouldChangeCharactersIn: range, replacementString: string) ?? true else { + return false + } + guard self.isPartialFormatterEnabled else { + return true + } + + // This allows for the case when a user autocompletes a phone number: + if range == NSRange(location: 0, length: 0) && string.isBlank { + return true + } + + let textAsNSString = text as NSString + let changedRange = textAsNSString.substring(with: range) as NSString + let modifiedTextField = textAsNSString.replacingCharacters(in: range, with: string) + + let filteredCharacters = modifiedTextField.filter { + String($0).rangeOfCharacter(from: (textField as! PhoneNumberTextField).nonNumericSet) == nil + } + let rawNumberString = String(filteredCharacters) + + let formattedNationalNumber = self.partialFormatter.formatPartial(rawNumberString as String) + var selectedTextRange: NSRange? + + let nonNumericRange = (changedRange.rangeOfCharacter(from: self.nonNumericSet).location != NSNotFound) + if range.length == 1, string.isEmpty, nonNumericRange { + selectedTextRange = self.selectionRangeForNumberReplacement(textField: textField, formattedText: modifiedTextField) + textField.text = modifiedTextField + } else { + selectedTextRange = self.selectionRangeForNumberReplacement(textField: textField, formattedText: formattedNationalNumber) + textField.text = formattedNationalNumber + } + sendActions(for: .editingChanged) + if let selectedTextRange = selectedTextRange, let selectionRangePosition = textField.position(from: beginningOfDocument, offset: selectedTextRange.location) { + let selectionRange = textField.textRange(from: selectionRangePosition, to: selectionRangePosition) + textField.selectedTextRange = selectionRange + } + + // we change the default region to be the one most recently typed + // but only when the withFlag is true as to not confuse the user who don't see the flag + if withFlag == true + { + self._defaultRegion = self.currentRegion + self.partialFormatter.defaultRegion = self.currentRegion + self.updateFlag() + self.updatePlaceholder() + } + + return false + } + + // MARK: UITextfield Delegate + + open func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { + return self._delegate?.textFieldShouldBeginEditing?(textField) ?? true + } + + open func textFieldDidBeginEditing(_ textField: UITextField) { + if self.withExamplePlaceholder, self.withPrefix, let countryCode = phoneNumberKit.countryCode(for: currentRegion)?.description, (text ?? "").isEmpty { + text = "+" + countryCode + " " + } + self._delegate?.textFieldDidBeginEditing?(textField) + } + + open func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { + return self._delegate?.textFieldShouldEndEditing?(textField) ?? true + } + + open func textFieldDidEndEditing(_ textField: UITextField) { + updateTextFieldDidEndEditing(textField) + self._delegate?.textFieldDidEndEditing?(textField) + } + + open func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) { + updateTextFieldDidEndEditing(textField) + if let _delegate = _delegate { + if (_delegate.responds(to: #selector(textFieldDidEndEditing(_:reason:)))) { + _delegate.textFieldDidEndEditing?(textField, reason: reason) + } else { + _delegate.textFieldDidEndEditing?(textField) + } + } + } + + open func textFieldShouldClear(_ textField: UITextField) -> Bool { + return self._delegate?.textFieldShouldClear?(textField) ?? true + } + + open func textFieldShouldReturn(_ textField: UITextField) -> Bool { + return self._delegate?.textFieldShouldReturn?(textField) ?? true + } + + @available(iOS 13.0, tvOS 13.0, *) + open func textFieldDidChangeSelection(_ textField: UITextField) { + self._delegate?.textFieldDidChangeSelection?(textField) + } + + private func updateTextFieldDidEndEditing(_ textField: UITextField) { + if self.withExamplePlaceholder, self.withPrefix, let countryCode = phoneNumberKit.countryCode(for: currentRegion)?.description, + let text = textField.text, + text == internationalPrefix(for: countryCode) { + textField.text = "" + sendActions(for: .editingChanged) + self.updateFlag() + self.updatePlaceholder() + } + } +} + +extension PhoneNumberTextField: CountryCodePickerDelegate { + + public func countryCodePickerViewControllerDidPickCountry(_ country: CountryCodePickerViewController.Country) { + text = isEditing ? "+" + country.prefix : "" + _defaultRegion = country.code + partialFormatter.defaultRegion = country.code + updateFlag() + updatePlaceholder() + + if let nav = containingViewController?.navigationController, !PhoneNumberKit.CountryCodePicker.forceModalPresentation { + nav.popViewController(animated: true) + } else { + containingViewController?.dismiss(animated: true) + } + } +} + +// MARK: - Insets + +extension PhoneNumberTextField { + + open override func textRect(forBounds bounds: CGRect) -> CGRect { + if let insets = self.insets { + return super.textRect(forBounds: bounds.inset(by: insets)) + } else { + return super.textRect(forBounds: bounds) + } + } + + open override func editingRect(forBounds bounds: CGRect) -> CGRect { + if let insets = self.insets { + return super.editingRect(forBounds: bounds + .inset(by: insets)) + } else { + return super.editingRect(forBounds: bounds) + } + } + + open override func clearButtonRect(forBounds bounds: CGRect) -> CGRect { + if let insets = self.insets, + let clearButtonPadding = self.clearButtonPadding { + return super.clearButtonRect(forBounds: bounds.insetBy(dx: insets.left - clearButtonPadding, dy: 0)) + } else { + return super.clearButtonRect(forBounds: bounds) + } + } +} + + +extension String { + var isBlank: Bool { + return allSatisfy({ $0.isWhitespace }) + } +} + +#endif diff --git a/iosApp/Pods/PhoneNumberKit/README.md b/iosApp/Pods/PhoneNumberKit/README.md new file mode 100644 index 0000000..cbc480b --- /dev/null +++ b/iosApp/Pods/PhoneNumberKit/README.md @@ -0,0 +1,192 @@ +![PhoneNumberKit](https://cloud.githubusercontent.com/assets/889949/20864386/a1307950-b9ef-11e6-8a58-e9c5103738e7.png) +[![Platform](https://img.shields.io/cocoapods/p/PhoneNumberKit.svg?maxAge=2592000&style=for-the-badge)](http://cocoapods.org/?q=PhoneNumberKit) +![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/marmelroy/PhoneNumberKit/pr.yml?branch=master&label=tests&style=for-the-badge) [![Version](http://img.shields.io/cocoapods/v/PhoneNumberKit.svg?style=for-the-badge)](http://cocoapods.org/?q=PhoneNumberKit) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=for-the-badge)](https://github.com/Carthage/Carthage) + +# PhoneNumberKit + +Swift 5.3 framework for parsing, formatting and validating international phone numbers. +Inspired by Google's libphonenumber. + +## Features + +| | Features | +| ---------------- | ------------------------------------------------------------------------------------------- | +| :phone: | Validate, normalize and extract the elements of any phone number string. | +| :100: | Simple Swift syntax and a lightweight readable codebase. | +| :checkered_flag: | Fast. 1000 parses -> ~0.4 seconds. | +| :books: | Best-in-class metadata from Google's libPhoneNumber project. | +| :trophy: | Fully tested to match the accuracy of Google's JavaScript implementation of libPhoneNumber. | +| :iphone: | Built for iOS. Automatically grabs the default region code from the phone. | +| 📝 | Editable (!) AsYouType formatter for UITextField. | +| :us: | Convert country codes to country names and vice versa | + +## Usage + +Import PhoneNumberKit at the top of the Swift file that will interact with a phone number. + +```swift +import PhoneNumberKit +``` + +All of your interactions with PhoneNumberKit happen through a PhoneNumberKit object. The first step you should take is to allocate one. + +A PhoneNumberKit instance is relatively expensive to allocate (it parses the metadata and keeps it in memory for the object's lifecycle), you should try and make sure PhoneNumberKit is allocated once and deallocated when no longer needed. + +```swift +let phoneNumberKit = PhoneNumberKit() +``` + +To parse a string, use the parse function. The region code is automatically computed but can be overridden if needed. PhoneNumberKit automatically does a hard type validation to ensure that the object created is valid, this can be quite costly performance-wise and can be turned off if needed. + +```swift +do { + let phoneNumber = try phoneNumberKit.parse("+33 6 89 017383") + let phoneNumberCustomDefaultRegion = try phoneNumberKit.parse("+44 20 7031 3000", withRegion: "GB", ignoreType: true) +} +catch { + print("Generic parser error") +} +``` + +If you need to parse and validate a large amount of numbers at once, PhoneNumberKit has a special, lightning fast array parsing function. The default region code is automatically computed but can be overridden if needed. Here you can also ignore hard type validation if it is not necessary. Invalid numbers are ignored in the resulting array. + +```swift +let rawNumberArray = ["0291 12345678", "+49 291 12345678", "04134 1234", "09123 12345"] +let phoneNumbers = phoneNumberKit.parse(rawNumberArray) +let phoneNumbersCustomDefaultRegion = phoneNumberKit.parse(rawNumberArray, withRegion: "DE", ignoreType: true) +``` + +PhoneNumber objects are immutable Swift structs with the following properties: + +```swift +phoneNumber.numberString +phoneNumber.countryCode +phoneNumber.nationalNumber +phoneNumber.numberExtension +phoneNumber.type // e.g Mobile or Fixed +``` + +Formatting a PhoneNumber object into a string is also very easy + +```swift +phoneNumberKit.format(phoneNumber, toType: .e164) // +61236618300 +phoneNumberKit.format(phoneNumber, toType: .international) // +61 2 3661 8300 +phoneNumberKit.format(phoneNumber, toType: .national) // (02) 3661 8300 +``` + +## PhoneNumberTextField + +![AsYouTypeFormatter](https://user-images.githubusercontent.com/7651280/67554038-e6512500-f751-11e9-93c9-9111e899a2ef.gif) + +To use the AsYouTypeFormatter, just replace your UITextField with a PhoneNumberTextField (if you are using Interface Builder make sure the module field is set to PhoneNumberKit). + +You can customize your TextField UI in the following ways + +- `withFlag` will display the country code for the `currentRegion`. The `flagButton` is displayed in the `leftView` of the text field with it's size set based off your text size. +- `withExamplePlaceholder` uses `attributedPlaceholder` to show an example number for the `currentRegion`. In addition when `withPrefix` is set, the country code's prefix will automatically be inserted and removed when editing changes. + +PhoneNumberTextField automatically formats phone numbers and gives the user full editing capabilities. If you want to customize you can use the PartialFormatter directly. The default region code is automatically computed but can be overridden if needed (see the example given below). + +```swift +class MyGBTextField: PhoneNumberTextField { + override var defaultRegion: String { + get { + return "GB" + } + set {} // exists for backward compatibility + } +} +``` + +```swift +let textField = PhoneNumberTextField() + +PartialFormatter().formatPartial("+336895555") // +33 6 89 55 55 +``` + +You can also query countries for a dialing code or the dialing code for a given country + +```swift +phoneNumberKit.countries(withCode: 33) +phoneNumberKit.countryCode(for: "FR") +``` + +## Customize Country Picker + +You can customize colors and fonts on the Country Picker View Controller by overriding the property "withDefaultPickerUIOptions" + +```swift +let options = CountryCodePickerOptions( + backgroundColor: UIColor.systemGroupedBackground + separatorColor: UIColor.opaqueSeparator + textLabelColor: UIColor.label + textLabelFont: .preferredFont(forTextStyle: .callout) + detailTextLabelColor: UIColor.secondaryLabel + detailTextLabelFont: .preferredFont(forTextStyle: .body) + tintColor: UIView().tintColor + cellBackgroundColor: UIColor.secondarySystemGroupedBackground + cellBackgroundColorSelection: UIColor.tertiarySystemGroupedBackground +) +textField.withDefaultPickerUIOptions = options +``` + +Or you can change it directly: + +```swift +textField.withDefaultPickerUIOptions.backgroundColor = .red +``` + +Please refer to `CountryCodePickerOptions` for more information about usage and how it affects the view. + + +## Need more customization? + +You can access the metadata powering PhoneNumberKit yourself, this enables you to program any behaviours as they may be implemented in PhoneNumberKit itself. It does mean you are exposed to the less polished interface of the underlying file format. If you program something you find useful please push it upstream! + +```swift +phoneNumberKit.metadata(for: "AU")?.mobile?.exampleNumber // 412345678 +``` + +### [Preferred] Setting up with [Swift Package Manager](https://swiftpm.co/?query=PhoneNumberKit) + +The [Swift Package Manager](https://swift.org/package-manager/) is now the preferred tool for distributing PhoneNumberKit. + +From Xcode 11+ : + +1. Select File > Swift Packages > Add Package Dependency. Enter `https://github.com/marmelroy/PhoneNumberKit.git` in the "Choose Package Repository" dialog. +2. In the next page, specify the version resolving rule as "Up to Next Major" from "3.6.0". +3. After Xcode checked out the source and resolving the version, you can choose the "PhoneNumberKit" library and add it to your app target. + +For more info, read [Adding Package Dependencies to Your App](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app) from Apple. + +Alternatively, you can also add PhoneNumberKit to your `Package.swift` file: + +```swift +dependencies: [ + .package(url: "https://github.com/marmelroy/PhoneNumberKit", from: "3.6.0") +] +``` + +### Setting up with Carthage + +[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application. + +You can install Carthage with [Homebrew](http://brew.sh/) using the following command: + +```bash +$ brew update +$ brew install carthage +``` + +To integrate PhoneNumberKit into your Xcode project using Carthage, specify it in your `Cartfile`: + +```ogdl +github "marmelroy/PhoneNumberKit" +``` + +### Setting up with [CocoaPods](http://cocoapods.org/?q=PhoneNumberKit) + +```ruby +pod 'PhoneNumberKit', '~> 3.6' +``` diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..fae7b49 --- /dev/null +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1153 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 6FECE8E15F2F56BC8351B04D0BAE14BE /* Build configuration list for PBXAggregateTarget "multiplatformContact" */; + buildPhases = ( + 802B5C7A4CC266816EE3E78E781CBAF5 /* [CP-User] Build multiplatformContact */, + ); + dependencies = ( + 5019C052F98099A002C27025B1539EF4 /* PBXTargetDependency */, + AF144B775869EE38833972A8515C6060 /* PBXTargetDependency */, + ); + name = multiplatformContact; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 0070C9E39945EEBBCCB0E36ADECAC178 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 233227AB7DA52B013DC3F3A203E8D145 /* CoreTelephony.framework */; }; + 026EA818C68A627003C903E7F1FF4CEF /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 160F82A95B791A239DCFCC8FD46C695F /* PhoneNumberKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */; }; + 179B28D7FCB1AB9D66745DFCB3532735 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 18EDA100A8B6D2B8A8F82163B22147A3 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1D945C7298F6BE2D436596A69DA24683 /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 226166AB6B6F04F320BCEC1DAC63F194 /* PhoneNumber+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */; }; + 2996CF6097474129697EA169F7E959A3 /* NSRegularExpression+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */; }; + 2ABB7426BC74B9F758051F8B439FC3E1 /* PhoneNumberKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D440B97BDD1F2611C20AE2731C06A2A /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E9D2BB90BDFF169E281010E3E91AE20 /* CountryCodePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */; }; + 2ECCE75AEBA313807A138E6C43065ABA /* libPhoneNumber-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */; }; + 3ED8A6D87C5380FA48AABC8FF9834D3C /* MetadataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */; }; + 41DDC5A39614E48F9B6C5E6F0B9A27D1 /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 424D37EB62448AFFCF0E8C5E02FBE373 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */; }; + 43BFC4953D464638AEDDAFEDDD4CA0F4 /* PartialFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */; }; + 4818E52307D7786C9524B75D09C27559 /* PhoneNumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */; }; + 4B5BA42BADE1C7771B4F5F92FF322501 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */; }; + 537C6367CCE8F9D940A306A2759F424E /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 54C730E263DAAEA3186E18F4497C9258 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D07275E20612FC24E1F97519614FAE7 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */; }; + 5DC9474CE9A996AD0D53E23CFA904024 /* ParseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */; }; + 5E631C90E2B9CE410C6E78177DEC701D /* NSArray+NBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 60CC77F923ED2BFB9891D7B840693506 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 61B75CAFD8883D630F49EB35839ED77A /* MetadataParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */; }; + 66F0A543EEE190E036D37A14ED5BCBD7 /* libPhoneNumber-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 69AF69FF54EC0BE69AD5FE15255F1358 /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */; }; + 69EC68431ADC6245680CE73205FB8754 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 70CC6B8F16D42D4C0816716A24993E1A /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 74ADBC091F561112A6E0540607AECFAB /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 782AF8E1A290480A81FD3569C1BA2209 /* PhoneNumberMetadata.json in Resources */ = {isa = PBXBuildFile; fileRef = 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */; }; + 85FC88D86D60C2271D7A25B3ECE5DB1A /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */; }; + 8ECC79DEB91B9A5F6381C34680DBD110 /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8FE868B295618263DFE4F79A041269EB /* MetadataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */; }; + 9046023D4739C2E73D0452445B291990 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */; }; + 9718A978E7E81A2255A9606FAF119BB4 /* PhoneNumberParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */; }; + A12602CE450E3C4B93528978600FEF4B /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAE95AF843222C3EB1558B8C654E33D5 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B5482EF9AE99708FFC24EDE8D813C48C /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B61133B93278F3F4B026B6051722104D /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE15246C6073C8671DDC8CA0A4DF54EE /* NSArray+NBAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF35C4949EDED02FE4417F730F0A3EB5 /* Bundle+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */; }; + C0EEC392F48B0B583C049D480321170B /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C48477B7F144D31A7E84026C9414EBF8 /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDEE519871A73F73C44B93C7EA3AF23A /* PhoneNumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */; }; + D18C6AE9D409041CC280BE82D75AB3D2 /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D7179C98C7E1401F5665719E8DE54109 /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCE55AB7EF9057AFFB138E778402B20D /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EB9F1658DB85E9D0BC9F3A354C4C9C0F /* PhoneNumberKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */; }; + F26E2E1F79D8FF277F41FB1DA7610EA2 /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F67DBD66A0C8A4C06AFD18187F257305 /* CountryCodePickerOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */; }; + F81B3566F42FA2A768E4692CC083833D /* RegexManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */; }; + FBD50BFB36CA62EA92A04F5139DF82F0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */; }; + FE9B14F28FCED85A8C45E63459339B7B /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 48B0FF678CA9C14E135894A5DAAFF7BC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BECD36891A8DC297700F9296F5634B97; + remoteInfo = "libPhoneNumber-iOS"; + }; + 6EEE6A127C0719B51BE52F2326A022D4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C942A9CCE5CF382E8053D9757DA6249D; + remoteInfo = PhoneNumberKit; + }; + 847146FDF4A97260A591028D5287C346 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BECD36891A8DC297700F9296F5634B97; + remoteInfo = "libPhoneNumber-iOS"; + }; + 8538D95FA1ADF8A0509965E8BCDBC78D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 18A7947D7AA498985D397D562F5C4DC0; + remoteInfo = multiplatformContact; + }; + F19CEBEB71195F286CC5ACD661BAE11C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C942A9CCE5CF382E8053D9757DA6249D; + remoteInfo = PhoneNumberKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bundle+Resources.swift"; path = "PhoneNumberKit/Bundle+Resources.swift"; sourceTree = ""; }; + 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; + 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParseManager.swift; path = PhoneNumberKit/ParseManager.swift; sourceTree = ""; }; + 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataHelper.h; path = libPhoneNumber/NBMetadataHelper.h; sourceTree = ""; }; + 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CountryCodePickerViewController.swift; path = PhoneNumberKit/UI/CountryCodePickerViewController.swift; sourceTree = ""; }; + 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneMetaData.m; path = libPhoneNumber/NBPhoneMetaData.m; sourceTree = ""; }; + 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libPhoneNumber-iOS-umbrella.h"; sourceTree = ""; }; + 11C9B998CE0869936AE6BE69270DAAC9 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; + 132F3796C1388068910A610051BB5BFB /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; + 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataManager.swift; path = PhoneNumberKit/MetadataManager.swift; sourceTree = ""; }; + 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 1EA8EEBF967AA2975BC661B17CD80AE9 /* PhoneNumberKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "PhoneNumberKit-Info.plist"; sourceTree = ""; }; + 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumberDesc.m; path = libPhoneNumber/NBPhoneNumberDesc.m; sourceTree = ""; }; + 233227AB7DA52B013DC3F3A203E8D145 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CoreTelephony.framework; sourceTree = DEVELOPER_DIR; }; + 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */ = {isa = PBXFileReference; includeInIndex = 1; name = PhoneNumberMetadata.json; path = PhoneNumberKit/Resources/PhoneNumberMetadata.json; sourceTree = ""; }; + 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumber.m; path = libPhoneNumber/NBPhoneNumber.m; sourceTree = ""; }; + 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberDesc.h; path = libPhoneNumber/NBPhoneNumberDesc.h; sourceTree = ""; }; + 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Formatter.swift; path = PhoneNumberKit/Formatter.swift; sourceTree = ""; }; + 32266BD8D0BA129F1CC2369453917D60 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; + 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PhoneNumberKit.release.xcconfig; sourceTree = ""; }; + 3EA6878D6455FFE85E3E796E0621A07E /* libPhoneNumber-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "libPhoneNumber-iOS.modulemap"; sourceTree = ""; }; + 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+NBAdditions.m"; path = "libPhoneNumber/NSArray+NBAdditions.m"; sourceTree = ""; }; + 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "libPhoneNumber-iOS"; path = libPhoneNumber_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberKit.swift; path = PhoneNumberKit/PhoneNumberKit.swift; sourceTree = ""; }; + 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreMapper.h; path = libPhoneNumber/NBMetadataCoreMapper.h; sourceTree = ""; }; + 521C69F7CC2BA71CA4791867DA4FB583 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; + 55ABB06C8A1800962A74E007E7733796 /* Pods-iosApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-frameworks.sh"; sourceTree = ""; }; + 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+NBAdditions.h"; path = "libPhoneNumber/NSArray+NBAdditions.h"; sourceTree = ""; }; + 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneMetaData.h; path = libPhoneNumber/NBPhoneMetaData.h; sourceTree = ""; }; + 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreTestMapper.h; path = libPhoneNumber/NBMetadataCoreTestMapper.h; sourceTree = ""; }; + 69681285C13FB58876DD5727BCB2DC85 /* PhoneNumberKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PhoneNumberKit; path = PhoneNumberKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberFormatter.swift; path = PhoneNumberKit/PhoneNumberFormatter.swift; sourceTree = ""; }; + 6F3B5FED07117E377CFAC3D49B490F17 /* Pods-iosApp-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-resources.sh"; sourceTree = ""; }; + 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataParsing.swift; path = PhoneNumberKit/MetadataParsing.swift; sourceTree = ""; }; + 76A263267985B0185D85E24D40FCEE9A /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; + 76D28488EA8CF5C697DFF07967A9960E /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; + 7AA79DB2BD4B79492887C3899C9A82DB /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/ios/shared/compose-resources"; sourceTree = ""; }; + 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberUtil.h; path = libPhoneNumber/NBPhoneNumberUtil.h; sourceTree = ""; }; + 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "libPhoneNumber-iOS.debug.xcconfig"; sourceTree = ""; }; + 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBNumberFormat.m; path = libPhoneNumber/NBNumberFormat.m; sourceTree = ""; }; + 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PhoneNumberKit-umbrella.h"; sourceTree = ""; }; + 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "libPhoneNumber-iOS.release.xcconfig"; sourceTree = ""; }; + 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberParser.swift; path = PhoneNumberKit/PhoneNumberParser.swift; sourceTree = ""; }; + 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumber.swift; path = PhoneNumberKit/PhoneNumber.swift; sourceTree = ""; }; + 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PhoneNumberKit.debug.xcconfig; sourceTree = ""; }; + 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "libPhoneNumber-iOS-dummy.m"; sourceTree = ""; }; + 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCore.m; path = libPhoneNumber/NBMetadataCore.m; sourceTree = ""; }; + 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreTest.m; path = libPhoneNumber/NBMetadataCoreTest.m; sourceTree = ""; }; + 9D43D53CBE6073F141D6A18DF828881B /* PhoneNumberKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PhoneNumberKit-prefix.pch"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9EE28FAC4A40F75EA163AEF99E5B3B3B /* PhoneNumberKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PhoneNumberKit.modulemap; sourceTree = ""; }; + A75EAC5A02AC977F838EBE9EA90916A6 /* libPhoneNumber-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libPhoneNumber-iOS-prefix.pch"; sourceTree = ""; }; + B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreTest.h; path = libPhoneNumber/NBMetadataCoreTest.h; sourceTree = ""; }; + B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumber.h; path = libPhoneNumber/NBPhoneNumber.h; sourceTree = ""; }; + B097DD7534E741D5C41838011D755842 /* Pods-iosApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-iosApp"; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B16E16217E19536CD371A6E6D907FB85 /* libPhoneNumber-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "libPhoneNumber-iOS-Info.plist"; sourceTree = ""; }; + B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCore.h; path = libPhoneNumber/NBMetadataCore.h; sourceTree = ""; }; + B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataHelper.m; path = libPhoneNumber/NBMetadataHelper.m; sourceTree = ""; }; + BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PhoneNumber+Codable.swift"; path = "PhoneNumberKit/PhoneNumber+Codable.swift"; sourceTree = ""; }; + BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CountryCodePickerOptions.swift; path = PhoneNumberKit/UI/CountryCodePickerOptions.swift; sourceTree = ""; }; + BE203D64CF825C9DE24236F0EABC8B15 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBNumberFormat.h; path = libPhoneNumber/NBNumberFormat.h; sourceTree = ""; }; + CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberDefines.h; path = libPhoneNumber/NBPhoneNumberDefines.h; sourceTree = ""; }; + CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PartialFormatter.swift; path = PhoneNumberKit/PartialFormatter.swift; sourceTree = ""; }; + CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberTextField.swift; path = PhoneNumberKit/UI/PhoneNumberTextField.swift; sourceTree = ""; }; + D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RegexManager.swift; path = PhoneNumberKit/RegexManager.swift; sourceTree = ""; }; + D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreTestMapper.m; path = libPhoneNumber/NBMetadataCoreTestMapper.m; sourceTree = ""; }; + DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBAsYouTypeFormatter.m; path = libPhoneNumber/NBAsYouTypeFormatter.m; sourceTree = ""; }; + DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = PhoneNumberKit/Constants.swift; sourceTree = ""; }; + DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreMapper.m; path = libPhoneNumber/NBMetadataCoreMapper.m; sourceTree = ""; }; + DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSRegularExpression+Swift.swift"; path = "PhoneNumberKit/NSRegularExpression+Swift.swift"; sourceTree = ""; }; + E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataTypes.swift; path = PhoneNumberKit/MetadataTypes.swift; sourceTree = ""; }; + E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + E4C923318724794E3CC670804C2D6A6B /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; + E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; + E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBAsYouTypeFormatter.h; path = libPhoneNumber/NBAsYouTypeFormatter.h; sourceTree = ""; }; + F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumberUtil.m; path = libPhoneNumber/NBPhoneNumberUtil.m; sourceTree = ""; }; + F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PhoneNumberKit-dummy.m"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 37B5BF7BC5DC29DAE5C248C5E5313EB0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0070C9E39945EEBBCCB0E36ADECAC178 /* CoreTelephony.framework in Frameworks */, + 9046023D4739C2E73D0452445B291990 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 582C3F96766BFC7D1A2DC2A02EAD5E53 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 424D37EB62448AFFCF0E8C5E02FBE373 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D81FEA5424135BC4E979DD3516B90E35 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FBD50BFB36CA62EA92A04F5139DF82F0 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0AA96B19D9D465600931113455D0AEA8 /* Pod */ = { + isa = PBXGroup; + children = ( + BE203D64CF825C9DE24236F0EABC8B15 /* multiplatformContact.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9A948D16075C872653952B4F51BB4414 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 1F4B73C2A100975B61C90B2A65E5C5AE /* Support Files */ = { + isa = PBXGroup; + children = ( + 9EE28FAC4A40F75EA163AEF99E5B3B3B /* PhoneNumberKit.modulemap */, + F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */, + 1EA8EEBF967AA2975BC661B17CD80AE9 /* PhoneNumberKit-Info.plist */, + 9D43D53CBE6073F141D6A18DF828881B /* PhoneNumberKit-prefix.pch */, + 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */, + 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */, + 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/PhoneNumberKit"; + sourceTree = ""; + }; + 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */ = { + isa = PBXGroup; + children = ( + 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */, + 69681285C13FB58876DD5727BCB2DC85 /* PhoneNumberKit */, + B097DD7534E741D5C41838011D755842 /* Pods-iosApp */, + ); + name = Products; + sourceTree = ""; + }; + 419D3E61306504E0C4A663417E50618D /* libPhoneNumber-iOS */ = { + isa = PBXGroup; + children = ( + E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */, + DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */, + B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */, + 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */, + 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */, + DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */, + B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */, + 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */, + 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */, + D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */, + 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */, + B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */, + C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */, + 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */, + 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */, + 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */, + B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */, + 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */, + CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */, + 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */, + 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */, + 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */, + F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */, + 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */, + 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */, + AB6845ADF631C70FB5112533FF95F660 /* Support Files */, + ); + name = "libPhoneNumber-iOS"; + path = "libPhoneNumber-iOS"; + sourceTree = ""; + }; + 4BDEE3376B110E6BDCBDA4A99686FCF9 /* Pods */ = { + isa = PBXGroup; + children = ( + 419D3E61306504E0C4A663417E50618D /* libPhoneNumber-iOS */, + 81EF83EA4D847AACCFA9B95070570D4F /* PhoneNumberKit */, + ); + name = Pods; + sourceTree = ""; + }; + 53A4968774E7B4ABAE986CE90D656140 /* Development Pods */ = { + isa = PBXGroup; + children = ( + EC52A4258BCEAF68FD4662F544E0C74F /* multiplatformContact */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 59EDFFF4C0884817AEC471629804D764 /* Support Files */ = { + isa = PBXGroup; + children = ( + 521C69F7CC2BA71CA4791867DA4FB583 /* multiplatformContact.debug.xcconfig */, + 132F3796C1388068910A610051BB5BFB /* multiplatformContact.release.xcconfig */, + ); + name = "Support Files"; + path = "../iosApp/Pods/Target Support Files/multiplatformContact"; + sourceTree = ""; + }; + 7F9A9F4DDD86D27105B102F7071748B5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 32266BD8D0BA129F1CC2369453917D60 /* shared.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 81EF83EA4D847AACCFA9B95070570D4F /* PhoneNumberKit */ = { + isa = PBXGroup; + children = ( + ED9462BD9C90B6DAAAFF089618AC8830 /* PhoneNumberKitCore */, + 1F4B73C2A100975B61C90B2A65E5C5AE /* Support Files */, + 88E8FC36893243F9D73454A992A18AA8 /* UIKit */, + ); + name = PhoneNumberKit; + path = PhoneNumberKit; + sourceTree = ""; + }; + 88E8FC36893243F9D73454A992A18AA8 /* UIKit */ = { + isa = PBXGroup; + children = ( + BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */, + 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */, + CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */, + ); + name = UIKit; + sourceTree = ""; + }; + 8C95AC170F5EDEB9F2FBBD095D21CCF5 /* Resources */ = { + isa = PBXGroup; + children = ( + 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */, + ); + name = Resources; + sourceTree = ""; + }; + 9A948D16075C872653952B4F51BB4414 /* iOS */ = { + isa = PBXGroup; + children = ( + 233227AB7DA52B013DC3F3A203E8D145 /* CoreTelephony.framework */, + 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + AB6845ADF631C70FB5112533FF95F660 /* Support Files */ = { + isa = PBXGroup; + children = ( + 3EA6878D6455FFE85E3E796E0621A07E /* libPhoneNumber-iOS.modulemap */, + 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */, + B16E16217E19536CD371A6E6D907FB85 /* libPhoneNumber-iOS-Info.plist */, + A75EAC5A02AC977F838EBE9EA90916A6 /* libPhoneNumber-iOS-prefix.pch */, + 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */, + 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */, + 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/libPhoneNumber-iOS"; + sourceTree = ""; + }; + BA6B7BC2729F657E9D3682E55CA6E980 /* Pods-iosApp */ = { + isa = PBXGroup; + children = ( + 11C9B998CE0869936AE6BE69270DAAC9 /* Pods-iosApp.modulemap */, + E4C923318724794E3CC670804C2D6A6B /* Pods-iosApp-acknowledgements.markdown */, + 76D28488EA8CF5C697DFF07967A9960E /* Pods-iosApp-acknowledgements.plist */, + E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */, + 55ABB06C8A1800962A74E007E7733796 /* Pods-iosApp-frameworks.sh */, + 76A263267985B0185D85E24D40FCEE9A /* Pods-iosApp-Info.plist */, + 6F3B5FED07117E377CFAC3D49B490F17 /* Pods-iosApp-resources.sh */, + 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */, + E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */, + 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */, + ); + name = "Pods-iosApp"; + path = "Target Support Files/Pods-iosApp"; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 53A4968774E7B4ABAE986CE90D656140 /* Development Pods */, + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, + 4BDEE3376B110E6BDCBDA4A99686FCF9 /* Pods */, + 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */, + D456857FB6E5BC3266BEC21401D60DB5 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D456857FB6E5BC3266BEC21401D60DB5 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + BA6B7BC2729F657E9D3682E55CA6E980 /* Pods-iosApp */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + EC52A4258BCEAF68FD4662F544E0C74F /* multiplatformContact */ = { + isa = PBXGroup; + children = ( + 7AA79DB2BD4B79492887C3899C9A82DB /* compose-resources */, + 7F9A9F4DDD86D27105B102F7071748B5 /* Frameworks */, + 0AA96B19D9D465600931113455D0AEA8 /* Pod */, + 59EDFFF4C0884817AEC471629804D764 /* Support Files */, + ); + name = multiplatformContact; + path = /Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact; + sourceTree = ""; + }; + ED9462BD9C90B6DAAAFF089618AC8830 /* PhoneNumberKitCore */ = { + isa = PBXGroup; + children = ( + 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */, + DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */, + 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */, + 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */, + 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */, + E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */, + DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */, + 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */, + CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */, + 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */, + BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */, + 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */, + 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */, + 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */, + D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */, + 8C95AC170F5EDEB9F2FBBD095D21CCF5 /* Resources */, + ); + name = PhoneNumberKitCore; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 520E1B9CD43D77C44A8C4036EF7CD45E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 66F0A543EEE190E036D37A14ED5BCBD7 /* libPhoneNumber-iOS-umbrella.h in Headers */, + DCE55AB7EF9057AFFB138E778402B20D /* NBAsYouTypeFormatter.h in Headers */, + A12602CE450E3C4B93528978600FEF4B /* NBMetadataCore.h in Headers */, + 41DDC5A39614E48F9B6C5E6F0B9A27D1 /* NBMetadataCoreMapper.h in Headers */, + C48477B7F144D31A7E84026C9414EBF8 /* NBMetadataCoreTest.h in Headers */, + 1D945C7298F6BE2D436596A69DA24683 /* NBMetadataCoreTestMapper.h in Headers */, + D18C6AE9D409041CC280BE82D75AB3D2 /* NBMetadataHelper.h in Headers */, + F26E2E1F79D8FF277F41FB1DA7610EA2 /* NBNumberFormat.h in Headers */, + 2D440B97BDD1F2611C20AE2731C06A2A /* NBPhoneMetaData.h in Headers */, + D7179C98C7E1401F5665719E8DE54109 /* NBPhoneNumber.h in Headers */, + 54C730E263DAAEA3186E18F4497C9258 /* NBPhoneNumberDefines.h in Headers */, + C0EEC392F48B0B583C049D480321170B /* NBPhoneNumberDesc.h in Headers */, + B61133B93278F3F4B026B6051722104D /* NBPhoneNumberUtil.h in Headers */, + BE15246C6073C8671DDC8CA0A4DF54EE /* NSArray+NBAdditions.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 830F533F24CF1764C73DAEB0836FA324 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2ABB7426BC74B9F758051F8B439FC3E1 /* PhoneNumberKit-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 912F5FF9B5C321B88B7973703680489E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B5482EF9AE99708FFC24EDE8D813C48C /* Pods-iosApp-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = ED66E92C65497A91B001AD27B143E5B3 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */; + buildPhases = ( + 520E1B9CD43D77C44A8C4036EF7CD45E /* Headers */, + 25F4B5E03B490D613D643C924B13904C /* Sources */, + 37B5BF7BC5DC29DAE5C248C5E5313EB0 /* Frameworks */, + B7279466C0AADBD5EAE530C1BC106640 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "libPhoneNumber-iOS"; + productName = libPhoneNumber_iOS; + productReference = 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */; + productType = "com.apple.product-type.framework"; + }; + C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 22A6575DFD2DB6CC7795B847CF23E097 /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */; + buildPhases = ( + 830F533F24CF1764C73DAEB0836FA324 /* Headers */, + F8EF357CCCFD774E6A723445A330B99A /* Sources */, + 582C3F96766BFC7D1A2DC2A02EAD5E53 /* Frameworks */, + AC3F6B37CD00CC7D8590E79984BAFAFE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PhoneNumberKit; + productName = PhoneNumberKit; + productReference = 69681285C13FB58876DD5727BCB2DC85 /* PhoneNumberKit */; + productType = "com.apple.product-type.framework"; + }; + ED39C638569286489CD697A6C8964146 /* Pods-iosApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9976D54D9693E7F2E3248CAE8C0819CC /* Build configuration list for PBXNativeTarget "Pods-iosApp" */; + buildPhases = ( + 912F5FF9B5C321B88B7973703680489E /* Headers */, + 385E75A6F9C033D5CDB45A8555A9A03C /* Sources */, + D81FEA5424135BC4E979DD3516B90E35 /* Frameworks */, + A37465B8182A0F46B987B72D492AE698 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 0DB56696AAE57CBFD0C5276B441ED95F /* PBXTargetDependency */, + 4010A617B9E9BEC6C1F0C6ED448A0084 /* PBXTargetDependency */, + 63DF746B54C39538DDF2904257C1FAFA /* PBXTargetDependency */, + ); + name = "Pods-iosApp"; + productName = Pods_iosApp; + productReference = B097DD7534E741D5C41838011D755842 /* Pods-iosApp */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1500; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + minimizedProjectReferenceProxies = 0; + productRefGroup = 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */, + 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */, + C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */, + ED39C638569286489CD697A6C8964146 /* Pods-iosApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A37465B8182A0F46B987B72D492AE698 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AC3F6B37CD00CC7D8590E79984BAFAFE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 782AF8E1A290480A81FD3569C1BA2209 /* PhoneNumberMetadata.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B7279466C0AADBD5EAE530C1BC106640 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 802B5C7A4CC266816EE3E78E781CBAF5 /* [CP-User] Build multiplatformContact */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "[CP-User] Build multiplatformContact"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = " if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"\"\n exit 0\n fi\n set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 25F4B5E03B490D613D643C924B13904C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2ECCE75AEBA313807A138E6C43065ABA /* libPhoneNumber-iOS-dummy.m in Sources */, + 74ADBC091F561112A6E0540607AECFAB /* NBAsYouTypeFormatter.m in Sources */, + 026EA818C68A627003C903E7F1FF4CEF /* NBMetadataCore.m in Sources */, + 70CC6B8F16D42D4C0816716A24993E1A /* NBMetadataCoreMapper.m in Sources */, + 18EDA100A8B6D2B8A8F82163B22147A3 /* NBMetadataCoreTest.m in Sources */, + AAE95AF843222C3EB1558B8C654E33D5 /* NBMetadataCoreTestMapper.m in Sources */, + 537C6367CCE8F9D940A306A2759F424E /* NBMetadataHelper.m in Sources */, + 60CC77F923ED2BFB9891D7B840693506 /* NBNumberFormat.m in Sources */, + 69EC68431ADC6245680CE73205FB8754 /* NBPhoneMetaData.m in Sources */, + 179B28D7FCB1AB9D66745DFCB3532735 /* NBPhoneNumber.m in Sources */, + 8ECC79DEB91B9A5F6381C34680DBD110 /* NBPhoneNumberDesc.m in Sources */, + FE9B14F28FCED85A8C45E63459339B7B /* NBPhoneNumberUtil.m in Sources */, + 5E631C90E2B9CE410C6E78177DEC701D /* NSArray+NBAdditions.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 385E75A6F9C033D5CDB45A8555A9A03C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5D07275E20612FC24E1F97519614FAE7 /* Pods-iosApp-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F8EF357CCCFD774E6A723445A330B99A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BF35C4949EDED02FE4417F730F0A3EB5 /* Bundle+Resources.swift in Sources */, + 4B5BA42BADE1C7771B4F5F92FF322501 /* Constants.swift in Sources */, + F67DBD66A0C8A4C06AFD18187F257305 /* CountryCodePickerOptions.swift in Sources */, + 2E9D2BB90BDFF169E281010E3E91AE20 /* CountryCodePickerViewController.swift in Sources */, + 69AF69FF54EC0BE69AD5FE15255F1358 /* Formatter.swift in Sources */, + 8FE868B295618263DFE4F79A041269EB /* MetadataManager.swift in Sources */, + 61B75CAFD8883D630F49EB35839ED77A /* MetadataParsing.swift in Sources */, + 3ED8A6D87C5380FA48AABC8FF9834D3C /* MetadataTypes.swift in Sources */, + 2996CF6097474129697EA169F7E959A3 /* NSRegularExpression+Swift.swift in Sources */, + 5DC9474CE9A996AD0D53E23CFA904024 /* ParseManager.swift in Sources */, + 43BFC4953D464638AEDDAFEDDD4CA0F4 /* PartialFormatter.swift in Sources */, + 85FC88D86D60C2271D7A25B3ECE5DB1A /* PhoneNumber.swift in Sources */, + 226166AB6B6F04F320BCEC1DAC63F194 /* PhoneNumber+Codable.swift in Sources */, + 4818E52307D7786C9524B75D09C27559 /* PhoneNumberFormatter.swift in Sources */, + EB9F1658DB85E9D0BC9F3A354C4C9C0F /* PhoneNumberKit.swift in Sources */, + 160F82A95B791A239DCFCC8FD46C695F /* PhoneNumberKit-dummy.m in Sources */, + 9718A978E7E81A2255A9606FAF119BB4 /* PhoneNumberParser.swift in Sources */, + CDEE519871A73F73C44B93C7EA3AF23A /* PhoneNumberTextField.swift in Sources */, + F81B3566F42FA2A768E4692CC083833D /* RegexManager.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0DB56696AAE57CBFD0C5276B441ED95F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PhoneNumberKit; + target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; + targetProxy = 6EEE6A127C0719B51BE52F2326A022D4 /* PBXContainerItemProxy */; + }; + 4010A617B9E9BEC6C1F0C6ED448A0084 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libPhoneNumber-iOS"; + target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; + targetProxy = 847146FDF4A97260A591028D5287C346 /* PBXContainerItemProxy */; + }; + 5019C052F98099A002C27025B1539EF4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "libPhoneNumber-iOS"; + target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; + targetProxy = 48B0FF678CA9C14E135894A5DAAFF7BC /* PBXContainerItemProxy */; + }; + 63DF746B54C39538DDF2904257C1FAFA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = multiplatformContact; + target = 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */; + targetProxy = 8538D95FA1ADF8A0509965E8BCDBC78D /* PBXContainerItemProxy */; + }; + AF144B775869EE38833972A8515C6060 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PhoneNumberKit; + target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; + targetProxy = F19CEBEB71195F286CC5ACD661BAE11C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0CFAF567976BE88CE005352096192D9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; + PRODUCT_MODULE_NAME = PhoneNumberKit; + PRODUCT_NAME = PhoneNumberKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 1FBCE2729B98AA70908A9EC6F52087EB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 521C69F7CC2BA71CA4791867DA4FB583 /* multiplatformContact.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4BC7450F9457737EE3E637BA155B56F7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 8AE00AD4F347400DDAD1686C99214F65 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8B5A46FF8D3C1289CDEE3BAFACABCD2A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + 8BBA973B7DE3BE5299980491213FA12D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap"; + PRODUCT_MODULE_NAME = libPhoneNumber_iOS; + PRODUCT_NAME = libPhoneNumber_iOS; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + AA78241B6E5D4EE60FA89E6CE2709175 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 132F3796C1388068910A610051BB5BFB /* multiplatformContact.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + AC739B7B8DBAD2ECCDAFD615E6D8E78D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; + PRODUCT_MODULE_NAME = PhoneNumberKit; + PRODUCT_NAME = PhoneNumberKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + C2EEB77826DED841A015F49C99016368 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap"; + PRODUCT_MODULE_NAME = libPhoneNumber_iOS; + PRODUCT_NAME = libPhoneNumber_iOS; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + EF707BA63AB7DF25DA2B5196D822A662 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 22A6575DFD2DB6CC7795B847CF23E097 /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0CFAF567976BE88CE005352096192D9A /* Debug */, + AC739B7B8DBAD2ECCDAFD615E6D8E78D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4BC7450F9457737EE3E637BA155B56F7 /* Debug */, + 8B5A46FF8D3C1289CDEE3BAFACABCD2A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6FECE8E15F2F56BC8351B04D0BAE14BE /* Build configuration list for PBXAggregateTarget "multiplatformContact" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1FBCE2729B98AA70908A9EC6F52087EB /* Debug */, + AA78241B6E5D4EE60FA89E6CE2709175 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9976D54D9693E7F2E3248CAE8C0819CC /* Build configuration list for PBXNativeTarget "Pods-iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8AE00AD4F347400DDAD1686C99214F65 /* Debug */, + EF707BA63AB7DF25DA2B5196D822A662 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + ED66E92C65497A91B001AD27B143E5B3 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C2EEB77826DED841A015F49C99016368 /* Debug */, + 8BBA973B7DE3BE5299980491213FA12D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist new file mode 100644 index 0000000..d895db6 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.7.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m new file mode 100644 index 0000000..2b24ac0 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_PhoneNumberKit : NSObject +@end +@implementation PodsDummy_PhoneNumberKit +@end diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h new file mode 100644 index 0000000..bde11d6 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double PhoneNumberKitVersionNumber; +FOUNDATION_EXPORT const unsigned char PhoneNumberKitVersionString[]; + diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig new file mode 100644 index 0000000..1101853 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/PhoneNumberKit +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_VERSION = 5.0 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap new file mode 100644 index 0000000..000aac6 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap @@ -0,0 +1,6 @@ +framework module PhoneNumberKit { + umbrella header "PhoneNumberKit-umbrella.h" + + export * + module * { export * } +} diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig new file mode 100644 index 0000000..1101853 --- /dev/null +++ b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/PhoneNumberKit +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_VERSION = 5.0 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist new file mode 100644 index 0000000..19cf209 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown new file mode 100644 index 0000000..c2d23ba --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown @@ -0,0 +1,208 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## PhoneNumberKit + +The MIT License (MIT) + +Copyright (c) 2018 Roy Marmelstein + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## libPhoneNumber-iOS + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +Generated by CocoaPods - https://cocoapods.org diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist new file mode 100644 index 0000000..c0d8402 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist @@ -0,0 +1,246 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2018 Roy Marmelstein + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + PhoneNumberKit + Type + PSGroupSpecifier + + + FooterText + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + License + Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + Title + libPhoneNumber-iOS + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-dummy.m b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-dummy.m new file mode 100644 index 0000000..e1bcef4 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_iosApp : NSObject +@end +@implementation PodsDummy_Pods_iosApp +@end diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist new file mode 100644 index 0000000..4a66e51 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist @@ -0,0 +1,3 @@ +${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh +${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework +${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist new file mode 100644 index 0000000..1558fae --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist @@ -0,0 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PhoneNumberKit.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist new file mode 100644 index 0000000..4a66e51 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist @@ -0,0 +1,3 @@ +${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh +${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework +${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist new file mode 100644 index 0000000..1558fae --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist @@ -0,0 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PhoneNumberKit.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh new file mode 100755 index 0000000..4b37f96 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh @@ -0,0 +1,188 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink -f "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework" + install_framework "${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework" + install_framework "${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist new file mode 100644 index 0000000..cb39459 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh +${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-output-files.xcfilelist new file mode 100644 index 0000000..383ba86 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/compose-resources \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist new file mode 100644 index 0000000..cb39459 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh +${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-output-files.xcfilelist new file mode 100644 index 0000000..383ba86 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/compose-resources \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh new file mode 100755 index 0000000..e7b922d --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh @@ -0,0 +1,129 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_resource "${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_resource "${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources" +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find -L "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-umbrella.h b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-umbrella.h new file mode 100644 index 0000000..a3d6034 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_iosAppVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_iosAppVersionString[]; + diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig new file mode 100644 index 0000000..e6d72d4 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit/PhoneNumberKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "CoreTelephony" -framework "PhoneNumberKit" -framework "libPhoneNumber_iOS" -framework "shared" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.modulemap b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.modulemap new file mode 100644 index 0000000..1bb57b2 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.modulemap @@ -0,0 +1,6 @@ +framework module Pods_iosApp { + umbrella header "Pods-iosApp-umbrella.h" + + export * + module * { export * } +} diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig new file mode 100644 index 0000000..e6d72d4 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit/PhoneNumberKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "CoreTelephony" -framework "PhoneNumberKit" -framework "libPhoneNumber_iOS" -framework "shared" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist new file mode 100644 index 0000000..7d45459 --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.8.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m new file mode 100644 index 0000000..95d7595 --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_libPhoneNumber_iOS : NSObject +@end +@implementation PodsDummy_libPhoneNumber_iOS +@end diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h new file mode 100644 index 0000000..3656a64 --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h @@ -0,0 +1,29 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "NBPhoneNumberDefines.h" +#import "NBPhoneNumber.h" +#import "NBNumberFormat.h" +#import "NBPhoneNumberDesc.h" +#import "NBPhoneMetaData.h" +#import "NBPhoneNumberUtil.h" +#import "NBMetadataHelper.h" +#import "NBAsYouTypeFormatter.h" +#import "NBMetadataCore.h" +#import "NBMetadataCoreTest.h" +#import "NBMetadataCoreMapper.h" +#import "NBMetadataCoreTestMapper.h" +#import "NSArray+NBAdditions.h" + +FOUNDATION_EXPORT double libPhoneNumber_iOSVersionNumber; +FOUNDATION_EXPORT const unsigned char libPhoneNumber_iOSVersionString[]; + diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig new file mode 100644 index 0000000..5f2c85a --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "CoreTelephony" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/libPhoneNumber-iOS +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap new file mode 100644 index 0000000..4771b08 --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap @@ -0,0 +1,6 @@ +framework module libPhoneNumber_iOS { + umbrella header "libPhoneNumber-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig new file mode 100644 index 0000000..5f2c85a --- /dev/null +++ b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "CoreTelephony" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/libPhoneNumber-iOS +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig new file mode 100644 index 0000000..6801abe --- /dev/null +++ b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig @@ -0,0 +1,16 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +KOTLIN_PROJECT_PATH = :multiplatformContact +OTHER_LDFLAGS = $(inherited) -l"c++" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../multiplatformContact +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +PRODUCT_MODULE_NAME = shared +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig new file mode 100644 index 0000000..6801abe --- /dev/null +++ b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig @@ -0,0 +1,16 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +KOTLIN_PROJECT_PATH = :multiplatformContact +OTHER_LDFLAGS = $(inherited) -l"c++" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../multiplatformContact +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +PRODUCT_MODULE_NAME = shared +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/libPhoneNumber-iOS/LICENSE b/iosApp/Pods/libPhoneNumber-iOS/LICENSE new file mode 100755 index 0000000..d9a10c0 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/iosApp/Pods/libPhoneNumber-iOS/README.md b/iosApp/Pods/libPhoneNumber-iOS/README.md new file mode 100755 index 0000000..2182f6e --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/README.md @@ -0,0 +1,121 @@ +[![CocoaPods](https://img.shields.io/cocoapods/p/libPhoneNumber-iOS.svg?style=flat)](http://cocoapods.org/?q=libPhoneNumber-iOS) +[![CocoaPods](https://img.shields.io/cocoapods/v/libPhoneNumber-iOS.svg?style=flat)](http://cocoapods.org/?q=libPhoneNumber-iOS) +[![Travis](https://img.shields.io/travis/iziz/libPhoneNumber-iOS.svg?style=flat)](https://travis-ci.org/iziz/libPhoneNumber-iOS) + +# **libPhoneNumber for iOS** + + - NBPhoneNumberUtil + - NBAsYouTypeFormatter + +> ARC only, or add the **"-fobjc-arc"** flag for non-ARC + +### Using [CocoaPods](http://cocoapods.org/?q=libPhoneNumber-iOS) +``` +source 'https://github.com/CocoaPods/Specs.git' +pod 'libPhoneNumber-iOS', '~> 0.7' +``` + +### Setting up Manually +##### Add source files to your projects from libPhoneNumber + - NBPhoneNumberUtil.h, .m + - NBAsYouTypeFormatter.h, .m + + - NBNumberFormat.h, .m + - NBPhoneNumber.h, .m + - NBPhoneNumberDesc.h, .m + - NBPhoneNumberDefines.h + - NBPhoneMetaData.h, .m + + - NSArray+NBAdditions.h, .m + + - Add "NBPhoneNumberMetadata.plist" and "NBPhoneNumberMetadataForTesting.plist" to bundle resources + - Add "CoreTelephony.framework" + +See sample test code from +> [libPhoneNumber-iOS/libPhoneNumberTests/libPhoneNumberTests.m] (https://github.com/iziz/libPhoneNumber-iOS/blob/master/libPhoneNumberTests/NBPhoneNumberUtilTests.m) + +### Usage - **NBPhoneNumberUtil** +```obj-c + NBPhoneNumberUtil *phoneUtil = [NBPhoneNumberUtil sharedInstance]; + + NSError *anError = nil; + NBPhoneNumber *myNumber = [phoneUtil parse:@"6766077303" + defaultRegion:@"AT" error:&anError]; + + if (anError == nil) { + // Should check error + NSLog(@"isValidPhoneNumber ? [%@]", [phoneUtil isValidNumber:myNumber] ? @"YES":@"NO"); + + // E164 : +436766077303 + NSLog(@"E164 : %@", [phoneUtil format:myNumber + numberFormat:NBEPhoneNumberFormatE164 + error:&anError]); + // INTERNATIONAL : +43 676 6077303 + NSLog(@"INTERNATIONAL : %@", [phoneUtil format:myNumber + numberFormat:NBEPhoneNumberFormatINTERNATIONAL + error:&anError]); + // NATIONAL : 0676 6077303 + NSLog(@"NATIONAL : %@", [phoneUtil format:myNumber + numberFormat:NBEPhoneNumberFormatNATIONAL + error:&anError]); + // RFC3966 : tel:+43-676-6077303 + NSLog(@"RFC3966 : %@", [phoneUtil format:myNumber + numberFormat:NBEPhoneNumberFormatRFC3966 + error:&anError]); + } else { + NSLog(@"Error : %@", [anError localizedDescription]); + } + + NSLog (@"extractCountryCode [%@]", [phoneUtil extractCountryCode:@"823213123123" nationalNumber:nil]); + + NSString *nationalNumber = nil; + NSNumber *countryCode = [phoneUtil extractCountryCode:@"823213123123" nationalNumber:&nationalNumber]; + + NSLog (@"extractCountryCode [%@] [%@]", countryCode, nationalNumber); +``` +##### Output +``` +2014-07-06 12:39:37.240 libPhoneNumberTest[1581:60b] isValidPhoneNumber ? [YES] +2014-07-06 12:39:37.242 libPhoneNumberTest[1581:60b] E164 : +436766077303 +2014-07-06 12:39:37.243 libPhoneNumberTest[1581:60b] INTERNATIONAL : +43 676 6077303 +2014-07-06 12:39:37.243 libPhoneNumberTest[1581:60b] NATIONAL : 0676 6077303 +2014-07-06 12:39:37.244 libPhoneNumberTest[1581:60b] RFC3966 : tel:+43-676-6077303 +2014-07-06 12:39:37.244 libPhoneNumberTest[1581:60b] extractCountryCode [82] +2014-07-06 12:39:37.245 libPhoneNumberTest[1581:60b] extractCountryCode [82] [3213123123] +``` + +### Usage - **NBAsYouTypeFormatter** +```obj-c + NBAsYouTypeFormatter *f = [[NBAsYouTypeFormatter alloc] initWithRegionCode:@"US"]; + NSLog(@"%@", [f inputDigit:@"6"]); // "6" + NSLog(@"%@", [f inputDigit:@"5"]); // "65" + NSLog(@"%@", [f inputDigit:@"0"]); // "650" + NSLog(@"%@", [f inputDigit:@"2"]); // "650 2" + NSLog(@"%@", [f inputDigit:@"5"]); // "650 25" + NSLog(@"%@", [f inputDigit:@"3"]); // "650 253" + + // Note this is how a US local number (without area code) should be formatted. + NSLog(@"%@", [f inputDigit:@"2"]); // "650 2532" + NSLog(@"%@", [f inputDigit:@"2"]); // "650 253 22" + NSLog(@"%@", [f inputDigit:@"2"]); // "650 253 222" + NSLog(@"%@", [f inputDigit:@"2"]); // "650 253 2222" + // Can remove last digit + NSLog(@"%@", [f removeLastDigit]); // "650 253 222" + + NSLog(@"%@", [f inputString:@"16502532222"]); // 1 650 253 2222 +``` + +##### Visit [libphonenumber](https://github.com/googlei18n/libphonenumber) for more information or mail (zen.isis@gmail.com) + +##### **Metadata managing (updating metadata)** + +###### Step1. Fetch "metadata.js" and "metadatafortesting.js" from Repositories + svn checkout http://libphonenumber.googlecode.com/svn/trunk/ libphonenumber-read-only + +###### Step2. Convert Javascript Object to JSON using PHP scripts + Output - "PhoneNumberMetaData.json" and "PhoneNumberMetaDataForTesting.json" + +###### Step3. Generate binary file from NBPhoneMetaDataGenerator + Output - "NBPhoneNumberMetadata.plist" and "NBPhoneNumberMetadataForTesting.plist" + +###### Step4. Update exists "NBPhoneNumberMetadata.plist" and "NBPhoneNumberMetadataForTesting.plist" files diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h new file mode 100755 index 0000000..55f53df --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h @@ -0,0 +1,31 @@ +// +// NBAsYouTypeFormatter.h +// libPhoneNumber +// +// Created by ishtar on 13. 2. 25.. +// + +#import + + +@interface NBAsYouTypeFormatter : NSObject + +- (id)initWithRegionCode:(NSString *)regionCode; +- (id)initWithRegionCodeForTest:(NSString *)regionCode; +- (id)initWithRegionCode:(NSString *)regionCode bundle:(NSBundle *)bundle; +- (id)initWithRegionCodeForTest:(NSString *)regionCode bundle:(NSBundle *)bundle; + +- (NSString *)inputString:(NSString *)string; +- (NSString *)inputStringAndRememberPosition:(NSString *)string; + +- (NSString *)inputDigit:(NSString*)nextChar; +- (NSString *)inputDigitAndRememberPosition:(NSString*)nextChar; + +- (NSString *)removeLastDigit; +- (NSString *)removeLastDigitAndRememberPosition; + +- (NSInteger)getRememberedPosition; + +- (void)clear; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m new file mode 100755 index 0000000..d37c45d --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m @@ -0,0 +1,1241 @@ +// +// NBAsYouTypeFormatter.m +// libPhoneNumber +// +// Created by ishtar on 13. 2. 25.. +// + +#import "NBAsYouTypeFormatter.h" + +#import "NBMetadataHelper.h" + +#import "NBPhoneNumberUtil.h" +#import "NBPhoneMetaData.h" +#import "NBNumberFormat.h" +#import "NSArray+NBAdditions.h" + + +@interface NBAsYouTypeFormatter () + +@property (nonatomic, strong, readwrite) NSString *DIGIT_PLACEHOLDER_; +@property (nonatomic, assign, readwrite) NSString *SEPARATOR_BEFORE_NATIONAL_NUMBER_; +@property (nonatomic, strong, readwrite) NSString *currentOutput_, *currentFormattingPattern_; +@property (nonatomic, strong, readwrite) NSString *defaultCountry_; +@property (nonatomic, strong, readwrite) NSString *nationalPrefixExtracted_; +@property (nonatomic, strong, readwrite) NSMutableString *formattingTemplate_, *accruedInput_, *prefixBeforeNationalNumber_, *accruedInputWithoutFormatting_, *nationalNumber_; +@property (nonatomic, strong, readwrite) NSRegularExpression *DIGIT_PATTERN_, *NATIONAL_PREFIX_SEPARATORS_PATTERN_, *CHARACTER_CLASS_PATTERN_, *STANDALONE_DIGIT_PATTERN_; +@property (nonatomic, strong, readwrite) NSRegularExpression *ELIGIBLE_FORMAT_PATTERN_; +@property (nonatomic, assign, readwrite) BOOL ableToFormat_, inputHasFormatting_, isCompleteNumber_, isExpectingCountryCallingCode_, shouldAddSpaceAfterNationalPrefix_; +@property (nonatomic, strong, readwrite) NBPhoneNumberUtil *phoneUtil_; +@property (nonatomic, assign, readwrite) NSUInteger lastMatchPosition_, originalPosition_, positionToRemember_; +@property (nonatomic, assign, readwrite) NSUInteger MIN_LEADING_DIGITS_LENGTH_; +@property (nonatomic, strong, readwrite) NSMutableArray *possibleFormats_; +@property (nonatomic, strong, readwrite) NBPhoneMetaData *currentMetaData_, *defaultMetaData_, *EMPTY_METADATA_; + +@end + + +@implementation NBAsYouTypeFormatter + +- (id)init +{ + self = [super init]; + + if (self) { + /** + * The digits that have not been entered yet will be represented by a \u2008, + * the punctuation space. + * @const + * @type {string} + * @private + */ + self.DIGIT_PLACEHOLDER_ = @"\u2008"; + + /** + * Character used when appropriate to separate a prefix, such as a long NDD or a + * country calling code, from the national number. + * @const + * @type {string} + * @private + */ + self.SEPARATOR_BEFORE_NATIONAL_NUMBER_ = @" "; + + /** + * This is the minimum length of national number accrued that is required to + * trigger the formatter. The first element of the leadingDigitsPattern of + * each numberFormat contains a regular expression that matches up to this + * number of digits. + * @const + * @type {number} + * @private + */ + self.MIN_LEADING_DIGITS_LENGTH_ = 3; + + /** + * @type {string} + * @private + */ + self.currentOutput_ = @""; + + /** + * @type {!goog.string.StringBuffer} + * @private + */ + self.formattingTemplate_ = [NSMutableString stringWithString:@""]; + + NSError *anError = nil; + + /** + * @type {RegExp} + * @private + */ + self.DIGIT_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:self.DIGIT_PLACEHOLDER_ options:0 error:&anError]; + + /** + * A set of characters that, if found in a national prefix formatting rules, are + * an indicator to us that we should separate the national prefix from the + * number when formatting. + * @const + * @type {RegExp} + * @private + */ + self.NATIONAL_PREFIX_SEPARATORS_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:@"[- ]" options:0 error:&anError]; + + /** + * A pattern that is used to match character classes in regular expressions. + * An example of a character class is [1-4]. + * @const + * @type {RegExp} + * @private + */ + self.CHARACTER_CLASS_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:@"\\[([^\\[\\]])*\\]" options:0 error:&anError]; + + /** + * Any digit in a regular expression that actually denotes a digit. For + * example, in the regular expression 80[0-2]\d{6,10}, the first 2 digits + * (8 and 0) are standalone digits, but the rest are not. + * Two look-aheads are needed because the number following \\d could be a + * two-digit number, since the phone number can be as long as 15 digits. + * @const + * @type {RegExp} + * @private + */ + self.STANDALONE_DIGIT_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:@"\\d(?=[^,}][^,}])" options:0 error:&anError]; + + /** + * A pattern that is used to determine if a numberFormat under availableFormats + * is eligible to be used by the AYTF. It is eligible when the format element + * under numberFormat contains groups of the dollar sign followed by a single + * digit, separated by valid phone number punctuation. This prevents invalid + * punctuation (such as the star sign in Israeli star numbers) getting into the + * output of the AYTF. + * @const + * @type {RegExp} + * @private + */ + NSString *eligible_format = @"^[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*(\\$\\d[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*)+$"; + self.ELIGIBLE_FORMAT_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:eligible_format options:0 error:&anError]; + + /** + * The pattern from numberFormat that is currently used to create + * formattingTemplate. + * @type {string} + * @private + */ + self.currentFormattingPattern_ = @""; + + /** + * @type {!goog.string.StringBuffer} + * @private + */ + self.accruedInput_ = [NSMutableString stringWithString:@""]; + + /** + * @type {!goog.string.StringBuffer} + * @private + */ + self.accruedInputWithoutFormatting_ = [NSMutableString stringWithString:@""]; + + /** + * This indicates whether AsYouTypeFormatter is currently doing the + * formatting. + * @type {BOOL} + * @private + */ + self.ableToFormat_ = YES; + + /** + * Set to YES when users enter their own formatting. AsYouTypeFormatter will + * do no formatting at all when this is set to YES. + * @type {BOOL} + * @private + */ + self.inputHasFormatting_ = NO; + + /** + * This is set to YES when we know the user is entering a full national + * significant number, since we have either detected a national prefix or an + * international dialing prefix. When this is YES, we will no longer use + * local number formatting patterns. + * @type {BOOL} + * @private + */ + self.isCompleteNumber_ = NO; + + /** + * @type {BOOL} + * @private + */ + self.isExpectingCountryCallingCode_ = NO; + + /** + * @type {number} + * @private + */ + self.lastMatchPosition_ = 0; + + /** + * The position of a digit upon which inputDigitAndRememberPosition is most + * recently invoked, as found in the original sequence of characters the user + * entered. + * @type {number} + * @private + */ + self.originalPosition_ = 0; + + /** + * The position of a digit upon which inputDigitAndRememberPosition is most + * recently invoked, as found in accruedInputWithoutFormatting. + * entered. + * @type {number} + * @private + */ + self.positionToRemember_ = 0; + + /** + * This contains anything that has been entered so far preceding the national + * significant number, and it is formatted (e.g. with space inserted). For + * example, this can contain IDD, country code, and/or NDD, etc. + * @type {!goog.string.StringBuffer} + * @private + */ + self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; + + /** + * @type {BOOL} + * @private + */ + self.shouldAddSpaceAfterNationalPrefix_ = NO; + + /** + * This contains the national prefix that has been extracted. It contains only + * digits without formatting. + * @type {string} + * @private + */ + self.nationalPrefixExtracted_ = @""; + + /** + * @type {!goog.string.StringBuffer} + * @private + */ + self.nationalNumber_ = [NSMutableString stringWithString:@""]; + + /** + * @type {Array.} + * @private + */ + self.possibleFormats_ = [[NSMutableArray alloc] init]; + } + + return self; +} + +/** + * Constructs an AsYouTypeFormatter for the specific region. + * + * @param {string} regionCode the ISO 3166-1 two-letter region code that denotes + * the region where the phone number is being entered. + * @constructor + */ + +- (id)initWithRegionCode:(NSString*)regionCode +{ + return [self initWithRegionCode:regionCode bundle:[NSBundle mainBundle]]; +} + +- (id)initWithRegionCodeForTest:(NSString*)regionCode +{ + return [self initWithRegionCodeForTest:regionCode bundle:[NSBundle mainBundle]]; +} + +- (id)initWithRegionCode:(NSString*)regionCode bundle:(NSBundle *)bundle +{ + self = [self init]; + if (self) { + /** + * @private + * @type {i18n.phonenumbers.PhoneNumberUtil} + */ + self.phoneUtil_ = [[NBPhoneNumberUtil alloc] init]; + self.defaultCountry_ = regionCode; + self.currentMetaData_ = [self getMetadataForRegion_:self.defaultCountry_]; + /** + * @type {i18n.phonenumbers.PhoneMetadata} + * @private + */ + self.defaultMetaData_ = self.currentMetaData_; + + /** + * @const + * @type {i18n.phonenumbers.PhoneMetadata} + * @private + */ + self.EMPTY_METADATA_ = [[NBPhoneMetaData alloc] init]; + [self.EMPTY_METADATA_ setInternationalPrefix:@"NA"]; + } + + return self; + +} + +- (id)initWithRegionCodeForTest:(NSString*)regionCode bundle:(NSBundle *)bundle +{ + self = [self init]; + + if (self) { + self.phoneUtil_ = [[NBPhoneNumberUtil alloc] init]; + + self.defaultCountry_ = regionCode; + self.currentMetaData_ = [self getMetadataForRegion_:self.defaultCountry_]; + self.defaultMetaData_ = self.currentMetaData_; + self.EMPTY_METADATA_ = [[NBPhoneMetaData alloc] init]; + [self.EMPTY_METADATA_ setInternationalPrefix:@"NA"]; + } + + return self; +} + +/** + * The metadata needed by this class is the same for all regions sharing the + * same country calling code. Therefore, we return the metadata for "main" + * region for this country calling code. + * @param {string} regionCode an ISO 3166-1 two-letter region code. + * @return {i18n.phonenumbers.PhoneMetadata} main metadata for this region. + * @private + */ +- (NBPhoneMetaData*)getMetadataForRegion_:(NSString*)regionCode +{ + + /** @type {number} */ + NSNumber *countryCallingCode = [self.phoneUtil_ getCountryCodeForRegion:regionCode]; + /** @type {string} */ + NSString *mainCountry = [self.phoneUtil_ getRegionCodeForCountryCode:countryCallingCode]; + /** @type {i18n.phonenumbers.PhoneMetadata} */ + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:mainCountry]; + if (metadata != nil) { + return metadata; + } + // Set to a default instance of the metadata. This allows us to function with + // an incorrect region code, even if formatting only works for numbers + // specified with '+'. + return self.EMPTY_METADATA_; +}; + + +/** + * @return {BOOL} YES if a new template is created as opposed to reusing the + * existing template. + * @private + */ +- (BOOL)maybeCreateNewTemplate_ +{ + // When there are multiple available formats, the formatter uses the first + // format where a formatting template could be created. + /** @type {number} */ + unsigned int possibleFormatsLength = (unsigned int)[self.possibleFormats_ count]; + for (unsigned int i = 0; i < possibleFormatsLength; ++i) + { + /** @type {i18n.phonenumbers.NumberFormat} */ + NBNumberFormat *numberFormat = [self.possibleFormats_ safeObjectAtIndex:i]; + /** @type {string} */ + NSString *pattern = numberFormat.pattern; + + if ([self.currentFormattingPattern_ isEqualToString:pattern]) { + return NO; + } + + if ([self createFormattingTemplate_:numberFormat ]) + { + self.currentFormattingPattern_ = pattern; + NSRange nationalPrefixRange = NSMakeRange(0, [numberFormat.nationalPrefixFormattingRule length]); + if (nationalPrefixRange.length > 0) { + NSTextCheckingResult *matchResult = + [self.NATIONAL_PREFIX_SEPARATORS_PATTERN_ firstMatchInString:numberFormat.nationalPrefixFormattingRule + options:0 + range:nationalPrefixRange]; + self.shouldAddSpaceAfterNationalPrefix_ = (matchResult != nil); + } else { + self.shouldAddSpaceAfterNationalPrefix_ = NO; + } + // With a new formatting template, the matched position using the old + // template needs to be reset. + self.lastMatchPosition_ = 0; + return YES; + } + } + self.ableToFormat_ = NO; + return NO; +}; + + +/** + * @param {string} leadingThreeDigits first three digits of entered number. + * @private + */ +- (void)getAvailableFormats_:(NSString*)leadingThreeDigits +{ + /** @type {Array.} */ + BOOL isIntlNumberFormats = (self.isCompleteNumber_ && self.currentMetaData_.intlNumberFormats.count > 0); + NSMutableArray *formatList = isIntlNumberFormats ? self.currentMetaData_.intlNumberFormats : self.currentMetaData_.numberFormats; + + /** @type {number} */ + unsigned int formatListLength = (unsigned int)formatList.count; + + for (unsigned int i = 0; i < formatListLength; ++i) + { + /** @type {i18n.phonenumbers.NumberFormat} */ + NBNumberFormat *format = [formatList safeObjectAtIndex:i]; + /** @type {BOOL} */ + BOOL nationalPrefixIsUsedByCountry = (self.currentMetaData_.nationalPrefix && self.currentMetaData_.nationalPrefix.length > 0); + + if (!nationalPrefixIsUsedByCountry || self.isCompleteNumber_ || format.nationalPrefixOptionalWhenFormatting || + [self.phoneUtil_ formattingRuleHasFirstGroupOnly:format.nationalPrefixFormattingRule]) + { + if ([self isFormatEligible_:format.format]) { + [self.possibleFormats_ addObject:format]; + } + } + } + + [self narrowDownPossibleFormats_:leadingThreeDigits]; +}; + + +/** + * @param {string} format + * @return {BOOL} + * @private + */ +- (BOOL)isFormatEligible_:(NSString*)format +{ + NSTextCheckingResult *matchResult = + [self.ELIGIBLE_FORMAT_PATTERN_ firstMatchInString:format options:0 range:NSMakeRange(0, [format length])]; + return (matchResult != nil); +}; + + +/** + * @param {string} leadingDigits + * @private + */ +- (void)narrowDownPossibleFormats_:(NSString *)leadingDigits +{ + /** @type {Array.} */ + NSMutableArray *possibleFormats = [[NSMutableArray alloc] init]; + /** @type {number} */ + NSUInteger indexOfLeadingDigitsPattern = (unsigned int)leadingDigits.length - self.MIN_LEADING_DIGITS_LENGTH_; + /** @type {number} */ + NSUInteger possibleFormatsLength = (unsigned int)self.possibleFormats_.count; + + for (NSUInteger i = 0; i < possibleFormatsLength; ++i) + { + /** @type {i18n.phonenumbers.NumberFormat} */ + NBNumberFormat *format = [self.possibleFormats_ safeObjectAtIndex:i]; + if (format.leadingDigitsPatterns.count > indexOfLeadingDigitsPattern) + { + /** @type {string} */ + NSString *leadingDigitsPattern = [format.leadingDigitsPatterns safeObjectAtIndex:indexOfLeadingDigitsPattern]; + + if ([self.phoneUtil_ stringPositionByRegex:leadingDigits regex:leadingDigitsPattern] == 0) + { + [possibleFormats addObject:format]; + } + } else { + // else the particular format has no more specific leadingDigitsPattern, + // and it should be retained. + [possibleFormats addObject:[self.possibleFormats_ safeObjectAtIndex:i]]; + } + } + self.possibleFormats_ = possibleFormats; +}; + + +/** + * @param {i18n.phonenumbers.NumberFormat} format + * @return {BOOL} + * @private + */ +- (BOOL)createFormattingTemplate_:(NBNumberFormat*)format +{ + /** @type {string} */ + NSString *numberPattern = format.pattern; + + // The formatter doesn't format numbers when numberPattern contains '|', e.g. + // (20|3)\d{4}. In those cases we quickly return. + NSRange stringRange = [numberPattern rangeOfString:@"|"]; + if (stringRange.location != NSNotFound) { + return NO; + } + + // Replace anything in the form of [..] with \d + numberPattern = [self.CHARACTER_CLASS_PATTERN_ stringByReplacingMatchesInString:numberPattern + options:0 range:NSMakeRange(0, [numberPattern length]) + withTemplate:@"\\\\d"]; + + // Replace any standalone digit (not the one in d{}) with \d + numberPattern = [self.STANDALONE_DIGIT_PATTERN_ stringByReplacingMatchesInString:numberPattern + options:0 range:NSMakeRange(0, [numberPattern length]) + withTemplate:@"\\\\d"]; + self.formattingTemplate_ = [NSMutableString stringWithString:@""]; + + /** @type {string} */ + NSString *tempTemplate = [self getFormattingTemplate_:numberPattern numberFormat:format.format]; + if (tempTemplate.length > 0) { + [self.formattingTemplate_ appendString:tempTemplate]; + return YES; + } + return NO; +}; + + +/** + * Gets a formatting template which can be used to efficiently format a + * partial number where digits are added one by one. + * + * @param {string} numberPattern + * @param {string} numberFormat + * @return {string} + * @private + */ +- (NSString*)getFormattingTemplate_:(NSString*)numberPattern numberFormat:(NSString*)numberFormat +{ + // Creates a phone number consisting only of the digit 9 that matches the + // numberPattern by applying the pattern to the longestPhoneNumber string. + /** @type {string} */ + NSString *longestPhoneNumber = @"999999999999999"; + + /** @type {Array.} */ + NSArray *m = [self.phoneUtil_ matchedStringByRegex:longestPhoneNumber regex:numberPattern]; + + // this match will always succeed + /** @type {string} */ + NSString *aPhoneNumber = [m safeObjectAtIndex:0]; + // No formatting template can be created if the number of digits entered so + // far is longer than the maximum the current formatting rule can accommodate. + if (aPhoneNumber.length < self.nationalNumber_.length) { + return @""; + } + // Formats the number according to numberFormat + /** @type {string} */ + NSString *template = [self.phoneUtil_ replaceStringByRegex:aPhoneNumber regex:numberPattern withTemplate:numberFormat]; + + // Replaces each digit with character DIGIT_PLACEHOLDER + template = [self.phoneUtil_ replaceStringByRegex:template regex:@"9" withTemplate:self.DIGIT_PLACEHOLDER_]; + return template; +}; + + +/** + * Clears the internal state of the formatter, so it can be reused. + */ +- (void)clear +{ + self.currentOutput_ = @""; + self.accruedInput_ = [NSMutableString stringWithString:@""]; + self.accruedInputWithoutFormatting_ = [NSMutableString stringWithString:@""]; + self.formattingTemplate_ = [NSMutableString stringWithString:@""]; + self.lastMatchPosition_ = 0; + self.currentFormattingPattern_ = @""; + self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; + self.nationalPrefixExtracted_ = @""; + self.nationalNumber_ = [NSMutableString stringWithString:@""]; + self.ableToFormat_ = YES; + self.inputHasFormatting_ = NO; + self.positionToRemember_ = 0; + self.originalPosition_ = 0; + self.isCompleteNumber_ = NO; + self.isExpectingCountryCallingCode_ = NO; + [self.possibleFormats_ removeAllObjects]; + self.shouldAddSpaceAfterNationalPrefix_ = NO; + + if (self.currentMetaData_ != self.defaultMetaData_) { + self.currentMetaData_ = [self getMetadataForRegion_:self.defaultCountry_]; + } +} + +- (NSString*)removeLastDigitAndRememberPosition +{ + NSString *accruedInputWithoutFormatting = [self.accruedInput_ copy]; + [self clear]; + + NSString *result = @""; + + if (accruedInputWithoutFormatting.length <= 0) { + return result; + } + + for (unsigned int i=0; i 0) { + // The formatting pattern is already chosen. + /** @type {string} */ + NSString *tempNationalNumber = [self inputDigitHelper_:nextChar]; + // See if the accrued digits can be formatted properly already. If not, + // use the results from inputDigitHelper, which does formatting based on + // the formatting pattern chosen. + /** @type {string} */ + NSString *formattedNumber = [self attemptToFormatAccruedDigits_]; + if (formattedNumber.length > 0) { + return formattedNumber; + } + + [self narrowDownPossibleFormats_:self.nationalNumber_]; + + if ([self maybeCreateNewTemplate_]) { + return [self inputAccruedNationalNumber_]; + } + + return self.ableToFormat_ ? [self appendNationalNumber_:tempNationalNumber] : self.accruedInput_; + } + else { + return [self attemptToChooseFormattingPattern_]; + } + } +}; + + +/** + * @return {string} + * @private + */ +- (NSString*)attemptToChoosePatternWithPrefixExtracted_ +{ + self.ableToFormat_ = YES; + self.isExpectingCountryCallingCode_ = NO; + [self.possibleFormats_ removeAllObjects]; + return [self attemptToChooseFormattingPattern_]; +}; + + +/** + * Some national prefixes are a substring of others. If extracting the shorter + * NDD doesn't result in a number we can format, we try to see if we can extract + * a longer version here. + * @return {BOOL} + * @private + */ +- (BOOL)ableToExtractLongerNdd_ +{ + if (self.nationalPrefixExtracted_.length > 0) + { + // Put the extracted NDD back to the national number before attempting to + // extract a new NDD. + /** @type {string} */ + NSString *nationalNumberStr = [NSString stringWithString:self.nationalNumber_]; + self.nationalNumber_ = [NSMutableString stringWithString:@""]; + [self.nationalNumber_ appendString:self.nationalPrefixExtracted_]; + [self.nationalNumber_ appendString:nationalNumberStr]; + // Remove the previously extracted NDD from prefixBeforeNationalNumber. We + // cannot simply set it to empty string because people sometimes incorrectly + // enter national prefix after the country code, e.g. +44 (0)20-1234-5678. + /** @type {string} */ + NSString *prefixBeforeNationalNumberStr = [NSString stringWithString:self.prefixBeforeNationalNumber_]; + NSRange lastRange = [prefixBeforeNationalNumberStr rangeOfString:self.nationalPrefixExtracted_ options:NSBackwardsSearch]; + /** @type {number} */ + unsigned int indexOfPreviousNdd = (unsigned int)lastRange.location; + self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; + [self.prefixBeforeNationalNumber_ appendString:[prefixBeforeNationalNumberStr substringWithRange:NSMakeRange(0, indexOfPreviousNdd)]]; + } + + return self.nationalPrefixExtracted_ != [self removeNationalPrefixFromNationalNumber_]; +}; + + +/** + * @param {string} nextChar + * @return {BOOL} + * @private + */ +- (BOOL)isDigitOrLeadingPlusSign_:(NSString*)nextChar +{ + NSString *digitPattern = [NSString stringWithFormat:@"([%@])", NB_VALID_DIGITS_STRING]; + NSString *plusPattern = [NSString stringWithFormat:@"[%@]+", NB_PLUS_CHARS]; + + BOOL isDigitPattern = [[self.phoneUtil_ matchesByRegex:nextChar regex:digitPattern] count] > 0; + BOOL isPlusPattern = [[self.phoneUtil_ matchesByRegex:nextChar regex:plusPattern] count] > 0; + + return isDigitPattern || (self.accruedInput_.length == 1 && isPlusPattern); +}; + + +/** + * Check to see if there is an exact pattern match for these digits. If so, we + * should use this instead of any other formatting template whose + * leadingDigitsPattern also matches the input. + * @return {string} + * @private + */ +- (NSString*)attemptToFormatAccruedDigits_ +{ + /** @type {string} */ + NSString *nationalNumber = [NSString stringWithString:self.nationalNumber_]; + + /** @type {number} */ + unsigned int possibleFormatsLength = (unsigned int)self.possibleFormats_.count; + for (unsigned int i = 0; i < possibleFormatsLength; ++i) + { + /** @type {i18n.phonenumbers.NumberFormat} */ + NBNumberFormat *numberFormat = self.possibleFormats_[i]; + /** @type {string} */ + NSString * pattern = numberFormat.pattern; + /** @type {RegExp} */ + NSString *patternRegExp = [NSString stringWithFormat:@"^(?:%@)$", pattern]; + BOOL isPatternRegExp = [[self.phoneUtil_ matchesByRegex:nationalNumber regex:patternRegExp] count] > 0; + if (isPatternRegExp) { + if (numberFormat.nationalPrefixFormattingRule.length > 0) { + NSArray *matches = [self.NATIONAL_PREFIX_SEPARATORS_PATTERN_ matchesInString:numberFormat.nationalPrefixFormattingRule + options:0 + range:NSMakeRange(0, numberFormat.nationalPrefixFormattingRule.length)]; + self.shouldAddSpaceAfterNationalPrefix_ = [matches count] > 0; + } else { + self.shouldAddSpaceAfterNationalPrefix_ = NO; + } + + /** @type {string} */ + NSString *formattedNumber = [self.phoneUtil_ replaceStringByRegex:nationalNumber + regex:pattern + withTemplate:numberFormat.format]; + return [self appendNationalNumber_:formattedNumber]; + } + } + return @""; +}; + + +/** + * Combines the national number with any prefix (IDD/+ and country code or + * national prefix) that was collected. A space will be inserted between them if + * the current formatting template indicates this to be suitable. + * @param {string} nationalNumber The number to be appended. + * @return {string} The combined number. + * @private + */ +- (NSString*)appendNationalNumber_:(NSString*)nationalNumber +{ + /** @type {number} */ + unsigned int prefixBeforeNationalNumberLength = (unsigned int)self.prefixBeforeNationalNumber_.length; + unichar blank_char = [self.SEPARATOR_BEFORE_NATIONAL_NUMBER_ characterAtIndex:0]; + if (self.shouldAddSpaceAfterNationalPrefix_ && prefixBeforeNationalNumberLength > 0 && + [self.prefixBeforeNationalNumber_ characterAtIndex:prefixBeforeNationalNumberLength - 1] != blank_char) + { + // We want to add a space after the national prefix if the national prefix + // formatting rule indicates that this would normally be done, with the + // exception of the case where we already appended a space because the NDD + // was surprisingly long. + + return [NSString stringWithFormat:@"%@%@%@", self.prefixBeforeNationalNumber_, self.SEPARATOR_BEFORE_NATIONAL_NUMBER_, nationalNumber]; + } else { + return [NSString stringWithFormat:@"%@%@", self.prefixBeforeNationalNumber_, nationalNumber]; + } +}; + + +/** + * Returns the current position in the partially formatted phone number of the + * character which was previously passed in as the parameter of + * {@link #inputDigitAndRememberPosition}. + * + * @return {number} + */ +- (NSInteger)getRememberedPosition +{ + if (!self.ableToFormat_) { + return self.originalPosition_; + } + /** @type {number} */ + NSInteger accruedInputIndex = 0; + /** @type {number} */ + NSInteger currentOutputIndex = 0; + /** @type {string} */ + NSString *accruedInputWithoutFormatting = self.accruedInputWithoutFormatting_; + /** @type {string} */ + NSString *currentOutput = self.currentOutput_; + + while (accruedInputIndex < self.positionToRemember_ && currentOutputIndex < currentOutput.length) + { + if ([accruedInputWithoutFormatting characterAtIndex:accruedInputIndex] == [currentOutput characterAtIndex:currentOutputIndex]) + { + accruedInputIndex++; + } + currentOutputIndex++; + } + return currentOutputIndex; +}; + + +/** + * Attempts to set the formatting template and returns a string which contains + * the formatted version of the digits entered so far. + * + * @return {string} + * @private + */ +- (NSString*)attemptToChooseFormattingPattern_ +{ + /** @type {string} */ + NSString *nationalNumber = [self.nationalNumber_ copy]; + // We start to attempt to format only when as least MIN_LEADING_DIGITS_LENGTH + // digits of national number (excluding national prefix) have been entered. + if (nationalNumber.length >= self.MIN_LEADING_DIGITS_LENGTH_) { + [self getAvailableFormats_:[nationalNumber substringWithRange:NSMakeRange(0, self.MIN_LEADING_DIGITS_LENGTH_)]]; + return [self maybeCreateNewTemplate_] ? [self inputAccruedNationalNumber_] : self.accruedInput_; + } else { + return [self appendNationalNumber_:nationalNumber]; + } +} + + +/** + * Invokes inputDigitHelper on each digit of the national number accrued, and + * returns a formatted string in the end. + * + * @return {string} + * @private + */ +- (NSString*)inputAccruedNationalNumber_ +{ + /** @type {string} */ + NSString *nationalNumber = [self.nationalNumber_ copy]; + /** @type {number} */ + unsigned int lengthOfNationalNumber = (unsigned int)nationalNumber.length; + if (lengthOfNationalNumber > 0) { + /** @type {string} */ + NSString *tempNationalNumber = @""; + for (unsigned int i = 0; i < lengthOfNationalNumber; i++) + { + tempNationalNumber = [self inputDigitHelper_:[NSString stringWithFormat: @"%C", [nationalNumber characterAtIndex:i]]]; + } + return self.ableToFormat_ ? [self appendNationalNumber_:tempNationalNumber] : self.accruedInput_; + } else { + return self.prefixBeforeNationalNumber_; + } +}; + + +/** + * @return {BOOL} YES if the current country is a NANPA country and the + * national number begins with the national prefix. + * @private + */ +- (BOOL)isNanpaNumberWithNationalPrefix_ +{ + // For NANPA numbers beginning with 1[2-9], treat the 1 as the national + // prefix. The reason is that national significant numbers in NANPA always + // start with [2-9] after the national prefix. Numbers beginning with 1[01] + // can only be short/emergency numbers, which don't need the national prefix. + if (![self.currentMetaData_.countryCode isEqual:@1]) { + return NO; + } + + /** @type {string} */ + NSString *nationalNumber = [self.nationalNumber_ copy]; + return ([nationalNumber characterAtIndex:0] == '1') && ([nationalNumber characterAtIndex:1] != '0') && + ([nationalNumber characterAtIndex:1] != '1'); +}; + + +/** + * Returns the national prefix extracted, or an empty string if it is not + * present. + * @return {string} + * @private + */ +- (NSString*)removeNationalPrefixFromNationalNumber_ +{ + /** @type {string} */ + NSString *nationalNumber = [self.nationalNumber_ copy]; + /** @type {number} */ + unsigned int startOfNationalNumber = 0; + + if ([self isNanpaNumberWithNationalPrefix_]) { + startOfNationalNumber = 1; + [self.prefixBeforeNationalNumber_ appendString:@"1"]; + [self.prefixBeforeNationalNumber_ appendFormat:@"%@", self.SEPARATOR_BEFORE_NATIONAL_NUMBER_]; + self.isCompleteNumber_ = YES; + } + else if (self.currentMetaData_.nationalPrefixForParsing != nil && self.currentMetaData_.nationalPrefixForParsing.length > 0) + { + /** @type {RegExp} */ + NSString *nationalPrefixForParsing = [NSString stringWithFormat:@"^(?:%@)", self.currentMetaData_.nationalPrefixForParsing]; + /** @type {Array.} */ + NSArray *m = [self.phoneUtil_ matchedStringByRegex:nationalNumber regex:nationalPrefixForParsing]; + NSString *firstString = [m safeObjectAtIndex:0]; + if (m != nil && firstString != nil && firstString.length > 0) { + // When the national prefix is detected, we use international formatting + // rules instead of national ones, because national formatting rules could + // contain local formatting rules for numbers entered without area code. + self.isCompleteNumber_ = YES; + startOfNationalNumber = (unsigned int)firstString.length; + [self.prefixBeforeNationalNumber_ appendString:[nationalNumber substringWithRange:NSMakeRange(0, startOfNationalNumber)]]; + } + } + + self.nationalNumber_ = [NSMutableString stringWithString:@""]; + [self.nationalNumber_ appendString:[nationalNumber substringFromIndex:startOfNationalNumber]]; + return [nationalNumber substringWithRange:NSMakeRange(0, startOfNationalNumber)]; +}; + + +/** + * Extracts IDD and plus sign to prefixBeforeNationalNumber when they are + * available, and places the remaining input into nationalNumber. + * + * @return {BOOL} YES when accruedInputWithoutFormatting begins with the + * plus sign or valid IDD for defaultCountry. + * @private + */ +- (BOOL)attemptToExtractIdd_ +{ + /** @type {string} */ + NSString *accruedInputWithoutFormatting = [self.accruedInputWithoutFormatting_ copy]; + /** @type {RegExp} */ + NSString *internationalPrefix = [NSString stringWithFormat:@"^(?:\\+|%@)", self.currentMetaData_.internationalPrefix]; + /** @type {Array.} */ + NSArray *m = [self.phoneUtil_ matchedStringByRegex:accruedInputWithoutFormatting regex:internationalPrefix]; + + NSString *firstString = [m safeObjectAtIndex:0]; + + if (m != nil && firstString != nil && firstString.length > 0) { + self.isCompleteNumber_ = YES; + /** @type {number} */ + unsigned int startOfCountryCallingCode = (unsigned int)firstString.length; + self.nationalNumber_ = [NSMutableString stringWithString:@""]; + [self.nationalNumber_ appendString:[accruedInputWithoutFormatting substringFromIndex:startOfCountryCallingCode]]; + self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; + [self.prefixBeforeNationalNumber_ appendString:[accruedInputWithoutFormatting substringWithRange:NSMakeRange(0, startOfCountryCallingCode)]]; + + if ([accruedInputWithoutFormatting characterAtIndex:0] != '+') + { + [self.prefixBeforeNationalNumber_ appendString:[NSString stringWithFormat: @"%@", self.SEPARATOR_BEFORE_NATIONAL_NUMBER_]]; + } + return YES; + } + return NO; +}; + + +/** + * Extracts the country calling code from the beginning of nationalNumber to + * prefixBeforeNationalNumber when they are available, and places the remaining + * input into nationalNumber. + * + * @return {BOOL} YES when a valid country calling code can be found. + * @private + */ +- (BOOL)attemptToExtractCountryCallingCode_ +{ + if (self.nationalNumber_.length == 0) { + return NO; + } + + /** @type {!goog.string.StringBuffer} */ + NSString *numberWithoutCountryCallingCode = @""; + + /** @type {number} */ + NSNumber *countryCode = [self.phoneUtil_ extractCountryCode:self.nationalNumber_ nationalNumber:&numberWithoutCountryCallingCode]; + + if ([countryCode isEqualToNumber:@0]) { + return NO; + } + + self.nationalNumber_ = [NSMutableString stringWithString:@""]; + [self.nationalNumber_ appendString:numberWithoutCountryCallingCode]; + + /** @type {string} */ + NSString *newRegionCode = [self.phoneUtil_ getRegionCodeForCountryCode:countryCode]; + + if ([NB_REGION_CODE_FOR_NON_GEO_ENTITY isEqualToString:newRegionCode]) { + self.currentMetaData_ = [NBMetadataHelper getMetadataForNonGeographicalRegion:countryCode]; + } else if (newRegionCode != self.defaultCountry_) + { + self.currentMetaData_ = [self getMetadataForRegion_:newRegionCode]; + } + + /** @type {string} */ + NSString *countryCodeString = [NSString stringWithFormat:@"%@", countryCode]; + [self.prefixBeforeNationalNumber_ appendString:countryCodeString]; + [self.prefixBeforeNationalNumber_ appendString:[NSString stringWithFormat: @"%@", self.SEPARATOR_BEFORE_NATIONAL_NUMBER_]]; + return YES; +}; + + +/** + * Accrues digits and the plus sign to accruedInputWithoutFormatting for later + * use. If nextChar contains a digit in non-ASCII format (e.g. the full-width + * version of digits), it is first normalized to the ASCII version. The return + * value is nextChar itself, or its normalized version, if nextChar is a digit + * in non-ASCII format. This method assumes its input is either a digit or the + * plus sign. + * + * @param {string} nextChar + * @param {BOOL} rememberPosition + * @return {string} + * @private + */ +- (NSString*)normalizeAndAccrueDigitsAndPlusSign_:(NSString *)nextChar rememberPosition:(BOOL)rememberPosition +{ + /** @type {string} */ + NSString *normalizedChar; + + if ([nextChar isEqualToString:@"+"]) { + normalizedChar = nextChar; + [self.accruedInputWithoutFormatting_ appendString:nextChar]; + } else { + normalizedChar = [[self.phoneUtil_ DIGIT_MAPPINGS] objectForKey:nextChar]; + if (!normalizedChar) return @""; + + [self.accruedInputWithoutFormatting_ appendString:normalizedChar]; + [self.nationalNumber_ appendString:normalizedChar]; + } + + if (rememberPosition) { + self.positionToRemember_ = self.accruedInputWithoutFormatting_.length; + } + + return normalizedChar; +}; + + +/** + * @param {string} nextChar + * @return {string} + * @private + */ +- (NSString*)inputDigitHelper_:(NSString *)nextChar +{ + /** @type {string} */ + NSString *formattingTemplate = [self.formattingTemplate_ copy]; + NSString *subedString = @""; + + if (formattingTemplate.length > self.lastMatchPosition_) { + subedString = [formattingTemplate substringFromIndex:self.lastMatchPosition_]; + } + + if ([self.phoneUtil_ stringPositionByRegex:subedString regex:self.DIGIT_PLACEHOLDER_] >= 0) { + /** @type {number} */ + int digitPatternStart = [self.phoneUtil_ stringPositionByRegex:formattingTemplate regex:self.DIGIT_PLACEHOLDER_]; + + /** @type {string} */ + NSRange tempRange = [formattingTemplate rangeOfString:self.DIGIT_PLACEHOLDER_]; + NSString *tempTemplate = [formattingTemplate stringByReplacingOccurrencesOfString:self.DIGIT_PLACEHOLDER_ + withString:nextChar + options:NSLiteralSearch + range:tempRange]; + self.formattingTemplate_ = [NSMutableString stringWithString:@""]; + [self.formattingTemplate_ appendString:tempTemplate]; + self.lastMatchPosition_ = digitPatternStart; + return [tempTemplate substringWithRange:NSMakeRange(0, self.lastMatchPosition_ + 1)]; + } else { + if (self.possibleFormats_.count == 1) + { + // More digits are entered than we could handle, and there are no other + // valid patterns to try. + self.ableToFormat_ = NO; + } // else, we just reset the formatting pattern. + self.currentFormattingPattern_ = @""; + return self.accruedInput_; + } +}; + + +/** + * Returns the formatted number. + * + * @return {string} + */ +- (NSString *)description { + return self.currentOutput_; +} + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h new file mode 100644 index 0000000..3aa2935 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h @@ -0,0 +1,762 @@ +#import +#import "NBPhoneMetaData.h" + +@interface NBPhoneMetadataIM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataHR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataHT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLB : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataHU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIQ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataJM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataJO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataJP : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLI : NBPhoneMetaData +@end + +@interface NBPhoneMetadata881 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataME : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLK : NBPhoneMetaData +@end + +@interface NBPhoneMetadata882 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKP : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMH : NBPhoneMetaData +@end + +@interface NBPhoneMetadata883 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataML : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMP : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataKZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMQ : NBPhoneMetaData +@end + +@interface NBPhoneMetadata888 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLV : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataQA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataLY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNP : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMV : NBPhoneMetaData +@end + +@interface NBPhoneMetadataOM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMX : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataMZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataRE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSB : NBPhoneMetaData +@end + +@interface NBPhoneMetadataNZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSJ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataUA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataRO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataPY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataRS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTJ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataUG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataRU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVC : NBPhoneMetaData +@end + +@interface NBPhoneMetadata870 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataRW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataST : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSV : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSX : NBPhoneMetaData +@end + +@interface NBPhoneMetadataWF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataSZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTV : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataUS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadata878 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataYE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataZA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataUY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataVU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataUZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataWS : NBPhoneMetaData +@end + +@interface NBPhoneMetadata979 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataZM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataYT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBB : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataZW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBJ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBL : NBPhoneMetaData +@end + +@interface NBPhoneMetadata800 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataDE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataEC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBQ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataEE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataDJ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAX : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataDK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataEG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataAZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataEH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataDM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataDO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGB : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataBZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCV : NBPhoneMetaData +@end + +@interface NBPhoneMetadata808 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataFI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCW : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataFJ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCX : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGF : NBPhoneMetaData +@end + +@interface NBPhoneMetadataFK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataCZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGH : NBPhoneMetaData +@end + +@interface NBPhoneMetadataFM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataER : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGI : NBPhoneMetaData +@end + +@interface NBPhoneMetadataES : NBPhoneMetaData +@end + +@interface NBPhoneMetadataFO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataET : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataDZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGM : NBPhoneMetaData +@end + +@interface NBPhoneMetadataID : NBPhoneMetaData +@end + +@interface NBPhoneMetadataFR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataHK : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGP : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGQ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataHN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataJE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataGU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataIL : NBPhoneMetaData +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m new file mode 100644 index 0000000..cc8a210 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m @@ -0,0 +1,14078 @@ +#import "NBMetadataCore.h" +#import "NBPhoneNumberDefines.h" +#import "NBPhoneNumberDesc.h" + +#import "NBNumberFormat.h" + +@implementation NBPhoneMetadataIM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135789]\\d{6,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1624\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1624456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[569]24\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7924123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808162\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8081624567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:872299|90[0167]624)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9016247890"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:40[49]06|5624\\d)|70624\\d)\\d{3}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8456247890"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:08162\\d|3\\d{5}|4(?:40[49]06|5624\\d)|7(?:0624\\d|2299\\d))\\d{3}|55\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"IM"; + self.countryCode = [NSNumber numberWithInteger:44]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" x"; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataHR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{5,8}|[89]\\d{6,11}" withPossibleNumberPattern:@"\\d{6,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1257-9]\\d{6,10}" withPossibleNumberPattern:@"\\d{8,12}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[01]\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:[09]\\d{7}|[145]\\d{4,7})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"611234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[45]\\d{4,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"741234567"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"62\\d{6,7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"62123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"HR"; + self.countryCode = [NSNumber numberWithInteger:385]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6[09]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6[09])(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"62"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(62)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[2-5]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([2-5]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3,4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"6[145]|7"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"6[145]|7"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(80[01])(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(80[01])(\\d{3,4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats10]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-79]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:2[0125]|3[1245]|4[12]|5[1-4]|70|9[1-467])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[5-7]\\d|9[012])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"40\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4012345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GW"; + self.countryCode = [NSNumber numberWithInteger:245]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7,12}|[2-9]\\d{9,10}" withPossibleNumberPattern:@"\\d{6,13}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:11|2[02]|33|4[04]|79)[2-7]\\d{7}|80[2-467]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|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(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|[57][2-689]|6[24-578]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-7]\\d{5}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7(?:0(?:2[2-9]|[3-8]\\d|9[0-8])|2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[1-9]|[58]\\d|7[3679]|9[689])|4(?:0[1-9]|1[15-9]|[29][89]|39|8[389])|5(?:[034678]\\d|2[03-9]|5[017-9]|9[7-9])|6(?:0[0127]|1[0-257-9]|2[0-4]|3[19]|5[4589]|[6-9]\\d)|7(?:0[2-9]|[1-79]\\d|8[1-9])|8(?:[0-7]\\d|9[013-9]))|8(?:0(?:[01589]\\d|6[67])|1(?:[02-589]\\d|1[0135-9]|7[0-79])|2(?:[236-9]\\d|5[1-9])|3(?:[0357-9]\\d|4[1-9])|[45]\\d{2}|6[02457-9]\\d|7[1-69]\\d|8(?:[0-26-9]\\d|44|5[2-9])|9(?:[035-9]\\d|2[2-9]|4[0-8]))|9\\d{3})\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:600\\d{6}|80(?:0\\d{4,8}|3\\d{9}))" withPossibleNumberPattern:@"\\d{8,13}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"186[12]\\d{9}" withPossibleNumberPattern:@"\\d{13}" withExample:@"1861123456789"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1860\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"18603451234"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"140\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1409305260"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:600\\d{6}|8(?:0(?:0\\d{4,8}|3\\d{9})|6(?:0\\d{7}|[12]\\d{9})))" withPossibleNumberPattern:@"\\d{8,13}" withExample:@"1800123456"]; + self.codeID = @"IN"; + self.countryCode = [NSNumber numberWithInteger:91]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"7(?:0[2-9]|2[0579]|3[057-9]|4[0-389]|6[0-35-9]|[57]|8[0-79])|8(?:0[015689]|1[0-57-9]|2[2356-9]|3[0-57-9]|[45]|6[02457-9]|7[1-69]|8[0124-9]|9[02-9])|9"]; + [numberFormats0_patternArray addObject:@"7(?:0(?:2[2-9]|[3-8]|9[0-8])|2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[1-9]|[58]|7[3679]|9[689])|4(?:0[1-9]|1[15-9]|[29][89]|39|8[389])|5(?:[034678]|2[03-9]|5[017-9]|9[7-9])|6(?:0[0-27]|1[0-257-9]|2[0-4]|3[19]|5[4589]|[6-9])|7(?:0[2-9]|[1-79]|8[1-9])|8(?:[0-7]|9[013-9]))|8(?:0(?:[01589]|6[67])|1(?:[02-589]|1[0135-9]|7[0-79])|2(?:[236-9]|5[1-9])|3(?:[0357-9]|4[1-9])|[45]|6[02457-9]|7[1-69]|8(?:[0-26-9]|44|5[2-9])|9(?:[035-9]|2[2-9]|4[0-8]))|9"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"11|2[02]|33|4[04]|79|80[2-46]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1(?:2[0-249]|3[0-25]|4[145]|[569][14]|7[1257]|8[1346]|[68][1-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|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(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)"]; + [numberFormats3_patternArray addObject:@"7(?:12|2[14]|3[134]|4[47]|5(?:1|5[2-6])|[67]1|88)"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"1(?:[23579]|[468][1-9])|[2-8]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"160"]; + [numberFormats6_patternArray addObject:@"1600"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1600)(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"180"]; + [numberFormats7_patternArray addObject:@"1800"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"18[06]"]; + [numberFormats8_patternArray addObject:@"18[06]0"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(18[06]0)(\\d{2,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"140"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(140)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"18[06]"]; + [numberFormats10_patternArray addObject:@"18(?:03|6[12])"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats10]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20\\d{6,7}|[4-9]\\d{6,9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20\\d{6,7}|4(?:[0136]\\d{7}|[245]\\d{5,7})|5(?:[08]\\d{7}|[1-79]\\d{5,7})|6(?:[01457-9]\\d{5,7}|[26]\\d{7})" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"202012345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[0-36]\\d|5[0-6]|7[0-5]|8[0-25-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[24-8]\\d{5,6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"800223456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[02-9]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900223456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KE"; + self.countryCode = [NSNumber numberWithInteger:254]; + self.internationalPrefix = @"000"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[24-6]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[13]|3(?:0\\d|[14])|[5-7][14]|41|8[1468])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"21212862"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:2[2389]|5[4-689]|7[6-8]|9[15-9])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2023123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LA"; + self.countryCode = [NSNumber numberWithInteger:856]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"20"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(20)(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[13]|3[14]|[4-8]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-8]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"30"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(30)(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"37\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3709100"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"38\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3801234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"IO"; + self.countryCode = [NSNumber numberWithInteger:246]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataHT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-489]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[24]\\d|5[1-5]|94)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22453300"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[1-9]|4\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"34101234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"98[89]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"98901234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"HT"; + self.countryCode = [NSNumber numberWithInteger:509]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-4679]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6091234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:289|862)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2891234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9008\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9008123"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GY"; + self.countryCode = [NSNumber numberWithInteger:592]; + self.internationalPrefix = @"001"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLB +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[14-6]\\d{2}|7(?:[2-579]\\d|62|8[0-7])|[89][2-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"1123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3\\d|7(?:[019]\\d|6[013-9]|8[89]))\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"71123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[01]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[01]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LB"; + self.countryCode = [NSNumber numberWithInteger:961]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[13-6]|7(?:[2-579]|62|8[0-7])|[89][2-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[89][01]|7(?:[019]|6[013-9]|8[89])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-8]\\d{8,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:1(?:[256]\\d|3[1-9]|47)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"312123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20[0-35]|5[124-7]\\d|7[07]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6,7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KG"; + self.countryCode = [NSNumber numberWithInteger:996]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[25-7]|31[25]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3(?:1[36]|[2-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d)(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataHU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|2(?:1\\d|[2-9])|3[2-7]|4[24-9]|5[2-79]|6[23689]|7(?:1\\d|[2-9])|8[2-57-9]|9[2-69])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[27]0|3[01])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"201234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[01]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"40\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[48]0\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.codeID = @"HU"; + self.countryCode = [NSNumber numberWithInteger:36]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"06"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"06"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"758(?:4(?:30|5[0-9]|6[2-9]|8[0-2])|57[0-2]|638)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7584305678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2[0-8]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7582845678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LC"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"758"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIQ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[3-9]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"IQ"; + self.countryCode = [NSNumber numberWithInteger:964]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-6]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-6]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:[237-9]|4[56]|5\\d|6\\d?)\\d{5}|23(?:4[234]|8\\d{2})\\d{4}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"23756789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:[013-9]|2\\d?)|3[18]\\d|6[016-9]|7(?:[07-9]|6\\d)|8(?:[013-79]|8\\d)|9(?:6\\d|7\\d?|[0-589]))\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"91234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800(?:1\\d|2[019])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900(?:1\\d|2[09])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KH"; + self.countryCode = [NSNumber numberWithInteger:855]; + self.internationalPrefix = @"00[14-9]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1\\d[1-9]|[2-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[89]0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataJM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027-9]|[23]\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8765123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"876(?:2[1789]\\d|[348]\\d{2}|5(?:0[3-9]|27|6[0-24-9]|[3-578]\\d)|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8762101234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"JM"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"876"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-8]\\d{9}|9(?:[0-4]\\d{8}|9\\d{2,8})" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[137]|2[13-68]|3[1458]|4[145]|5[146-8]|6[146]|7[1467]|8[13467])\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[12]|[1-3]\\d)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-6]0\\d|993)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9932123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"943\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9432123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9990\\d{0,6}" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"9990123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"IR"; + self.countryCode = [NSNumber numberWithInteger:98]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"21"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[1-8]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2458]\\d{4}|3\\d{4,7}|7\\d{7}" withPossibleNumberPattern:@"\\d{5,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[24]\\d|3[1-9]|50|8[0-5])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"31234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[24]\\d|3[1-9]|8[0-5])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"72012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3001\\d{4}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"30010000"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KI"; + self.countryCode = [NSNumber numberWithInteger:686]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4-9]\\d{6}|38\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4(?:1[0-24-6]|2[0-7]|[37][0-8]|4[0-245]|5[0-3568]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[013-7]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|87[23])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4101234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"38[589]\\d{6}|(?:6(?:1[1-8]|3[089]|4[0167]|5[019]|[67][0-69]|9\\d)|7(?:5[057]|7\\d|8[0-36-8])|8(?:2[0-5]|3[0-4]|[469]\\d|5[1-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"6111234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9011234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"49\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4921234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6(?:2[0-8]|49|8\\d)|87[0189]|95[48])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6201234"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"IS"; + self.countryCode = [NSNumber numberWithInteger:354]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[4-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(3\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:2(?:(?:[015-7]\\d|2[2-9]|3[2-57]|4[2-8]|8[235-7])\\d|9(?:0\\d|[89]0))|3(?:(?:[0-4]\\d|[57][2-9]|6[235-8]|9[3-9])\\d|8(?:0\\d|[89]0)))\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"520123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:0[0-8]|[12-79]\\d|8[01])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"650123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MA"; + self.countryCode = [NSNumber numberWithInteger:212]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"5(?:2[015-7]|3[0-4])|6"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([56]\\d{2})(\\d{6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"5(?:2[2-489]|3[5-9])|892"]; + [numberFormats1_patternArray addObject:@"5(?:2(?:[2-48]|90)|3(?:[5-79]|80))|892"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([58]\\d{3})(\\d{5})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"5(?:29|38)"]; + [numberFormats2_patternArray addObject:@"5(?:29|38)[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8(?:0|9[013-9])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(8[09])(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataJO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:6(?:2[0-35-9]|3[0-57-8]|4[24-7]|5[0-24-8]|[6-8][02]|9[0-2])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-2]|[57][02]|60)|53(?:0[0-2]|[13][02]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2[50]0|300|4(?:0[0125]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[17-8]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[02-39]))|87(?:[02]0|7[08]|9[09]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"62001234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:55|7[25-9]|8[05-9]|9[015-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"790123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85012345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"74(?:66|77)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"746612345"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:10|8\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88101234"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"JO"; + self.countryCode = [NSNumber numberWithInteger:962]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2356]|87"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7[457-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"70|8[0158]|9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0(?:[26]\\d{4,9}|(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|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])|7(?:[0159]\\d|2[12]|3[1-7]|4[2346]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[34578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7})" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"0212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"3123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0\\d{6}|3\\d{3})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|4(?:[0-4]\\d{2}|[5-9]\\d{4})|5(?:[0-4]\\d{2}|[5-9]\\d{6})|9\\d{6})" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"899123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"84(?:[08]\\d{6}|[17]\\d{3})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"848123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:78\\d|99)\\d{6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1781234567"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"55\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"848\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"848123456"]; + self.codeID = @"IT"; + self.countryCode = [NSNumber numberWithInteger:39]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"0[26]|55"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"0[26]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0[26])(\\d{4})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"0[26]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(0[26])(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"0[13-57-9][0159]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"0[13-57-9][0159]|8(?:03|4[17]|9[245])"]; + [numberFormats4_patternArray addObject:@"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"0[13-57-9][2-46-8]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"0[13-57-9][2-46-8]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d{3})(\\d{2,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"[13]|8(?:00|4[08]|9[59])"]; + [numberFormats7_patternArray addObject:@"[13]|8(?:00|4[08]|9(?:5[5-9]|9))"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"894"]; + [numberFormats8_patternArray addObject:@"894[5-9]"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataJP +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8,9}|00(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})" withPossibleNumberPattern:@"\\d{8,17}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"312345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[7-9]0[1-9]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"120\\d{6}|800\\d{7}|00(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})" withPossibleNumberPattern:@"\\d{8,17}" withExample:@"120123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"990\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"990123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"601234567"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"50[1-9]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2012345678"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"570\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"570123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"00(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})" withPossibleNumberPattern:@"\\d{8,17}" withExample:@"00777012"]; + self.codeID = @"JP"; + self.countryCode = [NSNumber numberWithInteger:81]; + self.internationalPrefix = @"010"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"(?:12|57|99)0"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"800"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"0077"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"0077"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{3,4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"0088"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"00(?:37|66)"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3,4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"00(?:37|66)"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})(\\d{4,5})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"00(?:37|66)"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{5})(\\d{5,6})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"00(?:37|66)"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{6})(\\d{6,7})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"[2579]0|80[1-9]"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])"]; + [numberFormats10_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; + [numberFormats10_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats10]; + + NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; + [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])"]; + [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))"]; + [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; + [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; + NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats11]; + + NSMutableArray *numberFormats12_patternArray = [[NSMutableArray alloc] init]; + [numberFormats12_patternArray addObject:@"1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)"]; + [numberFormats12_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])"]; + [numberFormats12_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]; + NBNumberFormat *numberFormats12 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats12_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats12]; + + NSMutableArray *numberFormats13_patternArray = [[NSMutableArray alloc] init]; + [numberFormats13_patternArray addObject:@"2(?:9[14-79]|74|[34]7|[56]9)|82|993"]; + NBNumberFormat *numberFormats13 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats13_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats13]; + + NSMutableArray *numberFormats14_patternArray = [[NSMutableArray alloc] init]; + [numberFormats14_patternArray addObject:@"3|4(?:2[09]|7[01])|6[1-9]"]; + NBNumberFormat *numberFormats14 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats14_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats14]; + + NSMutableArray *numberFormats15_patternArray = [[NSMutableArray alloc] init]; + [numberFormats15_patternArray addObject:@"[2479][1-9]"]; + NBNumberFormat *numberFormats15 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats15_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats15]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"(?:12|57|99)0"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"800"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"[2579]0|80[1-9]"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])"]; + [intlNumberFormats3_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; + [intlNumberFormats3_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])"]; + [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))"]; + [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; + [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + + NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats5_patternArray addObject:@"1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)"]; + [intlNumberFormats5_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])"]; + [intlNumberFormats5_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]; + NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; + + NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats6_patternArray addObject:@"2(?:9[14-79]|74|[34]7|[56]9)|82|993"]; + NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; + + NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats7_patternArray addObject:@"3|4(?:2[09]|7[01])|6[1-9]"]; + NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; + + NSMutableArray *intlNumberFormats8_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats8_patternArray addObject:@"[2479][1-9]"]; + NBNumberFormat *intlNumberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats8]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataMC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4689]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"870\\d{5}|9[2-47-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"99123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{8}|4(?:4\\d|5[2-9])\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"612345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.codeID = @"MC"; + self.countryCode = [NSNumber numberWithInteger:377]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"4"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6)(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[379]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:6[0-37-9]|7[0-57-9])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7712345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[234]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3212345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:39[01]|9[01]0)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9001234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KM"; + self.countryCode = [NSNumber numberWithInteger:269]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:1[0569]|2\\d|3[015-7]|4[1-46-9]|5[0-24689]|6[2-589]|7[1-37]|9[1347-9])|5(?:33|5[257]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:562\\d|6(?:[089]\\d{2}|1[01]\\d|21\\d|50\\d|7(?:[1-6]\\d|7[0-4]))|7(?:6[07]|7[457-9]|[89]\\d)\\d)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"65012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[056]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80812345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[08]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"30123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:03|14)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80312345"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MD"; + self.countryCode = [NSNumber numberWithInteger:373]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"22|3"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[13-79]|[5-7]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([25-7]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{8}|[23789]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:01|1[27]|3\\d|6[02-578]|96)|3(?:7[0135-7]|8[048]|9[0269]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:51[01]|6(?:[01][0-4]|2[016-9]|88)|710)\\d{5}|7(?:36|4[25]|56|[7-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"661234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0(?:2[238]|79)|9\\d{2})\\d{2}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8002222"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90(?:0(?:2[278]|79)|1(?:23|3[012])|6(?:4\\d|6[0126]))\\d{2}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9002222"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"701\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7011234"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"87(?:0[128]|7[0-4])\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8770123"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"697(?:[35]6|4[25]|[7-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"697361234"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LI"; + self.countryCode = [NSNumber numberWithInteger:423]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[23]|7[3-57-9]|87"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"6[567]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6[567]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"697"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(69)(7\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[7-9]0"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]0\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"[89]0"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([89]0\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata881 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"612345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:881]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[67]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"869(?:2(?:29|36)|302|4(?:6[015-9]|70))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8692361234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"869(?:5(?:5[6-8]|6[5-7])|66\\d|76[02-6])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8697652917"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KN"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"869"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataME +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20[2-8]|3(?:0[2-7]|1[35-7]|2[3567]|3[4-7])|4(?:0[237]|1[27])|5(?:0[47]|1[27]|2[378]))\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"30234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:32\\d|[89]\\d{2}|7(?:[0-8]\\d|9(?:[3-9]|[0-2]\\d)))\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"67622901"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[28]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80080002"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:88\\d|9(?:4[13-8]|5[16-8]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"94515151"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"78[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"78108780"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"77\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77273012"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ME"; + self.countryCode = [NSNumber numberWithInteger:382]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-57-9]|6[3789]"]; + [numberFormats0_patternArray addObject:@"[2-57-9]|6(?:[389]|7(?:[0-8]|9[3-9]))"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"679"]; + [numberFormats1_patternArray addObject:@"679[0-2]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(67)(9)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[68]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:1(?:17|2(?:[0189]\\d|[2-6]|7\\d?)|3(?:[01378]|2\\d)|4[01]|69|7[014])|2(?:17|5(?:[0-36-8]|4\\d?)|69|70)|3(?:17|2(?:[0237]\\d?|[14-689])|34|6[29]|7[01]|81)|4(?:17|2(?:[012]|7?)|4(?:[06]|1\\d)|5(?:[01357]|[25]\\d?)|69|7[01])|5(?:17|2(?:[0459]|[23678]\\d?)|69|7[01])|6(?:17|2(?:5|6\\d?)|38|42|69|7[01])|7(?:17|2(?:[569]|[234]\\d?)|3(?:0\\d?|[13])|69|7[01]))\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"61221234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:60|8[125])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"811234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8701\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"870123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:3\\d{2}|86)\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"88612345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NA"; + self.countryCode = [NSNumber numberWithInteger:264]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"8[1235]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6\\d)(\\d{2,3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"88"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(88)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"870"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(870)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"590(?:[02][79]|13|5[0-268]|[78]7)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"590271234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"690(?:0[0-7]|[1-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690301234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MF"; + self.countryCode = [NSNumber numberWithInteger:590]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[189]1|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"112345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[125-8]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LK"; + self.countryCode = [NSNumber numberWithInteger:94]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-689]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{1})(\\d{6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata882 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]\\d{6,11}" withPossibleNumberPattern:@"\\d{7,12}" withExample:@"3451234567"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"3451234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:2\\d{3}|37\\d{2}|4(?:2|7\\d{3}))\\d{4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"3451234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15678]|9[0689])\\d{4}|6\\d{5,10})|345\\d{7}" withPossibleNumberPattern:@"\\d{7,12}" withExample:@"3451234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"348[57]\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"3451234567"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:882]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"3[23]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"16|342"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"34[57]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"348"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"16"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"16"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,5})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKP +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{9}|[28]\\d{7}" withPossibleNumberPattern:@"\\d{6,8}|\\d{10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}|85\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"19[123]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1921234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"23821234"]; + self.codeID = @"KP"; + self.countryCode = [NSNumber numberWithInteger:850]; + self.internationalPrefix = @"00|99"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:2\\d{2}|4[47]\\d|5[3467]\\d|6[279]\\d|7(?:2[29]|[35]\\d)|8[268]\\d|9[245]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"202123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[2-49]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"321234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"221234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MG"; + self.countryCode = [NSNumber numberWithInteger:261]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([23]\\d)(\\d{2})(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[0-4]|[79]\\d|8[0-79])\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"751234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"36\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"366711"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NC"; + self.countryCode = [NSNumber numberWithInteger:687]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-46-9]|5[0-4]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1.$2.$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:247|528|625)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2471234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:235|329|45[56]|545)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2351234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"635\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6351234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MH"; + self.countryCode = [NSNumber numberWithInteger:692]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata883 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"51\\d{7}(?:\\d{3})?" withPossibleNumberPattern:@"\\d{9}(?:\\d{3})?" withExample:@"510012345"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"510012345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"510012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"51(?:00\\d{5}(?:\\d{3})?|[13]0\\d{8})" withPossibleNumberPattern:@"\\d{9}(?:\\d{3})?" withExample:@"510012345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:883]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"510"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"510"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"51[13]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{3,9}|8\\d{8}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2|3[1-3]|[46][1-4]|5[1-5])(?:1\\d{2,3}|[1-9]\\d{6,7})" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[0-26-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1023456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"602345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"50\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"15\\d{7,8}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1523456789"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|55|77|99))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"15441234"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KR"; + self.countryCode = [NSNumber numberWithInteger:82]; + self.internationalPrefix = @"00(?:[124-68]|[37]\\d{2})"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0(8[1-46-8]|85\\d{2})?"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5[458])|[57]0"]; + [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][1-9]"]; + [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][1-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"131"]; + [numberFormats2_patternArray addObject:@"1312"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"131"]; + [numberFormats3_patternArray addObject:@"131[13-9]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"13[2-9]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"30"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"2[1-9]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3,4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"21[0-46-9]"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3,4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"[3-6][1-9]1"]; + [numberFormats8_patternArray addObject:@"[3-6][1-9]1(?:[0-46-9])"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"1(?:5[46-9]|6[04678]|8[0579])"]; + [numberFormats9_patternArray addObject:@"1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|55|77|99))"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; + [numberFormats_FormatArray addObject:numberFormats9]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[0289]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:89|9\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"93123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"08\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"08123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"09\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"09123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NE"; + self.countryCode = [NSNumber numberWithInteger:227]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[289]|09"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"08"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(08)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataNF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]\\d{5}" withPossibleNumberPattern:@"\\d{5,6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}" withPossibleNumberPattern:@"\\d{5,6}" withExample:@"106609"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[58]\\d{4}" withPossibleNumberPattern:@"\\d{5,6}" withExample:@"381234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NF"; + self.countryCode = [NSNumber numberWithInteger:672]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-578]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[23]\\d|5[124578]|6[01])|3(?:1[3-6]|[23][2-6]|4[2356])|4(?:[23][2-6]|4[3-6]|5[256]|6[25-8]|7[24-6]|8[4-6]))\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"22212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[0-25-8]\\d{2}|32\\d|421)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"72345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[02-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:0[1-9]|[1-9]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MK"; + self.countryCode = [NSNumber numberWithInteger:389]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[347]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([347]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[58]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([58]\\d{2})(\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-6]\\d{5,8}|9\\d{5,9}|[78]\\d{5,13}" withPossibleNumberPattern:@"\\d{5,14}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12]\\d{6,7}|9(?:0[3-9]|[1-9]\\d)\\d{5}|(?:3\\d|4[023568]|5[02368]|6[02-469]|7[4-69]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:7[34]\\d|8(?:04|[124579]\\d|8[0-3])|95\\d)|287[0-7]|3(?:18[1-8]|88[0-7]|9(?:8[5-9]|6[1-5]))|4(?:28[0-2]|6(?:7[1-9]|8[02-47])|88[0-2])|5(?:2(?:7[7-9]|8\\d)|38[1-79]|48[0-7]|68[4-7])|6(?:2(?:7[7-9]|8\\d)|4(?:3[7-9]|[68][129]|7[04-69]|9[1-8])|58[0-2]|98[7-9])|7(?:38[0-7]|69[1-8]|78[2-4])|8(?:28[3-9]|38[0-2]|4(?:2[12]|3[147-9]|5[346]|7[4-9]|8[014-689]|90)|58[1-8]|78[2-9]|88[5-7])|98[07]\\d)\\d{4}|(?:70(?:[13-9]\\d|2[1-9])|8(?:0[2-9]|1\\d)\\d|90[2359]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"8021234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7,11}" withPossibleNumberPattern:@"\\d{10,14}" withExample:@"80017591759"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{7,11}" withPossibleNumberPattern:@"\\d{10,14}" withExample:@"7001234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NG"; + self.countryCode = [NSNumber numberWithInteger:234]; + self.internationalPrefix = @"009"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[129]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([129])(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[3-6]|7(?:[1-79]|0[1-9])|8[2-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"70|8[01]|90[2359]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[78]00"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([78]00)(\\d{4})(\\d{4,5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[78]00"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([78]00)(\\d{5})(\\d{5,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"78"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(78)(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataML +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[246-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0(?:2[0-589]|7\\d)|1(?:2[5-7]|[3-689]\\d|7[2-4689]))|44[239]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{7}|9[0-25-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"65012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ML"; + self.countryCode = [NSNumber numberWithInteger:223]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[246-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"67|74"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[246-9]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[14578]\\d{5,7}|[26]\\d{5,8}|9(?:2\\d{0,2}|[58]|3\\d|4\\d{1,2}|6\\d?|[79]\\d{0,2})\\d{6}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:2\\d{1,2}|[3-5]\\d|6\\d?|[89][0-6]\\d)\\d{4}|2(?:[236-9]\\d{4}|4(?:0\\d{5}|\\d{4})|5(?:1\\d{3,6}|[02-9]\\d{3,5}))|4(?:2[245-8]|[346][2-6]|5[3-5])\\d{4}|5(?:2(?:20?|[3-8])|3[2-68]|4(?:21?|[4-8])|5[23]|6[2-4]|7[2-8]|8[24-7]|9[2-7])\\d{4}|6(?:0[23]|1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7(?:[2367]|4\\d|5\\d?|8[145]\\d)|8[245]|9[24])\\d{4}|7(?:[04][24-8]|[15][2-7]|22|3[2-4])\\d{4}|8(?:1(?:2\\d?|[3-689])|2[2-8]|3[24]|4[24-7]|5[245]|6[23])\\d{4}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"1234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"17[01]\\d{4}|9(?:2(?:[0-4]|5\\d{2})|3[136]\\d|4(?:0[0-4]\\d|[1379]\\d|[24][0-589]\\d|5\\d{2}|88)|5[0-6]|61?\\d|7(?:3\\d|9\\d{2})|8\\d|9(?:1\\d|7\\d{2}|[089]))\\d{5}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"92123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1333\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"13331234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MM"; + self.countryCode = [NSNumber numberWithInteger:95]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1|2[45]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"251"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"16|2"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"67|81"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[4-8]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"9(?:2[0-4]|[35-9]|4[13789])"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{4,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"94[0245]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9)(4\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"925"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}|[37-9]\\d{8}|[45]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:330\\d|4[67]|5\\d|77\\d{2}|88\\d{2}|994\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"770123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[03]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"332(?:0[02]|5\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"332001234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LR"; + self.countryCode = [NSNumber numberWithInteger:231]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[79]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([79]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[4-6]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([4-6])(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[38]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12578]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:5[0-7]\\d{5}|[78]\\d{6})|7[5-8]\\d{6}|8\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"18001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NI"; + self.countryCode = [NSNumber numberWithInteger:505]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12569]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:18\\d|2(?:[23]\\d{2}|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:[05]\\d|1[0-6])|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[0369])|9(?:0[09]|4[049]|55|6[069]|[79]\\d|8[089]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KW"; + self.countryCode = [NSNumber numberWithInteger:965]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1269]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5[015]\\d)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12]\\d{7,9}|[57-9]\\d{7}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12](?:1\\d|2(?:[1-3]\\d?|7\\d)|3[2-8]\\d{1,2}|4[2-68]\\d{1,2}|5[1-4689]\\d{1,2})\\d{5}|5[0568]\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"50123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8[689]|9[013-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[05-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"75123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MN"; + self.countryCode = [NSNumber numberWithInteger:976]; + self.internationalPrefix = @"001"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[12]1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d)(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[12]2[1-3]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([12]2\\d)(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[12](?:27|[3-5])"]; + [numberFormats2_patternArray addObject:@"[12](?:27|[3-5]\\d)2"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[57-9]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[12](?:27|[3-5])"]; + [numberFormats4_patternArray addObject:@"[12](?:27|[3-5]\\d)[4-9]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d{4})(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2568]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[256]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80021234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LS"; + self.countryCode = [NSNumber numberWithInteger:266]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:0[02-579]|19|2[37]|3[03]|4[479]|57|65|7[016-8]|8[58]|9[1349])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:[09]\\d|1[14-7]|2[0-3]|3[03]|4[0457]|5[56]|6[068]|7[06-8]|8[089])|4(?:3[013-69]|4\\d|7[0-689])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-267]|3[06]|[49]0|5[06-9]|7[0-24-7]|8[89])|8(?:[34]\\d|5[0-4]|8[02])|9(?:0[6-8]|1[016-8]|2[036-8]|3[3679]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2001234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[16]1|21[89]|8(?:1[01]|7[23]))\\d{4}|6(?:[024-9]\\d|1[0-5]|3[0-24-9])\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"60012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[09]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:779|8(?:2[235]|55|60|7[578]|86|95)|9(?:0[0-2]|81))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8601234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PA"; + self.countryCode = [NSNumber numberWithInteger:507]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-57-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"28212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[236]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"66123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MO"; + self.countryCode = [NSNumber numberWithInteger:853]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([268]\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[1478]|4[124-6]|52)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"31234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"61234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[0239]|10)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80812345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[67]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70712345"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LT"; + self.countryCode = [NSNumber numberWithInteger:370]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"[08]"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"37|4(?:1|5[45]|6[2-4])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([34]\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(8-$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3[148]|4(?:[24]|6[09])|528|6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-6]\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(8-$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[7-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"52[0-79]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(5)(2\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(8-$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"3452221234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"345(?:32[1-9]|5(?:1[67]|2[5-7]|4[6-8]|76)|9(?:1[67]|2[3-9]|3[689]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3453231234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}|345976\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"345849\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3458491234"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KY"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"345"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMP +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[589]|8[3-9]8|989)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6702345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[589]|8[3-9]8|989)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6702345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MP"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"670"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[259]\\d{2,9}|[346-8]\\d{4}(?:\\d{2})?)|(?:[3457]\\d{2}|8(?:0[2-9]|[13-9]\\d)|9(?:0[89]|[2-579]\\d))\\d{1,8})" withPossibleNumberPattern:@"\\d{4,11}" withExample:@"27123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[2679][18]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"628123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[01]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:1\\d{5}|[2-689]\\d{1,7})" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"20201234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LU"; + self.countryCode = [NSNumber numberWithInteger:352]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"(15(?:0[06]|1[12]|35|4[04]|55|6[26]|77|88|99)\\d)"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"20"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"2(?:[0367]|4[3-8])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"20"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"2(?:[0367]|4[3-8])"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"2(?:[12589]|4[12])|[3-5]|7[1-9]|[89](?:[1-9]|0[2-9])"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{1,4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"[89]0[01]|70"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats8]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0135-8]|2[02-69]|3[0-68]|4[0135-9]|[57]\\d|8[478])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"101234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[1-58]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[069]\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"9061234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"851234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"66\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"662345678"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"140(?:1(?:[035]|[16-8]\\d)|2(?:[0346]|[259]\\d)|3(?:[03568]|[124]\\d)|4(?:[0356]|[17-9]\\d)|5(?:[0358]|[124679]\\d)|7\\d|8[458])" withPossibleNumberPattern:@"\\d{5,6}" withExample:@"14020"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14\\d{3,4}" withPossibleNumberPattern:@"\\d{5,6}" withExample:nil]; + self.codeID = @"NL"; + self.countryCode = [NSNumber numberWithInteger:31]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7|8[4578]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-578]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-5]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"6[0-57-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6)(\\d{8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"66"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(66)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"14"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(14)(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"80|9"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([89]0\\d)(\\d{4,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataKZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:33\\d|7\\d{2}|80[09])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"33622\\d{5}|7(?:1(?:0(?:[23]\\d|4[023]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[1-79]|4[0-35-9]|59)|4(?:2\\d|3[013-79]|4[0-8]|5[1-79])|5(?:2\\d|3[1-8]|4[1-7]|59)|6(?:[234]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[234]\\d|5[139])|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[237]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59)))\\d{5}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:0[012578]|47|6[02-4]|7[15-8]|85)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7710009998"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"809\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8091234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"751\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7511234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"751\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7511234567"]; + self.codeID = @"KZ"; + self.countryCode = [NSNumber numberWithInteger:7]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = @"8~10"; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"8"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMQ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"596301234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"696(?:[0-479]\\d|5[01]|8[0-689])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"696201234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MQ"; + self.countryCode = [NSNumber numberWithInteger:596]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata888 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{11}" withPossibleNumberPattern:@"\\d{11}" withExample:@"12345678901"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678901"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678901"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{11}" withPossibleNumberPattern:@"\\d{11}" withExample:@"12345678901"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:888]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataLV +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2689]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[3-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"63123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LV"; + self.countryCode = [NSNumber numberWithInteger:371]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2689]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-48]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"25[08]\\d{5}|35\\d{6}|45[1-7]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"35123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:2\\d|70)|3(?:3\\d|6[1-36]|7[1-3])|4(?:[49]\\d|6[0457-9]|7[4-9]|8[01346-8]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MR"; + self.countryCode = [NSNumber numberWithInteger:222]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-48]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[14-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"11234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"805\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80512345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[24]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80212345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PE"; + self.countryCode = [NSNumber numberWithInteger:51]; + self.internationalPrefix = @"19(?:1[124]|77|90)00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" Anexo "; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[4-7]|8[2-4]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([4-8]\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"664491\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6644912345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"66449[2-6]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6644923456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MS"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"664"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataQA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4[04]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"44123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3567]\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"33123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[12]\\d|61)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"QA"; + self.countryCode = [NSNumber numberWithInteger:974]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[28]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([28]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[3-7]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-7]\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|[2-9]\\d{7}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[015-8]|5[89]|9\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40612345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[01]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"82[09]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"82012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810(?:0[0-6]|[2-8]\\d)\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81021234"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"880\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85[0-5]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85012345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:@"01234"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81[23]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81212345"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NO"; + self.countryCode = [NSNumber numberWithInteger:47]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[489]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([489]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[235-7]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([235-7]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataPF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{5,7}|8\\d{7}" withPossibleNumberPattern:@"\\d{6}(?:\\d{2})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4(?:[09][45689]\\d|4)\\d{4}" withPossibleNumberPattern:@"\\d{6}(?:\\d{2})?" withExample:@"40412345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[79]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"87123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"44\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"441234"]; + self.codeID = @"PF"; + self.countryCode = [NSNumber numberWithInteger:689]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"4[09]|8[79]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"44"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2357-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:0(?:1[0-6]|3[1-4]|[69]\\d)|[1-357]\\d{2})\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21001234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7(?:210|[79]\\d{2})|9(?:2(?:1[01]|31)|696|8(?:1[1-3]|89|97)|9\\d{2}))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"96961234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[3467]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80071234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:0(?:0(?:37|43)|6\\d{2}|70\\d|9[0168])|[12]\\d0[1-5])\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50037123"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3550\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"35501234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7117\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71171234"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"501\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50112345"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MT"; + self.countryCode = [NSNumber numberWithInteger:356]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataLY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[25679]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-6]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"LY"; + self.countryCode = [NSNumber numberWithInteger:218]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([25679]\\d)(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNP +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-8]\\d{7}|9(?:[1-69]\\d{6,8}|7[2-6]\\d{5,7}|8\\d{8})" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0-6]\\d|2[13-79][2-6]|3[135-8][2-6]|4[146-9][2-6]|5[135-7][2-6]|6[13-9][2-6]|7[15-9][2-6]|8[1-46-9][2-6]|9[1-79][2-6])\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"14567890"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:6[013]|7[245]|8[01456])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9841234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NP"; + self.countryCode = [NSNumber numberWithInteger:977]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1[2-6]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[01]|[2-8]|9(?:[1-69]|7[15-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9(?:6[013]|7[245]|8)"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{2})(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0-2]\\d|4[25]\\d|5[34]\\d|64[1-9]|77(?:[0-24]\\d|30)|85[02-46-9]|9[78]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20150|68\\d{2}|7(?:[0-369]\\d|75)\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"6812345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"180\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"1801234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"275\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2751234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PG"; + self.countryCode = [NSNumber numberWithInteger:675]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[13-689]|27"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"20|7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[03478]\\d|1[0-7]|6[1-69])|4(?:[013568]\\d|2[4-7])|5(?:44\\d|471)|6\\d{2}|8(?:14|3[129]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"2012345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:2[59]\\d|4(?:2[1-389]|4\\d|7[1-9]|9\\d)|7\\d{2}|8(?:[256]\\d|7[15-8])|9[0-8]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"52512345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[012]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:20|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3201234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MU"; + self.countryCode = [NSNumber numberWithInteger:230]; + self.internationalPrefix = @"0(?:0|[2-7]0|33)"; + self.preferredInternationalPrefix = @"020"; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-46-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-46-9]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{5,7}|[3-9]\\d{7,9}|1800\\d{7,9}" withPossibleNumberPattern:@"\\d{5,13}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{5}(?:\\d{2})?|(?:3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}|88(?:22\\d{6}|42\\d{4})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:81[37]|9(?:0[5-9]|1[024-9]|2[0-35-9]|3[02-9]|4[236-9]|7[34-79]|89|9[4-9]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9051234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{7,9}" withPossibleNumberPattern:@"\\d{11,13}" withExample:@"180012345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PH"; + self.countryCode = [NSNumber numberWithInteger:63]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|5(?:22|44)|642|8(?:62|8[245])"]; + [numberFormats2_patternArray addObject:@"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]))"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"346|4(?:27|9[35])|883"]; + [numberFormats3_patternArray addObject:@"3469|4(?:279|9(?:30|56))|8834"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[3-8]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([3-8]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"81|9"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{1,2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMV +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3467]\\d{6}|9(?:00\\d{7}|\\d{6})" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:0[01]|3[0-59])|6(?:[567][02468]|8[024689]|90))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6701234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:46[46]|7[3-9]\\d|9[16-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7712345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"781\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7812345"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MV"; + self.countryCode = [NSNumber numberWithInteger:960]; + self.internationalPrefix = @"0(?:0|19)"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[3467]|9(?:[1-9]|0[1-9])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"900"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataOM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[2-6]|5|9[1-9])\\d{6}|800\\d{5,6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"23123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"92123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8007\\d{4,5}|500\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"80071234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"OM"; + self.countryCode = [NSNumber numberWithInteger:968]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[58]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([58]00)(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[458]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:444|888)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4441234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"55[5-9]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5551234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NR"; + self.countryCode = [NSNumber numberWithInteger:674]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:\\d{2})?|[2789]\\d{2})\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[2-9]|21\\d{2})\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"1234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:111|77\\d|88\\d|99\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"991234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MW"; + self.countryCode = [NSNumber numberWithInteger:265]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[1789]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMX +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{9,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:33|55|81)\\d{8}|(?:2(?:2[2-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[234][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"2221234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:(?:33|55|81)\\d{8}|(?:2(?:2[2-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7})" withPossibleNumberPattern:@"\\d{11}" withExample:@"12221234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MX"; + self.countryCode = [NSNumber numberWithInteger:52]; + self.internationalPrefix = @"0[09]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"01"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0[12]|04[45](\\d{10})"; + self.nationalPrefixTransformRule = @"1$1"; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"33|55|81"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([358]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1(?:33|55|81)"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)([358]\\d)(\\d{4})(\\d{4})" withFormat:@"044 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"044 $2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"33|55|81"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([358]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"1(?:33|55|81)"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)([358]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataPK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))" withPossibleNumberPattern:@"\\d{6,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:21|42)[2-9]\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6}|(?: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(?:1|2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}|58[126]\\d{7}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"2123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0\\d|1[0-6]|2[0-5]|[34][0-7]|55|64)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3012345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"122\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"122044444"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}" withPossibleNumberPattern:@"\\d{11,12}" withExample:@"21111825888"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PK"; + self.countryCode = [NSNumber numberWithInteger:92]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)1"]; + [numberFormats0_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)11"]; + [numberFormats0_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)111"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(111)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[349]|45|54|60|72|8[2-5]|9[2-9]"]; + [numberFormats1_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d1"]; + [numberFormats1_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d11"]; + [numberFormats1_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d111"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(111)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{7,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"2[349]|45|54|60|72|8[2-5]|9[2-9]"]; + [numberFormats3_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d[2-9]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(3\\d{2})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"58[12]|1"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([15]\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"586"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(586\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"[89]00"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"([89]00)(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[2-9]\\d|[4-9][2-9])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"323456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:1[1-35]\\d{2}|[02-4679][2-9]\\d|59\\d{2}|8(?:1[23]|[2-9]\\d))\\d{5}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[378]00\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1300123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1600\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1600123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"154\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1541234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MY"; + self.countryCode = [NSNumber numberWithInteger:60]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[4-79]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([4-79])(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(3)(\\d{4})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1[02-46-9][1-9]|8"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([18]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1[36-8]0"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)([36-8]00)(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"11"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(11)(\\d{4})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"15"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(15[49])(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-5]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"4002"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[125]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"1234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NU"; + self.countryCode = [NSNumber numberWithInteger:683]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12]\\d{6,8}|[3-57-9]\\d{8}|6\\d{5,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[2-8]|2[2-59]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])\\d{7}|[12]2\\d{5}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[0137]|6[069]|7[2389]|88)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"512345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"39\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"391234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"64\\d{4,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"641234567"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PL"; + self.countryCode = [NSNumber numberWithInteger:48]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[124]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[12]2"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{1})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"39|5[0137]|6[0469]|7[02389]|8[08]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"64"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"64"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataMZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[28]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[23467]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"821234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MZ"; + self.countryCode = [NSNumber numberWithInteger:258]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2|8[2-7]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([28]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[45]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"41\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"411234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"55\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"551234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PM"; + self.countryCode = [NSNumber numberWithInteger:508]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([45]\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataRE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"262\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"262161234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:9[23]|47)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"692123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89[1-37-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:1[019]|2[0156]|84|90)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"RE"; + self.countryCode = [NSNumber numberWithInteger:262]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = @"262|6[49]|8"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7,8}|(?:[2-467]|92)\\d{7}|5\\d{8}|8\\d{9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"11\\d{7}|1?(?:2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"112345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:[013-689]\\d|7[0-26-8])|811\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"512345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"92[05]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"920012345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SA"; + self.countryCode = [NSNumber numberWithInteger:966]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-467]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-467])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[1-467]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"92"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(92\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"81"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(811)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSB +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[4-79]|[23]\\d|4[01]|5[03]|6[0-37])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"40123"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"48\\d{3}|7(?:[46-8]\\d|5[025-9]|9[0-4])\\d{4}|8[4-8]\\d{5}|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8])\\d{4}" withPossibleNumberPattern:@"\\d{5,7}" withExample:@"7421234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[38]\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"18123"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[12]\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"51123"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SB"; + self.countryCode = [NSNumber numberWithInteger:677]; + self.internationalPrefix = @"0[01]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[7-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataNZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[235-9]\\d{6}|[2-57-9]\\d{7,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[2-79]|[49][2-689]|6[235-9]|7[2-5789])\\d{6}|24099\\d{3}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"32345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[028]\\d{7,8}|1(?:[03]\\d{5,7}|[12457]\\d{5,6}|[689]\\d{5})|[79]\\d{7})" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"211234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"508\\d{6,7}|80\\d{6,8}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{7,9}" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[28]6\\d{6,7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"26123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NZ"; + self.countryCode = [NSNumber numberWithInteger:64]; + self.internationalPrefix = @"0(?:0|161)"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[3467]|9[1-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([34679])(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"240"]; + [numberFormats1_patternArray addObject:@"2409"]; + [numberFormats1_patternArray addObject:@"24099"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(24099)(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"21"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"2(?:1[1-9]|[69]|7[0-35-9])|86"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"2[028]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"2(?:10|74)|5|[89]0"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24689]\\d{5,6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4[2-46]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4217123"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[5-8]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2510123"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8000\\d{2}" withPossibleNumberPattern:@"\\d{6}" withExample:@"800000"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"98\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"981234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"64\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6412345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SC"; + self.countryCode = [NSNumber numberWithInteger:248]; + self.internationalPrefix = @"0[0-2]"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[246]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[19]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:[125]\\d|8[3567])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"121231234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[012569]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"911231234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SD"; + self.countryCode = [NSNumber numberWithInteger:249]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:787|939)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7872345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:787|939)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7872345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PR"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"787|939"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:0[1-9]\\d{4,6}|[246]\\d{5,7}|(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:0[1-9]\\d{4,6}|3\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8[1-9]\\d{5,7}|9(?:0[1-9]\\d{4,6}|(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8])\\d{5,6})" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"8123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[0236]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:0(?:0\\d{2}|[1-9](?:0\\d{1,4}|[1-9]\\d{4}))|1(?:0\\d{4}|[1-9]\\d{4,5})|[2-9]\\d{5})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"20123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:00|39|44)(?:1(?:[0-26]\\d{5}|[3-57-9]\\d{2})|2(?:[0-2]\\d{5}|[3-9]\\d{2})|3(?:[0139]\\d{5}|[24-8]\\d{2})|4(?:[045]\\d{5}|[1-36-9]\\d{2})|5(?:5\\d{5}|[0-46-9]\\d{2})|6(?:[679]\\d{5}|[0-58]\\d{2})|7(?:[078]\\d{5}|[1-69]\\d{2})|8(?:[578]\\d{5}|[0-469]\\d{2}))" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"77(?:0(?:0\\d{2}|[1-9](?:0\\d|[1-9]\\d{4}))|[1-6][1-9]\\d{5})" withPossibleNumberPattern:@"\\d{6}(?:\\d{3})?" withExample:@"771234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"75[1-8]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"751234567"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"74[02-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"740123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SE"; + self.countryCode = [NSNumber numberWithInteger:46]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8)(\\d{2,3})(\\d{2,3})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{3})(\\d{2})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2,3})(\\d{2})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(77)(\\d{2})(\\d{2})" withFormat:@"$1-$2$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"20"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(20)(\\d{2,3})(\\d{2})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"9[034]"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"9[034]"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"8"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8)(\\d{2,3})(\\d{2,3})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2,3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + + NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats5_patternArray addObject:@"7"]; + NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; + + NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats6_patternArray addObject:@"7"]; + NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(77)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; + + NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats7_patternArray addObject:@"20"]; + NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(20)(\\d{2,3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; + + NSMutableArray *intlNumberFormats8_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats8_patternArray addObject:@"9[034]"]; + NBNumberFormat *intlNumberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats8_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats8]; + + NSMutableArray *intlNumberFormats9_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats9_patternArray addObject:@"9[034]"]; + NBNumberFormat *intlNumberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats9_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats9]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24589]\\d{7,8}|1(?:[78]\\d{8}|[49]\\d{2,3})" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:22[234789]|42[45]|82[01458]|92[369])\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[69]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"599123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:4|9\\d)\\d{2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"19123"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1700\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1700123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PS"; + self.countryCode = [NSNumber numberWithInteger:970]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2489]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2489])(2\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5[69]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1[78]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1[78]00)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"8999"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TA"; + self.countryCode = [NSNumber numberWithInteger:290]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-46-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[12]\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[136]\\d{2}|2[0-79]\\d|480)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[02]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[1-57]|1[2-47]|2[237])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"760123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:8\\d|9[1579])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"808123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"884[128]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"884123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70(?:7\\d|8[17])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"707123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PT"; + self.countryCode = [NSNumber numberWithInteger:351]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2[12]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[3-9]|[346-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-46-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[36]\\d{7}|[17-9]\\d{7,10}" withPossibleNumberPattern:@"\\d{8,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[1-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"61234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8[1-7]|9[0-8])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1?800\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"18001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"19001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[12]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"31234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7000\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"70001234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SG"; + self.countryCode = [NSNumber numberWithInteger:65]; + self.internationalPrefix = @"0[0-3]\\d"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[369]|8[1-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3689]\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[89]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"70"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(7000)(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"649(?:712|9(?:4\\d|50))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6497121234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"649(?:2(?:3[129]|4[1-7])|3(?:3[1-389]|4[1-7])|4[34][1-3])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6492311234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"64971[01]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6497101234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TC"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"649"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{3,4}" withPossibleNumberPattern:@"\\d{4,5}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[0-57-9]\\d|6[4-9])\\d{2}|(?:[2-46]\\d|7[01])\\d{2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"2158"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[59]\\d|7[2-9])\\d{2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"5012"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SH"; + self.countryCode = [NSNumber numberWithInteger:290]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2679]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22(?:[3789]0|5[0-5]|6[89])\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22501234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[02368]\\d|77\\d|9(?:5[0-4]|9\\d))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"63012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TD"; + self.countryCode = [NSNumber numberWithInteger:235]; + self.internationalPrefix = @"00|16"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{6,7}|[89]\\d{4,7}" withPossibleNumberPattern:@"\\d{5,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|[25][2-8]|3[4-8]|4[24-8]|7[3-8])\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"11234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[37][01]|4[0139]|51|6[48])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"31234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{4,6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{4,6}|89[1-3]\\d{2,5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:59|8[1-3])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"59012345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SI"; + self.countryCode = [NSNumber numberWithInteger:386]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[12]|3[4-8]|4[24-8]|5[2-8]|7[3-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[37][01]|4[0139]|51|6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-7]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89][09]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([89][09])(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"59|8[1-3]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([58]\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2771234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[234689]0|77[45789])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6201234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PW"; + self.countryCode = [NSNumber numberWithInteger:680]; + self.internationalPrefix = @"01[12]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSJ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|[4789]\\d{7}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"79\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"79123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[015-8]|5[89]|9\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"41234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[01]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"82[09]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"82012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810(?:0[0-6]|[2-8]\\d)\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81021234"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"880\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85[0-5]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85012345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:@"01234"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81[23]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81212345"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SJ"; + self.countryCode = [NSNumber numberWithInteger:47]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataUA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-689]\\d{8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"311234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:39|50|6[36-8]|9[1-9])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"391234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"UA"; + self.countryCode = [NSNumber numberWithInteger:380]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = @"0~0"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[38]9|4(?:[45][0-5]|87)|5(?:0|6[37]|7[37])|6[36-8]|9[1-9]"]; + [numberFormats0_patternArray addObject:@"[38]9|4(?:[45][0-5]|87)|5(?:0|6(?:3[14-7]|7)|7[37])|6[36-8]|9[1-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3-689]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3[1-8]2|4[13678]2|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90"]; + [numberFormats1_patternArray addObject:@"3(?:[1-46-8]2[013-9]|52)|4(?:[1378]2|62[013-9])|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-689]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"3(?:5[013-9]|[1-46-8])|4(?:[137][013-9]|6|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6[0135-9]|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])"]; + [numberFormats2_patternArray addObject:@"3(?:5[013-9]|[1-46-8](?:22|[013-9]))|4(?:[137][013-9]|6(?:[013-9]|22)|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6(?:3[02389]|[015689])|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([3-6]\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataRO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{5,8}|[37-9]\\d{8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1(?:\\d{7}|9\\d{3})|[3-6](?:\\d{7}|\\d9\\d{2}))|3[13-6]\\d{7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"211234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:000|[1-8]\\d{2}|99\\d)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[036]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"802\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"802123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"37\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"372123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"RO"; + self.countryCode = [NSNumber numberWithInteger:40]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" int "; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[23]1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([237]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"21"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[23][3-7]|[7-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"2[3-6]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-689]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-5]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[1-8]|1[0-24-9]|4[0489])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[78]\\d{7}|00\\d{6})" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[5-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"850123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:5[0-4]|9[0-6])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"96\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"961234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.codeID = @"SK"; + self.countryCode = [NSNumber numberWithInteger:421]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{3})(\\d{2})" withFormat:@"$1/$2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[3-5]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-5]\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1/$2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[689]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([689]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataPY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:6[12]|[78][1-6]|9[1-5])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"961456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8700[0-4]\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"870012345"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]0\\d{4,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"201234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PY"; + self.countryCode = [NSNumber numberWithInteger:595]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-9]0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9[1-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8700"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[2-8][1-9]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[0-389]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90112345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TG"; + self.countryCode = [NSNumber numberWithInteger:228]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-578]\\d{7}" withPossibleNumberPattern:@"\\d{6,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235]2[2-4][2-9]\\d{4}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"22221234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[15]|3[034]|4[04]|5[05]|7[6-9]|88)\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"25123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SL"; + self.countryCode = [NSNumber numberWithInteger:232]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{7,8}|1\\d{3}(?:\\d{5,6})?" withPossibleNumberPattern:@"\\d{4}|\\d{8,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:14|6[1-3]|[89]\\d)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"812345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[08]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"601234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"1100"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"1100"]; + self.codeID = @"TH"; + self.countryCode = [NSNumber numberWithInteger:66]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"14|[3-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([13-9]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[05-7]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0549(?:8[0157-9]|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"0549886377"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[16]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"66661212"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[178]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[158]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"58001110"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SM"; + self.countryCode = [NSNumber numberWithInteger:378]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"(?:0549)?([89]\\d{5})"; + self.nationalPrefixTransformRule = @"0549$1"; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[5-7]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0549)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{6})" withFormat:@"0549 $1" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[5-7]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"0"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0549)(\\d{6})" withFormat:@"($1) $2" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{6})" withFormat:@"(0549) $1" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataSN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3789]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611|90[1-5])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301012345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[067]\\d|21|8[0-26]|90)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88[4689]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"884123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81[02468]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3392\\d{5}|93330\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"933301234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SN"; + self.countryCode = [NSNumber numberWithInteger:221]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[379]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataRS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[126-9]\\d{4,11}|3(?:[0-79]\\d{3,10}|8[2-9]\\d{2,9})" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:[02-9][2-9]|1[1-9])\\d|2(?:[0-24-7][2-9]\\d|[389](?:0[2-9]|[2-9]\\d))|3(?:[0-8][2-9]\\d|9(?:[2-9]\\d|0[2-9])))\\d{3,8}" withPossibleNumberPattern:@"\\d{5,12}" withExample:@"10234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:[0-689]|7\\d)\\d{6,7}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"601234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{3,9}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:90[0169]|78\\d)\\d{3,7}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[06]\\d{4,10}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"700123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"RS"; + self.countryCode = [NSNumber numberWithInteger:381]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"(?:2[389]|39)0"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([23]\\d{2})(\\d{4,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-3]\\d)(\\d{5,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6\\d)(\\d{6,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"7[26]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(7[26])(\\d{4,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"7[08]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(7[08]\\d)(\\d{4,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTJ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-59]\\d{8}" withPossibleNumberPattern:@"\\d{3,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}" withPossibleNumberPattern:@"\\d{3,9}" withExample:@"372123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50[125]|9[0-35-9]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"917123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TJ"; + self.countryCode = [NSNumber numberWithInteger:992]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = @"8~10"; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"8"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[34]7|91[78]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([349]\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"4[48]|5|9(?:1[59]|[0235-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([459]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"331"]; + [numberFormats2_patternArray addObject:@"3317"]; + [numberFormats2_patternArray addObject:@"33170"]; + [numberFormats2_patternArray addObject:@"331700"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(331700)(\\d)(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"3[1-5]"]; + [numberFormats3_patternArray addObject:@"3(?:[1245]|3(?:[02-9]|1[0-589]))"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"06\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"06698\\d{5}" withPossibleNumberPattern:@"\\d{10}" withExample:@"0669812345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"VA"; + self.countryCode = [NSNumber numberWithInteger:379]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(06)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataSO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-79]\\d{6,8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|59)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4012345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:15\\d|2(?:4\\d|8)|6[137-9]?\\d{2}|7[1-9]\\d|907\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"71123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SO"; + self.countryCode = [NSNumber numberWithInteger:252]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2[0-79]|[13-5]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"24|[67]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"15|28|6[1378]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"69"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(69\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"90"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(90\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-4]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"3010"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5-9]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"5190"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TK"; + self.countryCode = [NSNumber numberWithInteger:690]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataUG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:[0147]\\d{2}|2(?:40|[5-9]\\d)|3[23]\\d|5[0-4]\\d|6[03]\\d|8[0-2]\\d)\\d{4}|[34]\\d{8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"312345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2030\\d{5}|7(?:0[0-7]|[15789]\\d|2[03]|30|[46][0-4])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[123]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[123]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"901123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"UG"; + self.countryCode = [NSNumber numberWithInteger:256]; + self.internationalPrefix = @"00[057]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[7-9]|20(?:[013-8]|2[5-9])|4(?:6[45]|[7-9])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3|4(?:[1-5]|6[0-36-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"2024"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(2024)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataRU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3489]\\d{9}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:0[12]|4[1-35-79]|5[1-3]|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-7]|7[1-37-9]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3011234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{9}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[04]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[39]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8091234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"RU"; + self.countryCode = [NSNumber numberWithInteger:7]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = @"8~10"; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"8"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-79]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[34689]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[34689]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-489]\\d{6}|7\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2112345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[3-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77212345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TL"; + self.countryCode = [NSNumber numberWithInteger:670]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-489]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"784(?:266|3(?:6[6-9]|7\\d|8[0-24-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7842661234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"784(?:4(?:3[0-4]|5[45]|89|9[0-5])|5(?:2[6-9]|3[0-4]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7844301234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"VC"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"784"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata870 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[35-7]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301234567"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"301234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[356]\\d|7[6-8])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:870]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-6]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[2-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"66123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TM"; + self.countryCode = [NSNumber numberWithInteger:993]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = @"8~10"; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"8"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"12"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(8 $1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"13|[2-5]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(8 $1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{5,6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"211234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7[124-7]|8[1-9])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7412345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:6\\d{4}|90[0-4]\\d{3})" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"561234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SR"; + self.countryCode = [NSNumber numberWithInteger:597]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-4]|5[2-58]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"56"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"59|[6-8]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataRW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[027-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[258]\\d{7}|06\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"250123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[238]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"720123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"RW"; + self.countryCode = [NSNumber numberWithInteger:250]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[7-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"0"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataTN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[012]\\d{6}|7\\d{7}|81200\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[259]\\d|4[0-24])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8010\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80101234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[12]10\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81101234"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TN"; + self.countryCode = [NSNumber numberWithInteger:216]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24589]\\d{9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:12|3[457-9]|[58][1-9]|[467]\\d|9[1-6])|50[01])\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"2121234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4(?:1[24-8]|2[46])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"4121234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"VE"; + self.countryCode = [NSNumber numberWithInteger:58]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[19]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"181234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:12|9[1257])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"977123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SS"; + self.countryCode = [NSNumber numberWithInteger:211]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[02-8]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"20123"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7[578]|8[47-9])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7715123"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"0800222"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TO"; + self.countryCode = [NSNumber numberWithInteger:676]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-6]|7[0-4]|8[05]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7[5-9]|8[47-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"0"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataST +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2221234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[89]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9812345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ST"; + self.countryCode = [NSNumber numberWithInteger:239]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2842291234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"284(?:(?:3(?:0[0-3]|4[0-367])|4(?:4[0-6]|68|99)|54[0-57])\\d{4}|496[6-9]\\d{3})" withPossibleNumberPattern:@"\\d{10}" withExample:@"2843001234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"VG"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"284"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSV +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[267]\\d{7}|[89]\\d{6}(?:\\d{4})?" withPossibleNumberPattern:@"\\d{7,8}|\\d{11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[1-6]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}(?:\\d{4})?" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{4}(?:\\d{4})?" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:@"9001234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SV"; + self.countryCode = [NSNumber numberWithInteger:503]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[267]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-589]\\d{9}|444\\d{4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:0[1-7]|22|[34]\\d|5[1-59]|9[246])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"512\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5123456789"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"444\\d{4}|850\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"4441444"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"444\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4441444"]; + self.codeID = @"TR"; + self.countryCode = [NSNumber numberWithInteger:90]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[23]|4(?:[0-35-9]|4[0-35-9])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[589]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"444"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(444)(\\d{1})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"340(?:2(?:01|2[0678]|44|77)|3(?:32|44)|4(?:22|7[34])|5(?:1[34]|55)|6(?:26|4[23]|77|9[023])|7(?:1[2-589]|27|7\\d)|884|998)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"3406421234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"340(?:2(?:01|2[0678]|44|77)|3(?:32|44)|4(?:22|7[34])|5(?:1[34]|55)|6(?:26|4[23]|77|9[023])|7(?:1[2-589]|27|7\\d)|884|998)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"3406421234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"VI"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"340"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSX +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7215(?:4[2-8]|8[239]|9[056])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7215425678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7215205678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SX"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"721"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataWF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5-7]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50|68|72)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"501234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50|68|72)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"501234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"WF"; + self.countryCode = [NSNumber numberWithInteger:681]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"868(?:2(?:[03]1|2[1-5])|6(?:0[79]|1[02-9]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8682211234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"868(?:2(?:[89]\\d)|3(?:0[1-9]|1[02-9]|[2-9]\\d)|4[6-9]\\d|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8682911234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TT"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"868"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-59]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:1\\d?|4\\d|[2356])|2(?:1\\d?|[235])|3(?:[13]\\d|4)|4[13]|5[1-3])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"112345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:22|[35][0-8]|4\\d|6[024-9]|88|9[0-489])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"944567890"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SY"; + self.countryCode = [NSNumber numberWithInteger:963]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-5]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataSZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[027]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2(?:0[07]|[13]7|2[57])|3(?:0[34]|[1278]3|3[23]|[46][34])|(?:40[4-69]|67)|5(?:0[5-7]|1[6-9]|[23][78]|48|5[01]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22171234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[6-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"76123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"08001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"08001234"]; + self.codeID = @"SZ"; + self.countryCode = [NSNumber numberWithInteger:268]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[027]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataTV +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{4,5}" withPossibleNumberPattern:@"\\d{5,6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[02-9]\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"20123"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"901234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TV"; + self.countryCode = [NSNumber numberWithInteger:688]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-689]\\d{7,8}|7\\d{7,9}" withPossibleNumberPattern:@"\\d{8,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TW"; + self.countryCode = [NSNumber numberWithInteger:886]; + self.internationalPrefix = @"0(?:0[25679]|19)"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @"#"; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-6]|[78][1-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-8])(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"80|9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"70"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(70)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]\\d{6,9}|[2-69]\\d{7,9}|8\\d{6,8}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[025-79]|1[0189]|[348][01])|3(?:[0136-9]|[25][01])|4\\d|5(?:[01][01]|[2-9])|6(?:[0-46-8]|5[01])|7(?:[02-79]|[18][01])|8[1-9])\\d{7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"2101234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:9\\d|1(?:2\\d|6[2-9]|8[68]|99))\\d{7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{4,6}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{4,6}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"1900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]99\\d{4}|69\\d{5,6}|80\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"1992000"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]99\\d{4}|69\\d{5,6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"1992000"]; + self.codeID = @"VN"; + self.countryCode = [NSNumber numberWithInteger:84]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[17]99"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([17]99)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[48]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([48])(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"2[025-79]|3[0136-9]|5[2-9]|6[0-46-8]|7[02-79]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([235-7]\\d)(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(80)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"69"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(69\\d)(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"2[1348]|3[25]|5[01]|65|7[18]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([235-7]\\d{2})(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"1(?:[26]|8[68]|99)"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(1[2689]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"1[89]0"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataUS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[026]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|4[67]|5[12]|6[014]|8[56])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[0457]|3[1247]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[01678]|4[0179]|5[12469]|7[0-3589]|8[0459]))[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2015555555"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[026]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|4[67]|5[12]|6[014]|8[56])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[0457]|3[1247]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[01678]|4[0179]|5[12469]|7[0-3589]|8[0459]))[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2015555555"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"US"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"($1) $2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[2-8]\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"222345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[1578]|7[1-9])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[08]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:40|6[01])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"840123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"41\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"TZ"; + self.countryCode = [NSNumber numberWithInteger:255]; + self.internationalPrefix = @"00[056]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[24]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([24]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[67]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([67]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata878 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{11}" withPossibleNumberPattern:@"\\d{12}" withExample:@"101234567890"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"101234567890"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"101234567890"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"10\\d{10}" withPossibleNumberPattern:@"\\d{12}" withExample:@"101234567890"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:878]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataYE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{6,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"1234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[0137]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"YE"; + self.countryCode = [NSNumber numberWithInteger:967]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-6]|7[24-68]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-7])(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7[0137]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataZA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-79]\\d{8}|8(?:[067]\\d{7}|[1-4]\\d{3,7})" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0-8]|2[0-378]|3[1-69]|4\\d|5[1346-8])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"101234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[0-5]|7[0-46-9])\\d{7}|8[1-4]\\d{3,7}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"711234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"86[2-9]\\d{6}|90\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"862345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"860\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"860123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"87\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"871234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"861\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"861123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ZA"; + self.countryCode = [NSNumber numberWithInteger:27]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"860"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(860)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[1-79]|8(?:[0-47]|6[1-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"8[1-4]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8[1-4]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataUY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2489]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}|4[2-7]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"21231234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"94231234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[05]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[0-8]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9001234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"UY"; + self.countryCode = [NSNumber numberWithInteger:598]; + self.internationalPrefix = @"0(?:1[3-9]\\d|0)"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" int. "; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[24]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"9[1-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]0"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataVU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57-9]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[02-9]\\d|3(?:[5-7]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}" withPossibleNumberPattern:@"\\d{5}" withExample:@"22123"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:7[2-5]|[3-69]\\d)|7[013-7]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5912345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[03]\\d{3}|900\\d{4}" withPossibleNumberPattern:@"\\d{5,7}" withExample:@"30123"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"VU"; + self.countryCode = [NSNumber numberWithInteger:678]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[579]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataUZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[679]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|1[12]\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"662345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:1(?:2(?:98|2[01])|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:11\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4])|7\\d{2})|5(?:19[01]|2(?:27|9[26])|30\\d|59\\d|7\\d{2})|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|3[79]\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79])|9[0-3]\\d)|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|5\\d|3[01]|7[0-4])|5[67]\\d|6(?:2[0-26]|8\\d)|7\\d{2}))\\d{4}|7(?:0\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|33\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078])|9[4-6]\\d)|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0127]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[05629]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07])))\\d{4}|9[0-57-9]\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"UZ"; + self.countryCode = [NSNumber numberWithInteger:998]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = @"8~10"; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"8"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([679]\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataWS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-5]\\d|6[1-9]|84\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{5,7}" withExample:@"22123"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:60|7[25-7]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"601234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"800123"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"WS"; + self.countryCode = [NSNumber numberWithInteger:685]; + self.internationalPrefix = @"0"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata979 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:979]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataZM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[289]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"21[1-8]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"211234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:5[05]|6\\d|7[1-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"955123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ZM"; + self.countryCode = [NSNumber numberWithInteger:260]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[29]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([29]\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{3,5}" withPossibleNumberPattern:@"\\d{4,6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[267]\\d|3[0-5]|4[4-69])\\d{2}" withPossibleNumberPattern:@"\\d{4}" withExample:@"6889"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"501234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AC"; + self.countryCode = [NSNumber numberWithInteger:247]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[346-9]|180)\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[78]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"712345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[346]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"312345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"180[02]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"18001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"912345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AD"; + self.countryCode = [NSNumber numberWithInteger:376]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[346-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(180[02])(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataYT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2696[0-4]\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"269601234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"639\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"639123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"YT"; + self.countryCode = [NSNumber numberWithInteger:262]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"269|63"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{7,8}|800\\d{2,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-4679][2-8]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[0256]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"501234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"400\\d{6}|800\\d{2,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[02]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700[05]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700012345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600[25]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"600212345"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AE"; + self.countryCode = [NSNumber numberWithInteger:971]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-4679][2-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-4679])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5[0256])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[479]0"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([479]00)(\\d)(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"60|8"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([68]00)(\\d{2,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[35]\\d|49)\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"30123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:03|44|71|[1-356])\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"61123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[08]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[0246]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[12]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"82123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[23]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70223456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BA"; + self.countryCode = [NSNumber numberWithInteger:387]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[3-5]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6[1-356]|[7-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"6[047]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"234567890"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[05-9]\\d{7}|29\\d{6})" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AF"; + self.countryCode = [NSNumber numberWithInteger:93]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-6]|7[013-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-7]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"729"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(729)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBB +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"246[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2462345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"246(?:(?:2[346]|45|82)\\d|25[0-4])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2462501234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BB"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"246"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2684601234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"268(?:464|7(?:2[0-9]|64|7[0-689]|8[02-68]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2684641234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"26848[01]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2684801234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"26840[69]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2684061234"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AG"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"268"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:7(?:1[0-267]|2[0-289]|3[0-29]|[46][01]|5[1-3]|7[017]|91)|8(?:0[125]|[139][1-6]|2[0157-9]|6[1-35]|7[1-5]|8[1-8])|9(?:0[0-2]|1[1-4]|2[568]|3[3-6]|5[5-7]|6[0167]|7[15]|8[0146-8]))\\d{4}|3(?:12?[5-7]\\d{2}|0(?:2(?:[025-79]\\d|[348]\\d{1,2})|3(?:[2-4]\\d|[56]\\d?))|2(?:1\\d{2}|2(?:[12]\\d|[35]\\d{1,2}|4\\d?))|3(?:1\\d{2}|2(?:[2356]\\d|4\\d{1,2}))|4(?:1\\d{2}|2(?:2\\d{1,2}|[47]|5\\d{2}))|5(?:1\\d{2}|29)|[67]1\\d{2}|8(?:1\\d{2}|2(?:2\\d{2}|3|4\\d)))\\d{3}|4(?:0(?:2(?:[09]\\d|7)|33\\d{2})|1\\d{3}|2(?:1\\d{2}|2(?:[25]\\d?|[348]\\d|[67]\\d{1,2}))|3(?:1\\d{2}(?:\\d{2})?|2(?:[045]\\d|[236-9]\\d{1,2})|32\\d{2})|4(?:[18]\\d{2}|2(?:[2-46]\\d{2}|3)|5[25]\\d{2})|5(?:1\\d{2}|2(?:3\\d|5))|6(?:[18]\\d{2}|2(?:3(?:\\d{2})?|[46]\\d{1,2}|5\\d{2}|7\\d)|5(?:3\\d?|4\\d|[57]\\d{1,2}|6\\d{2}|8))|71\\d{2}|8(?:[18]\\d{2}|23\\d{2}|54\\d{2})|9(?:[18]\\d{2}|2[2-5]\\d{2}|53\\d{1,2}))\\d{3}|5(?:02[03489]\\d{2}|1\\d{2}|2(?:1\\d{2}|2(?:2(?:\\d{2})?|[457]\\d{2}))|3(?:1\\d{2}|2(?:[37](?:\\d{2})?|[569]\\d{2}))|4(?:1\\d{2}|2[46]\\d{2})|5(?:1\\d{2}|26\\d{1,2})|6(?:[18]\\d{2}|2|53\\d{2})|7(?:1|24)\\d{2}|8(?:1|26)\\d{2}|91\\d{2})\\d{3}|6(?:0(?:1\\d{2}|2(?:3\\d{2}|4\\d{1,2}))|2(?:2[2-5]\\d{2}|5(?:[3-5]\\d{2}|7)|8\\d{2})|3(?:1|2[3478])\\d{2}|4(?:1|2[34])\\d{2}|5(?:1|2[47])\\d{2}|6(?:[18]\\d{2}|6(?:2(?:2\\d|[34]\\d{2})|5(?:[24]\\d{2}|3\\d|5\\d{1,2})))|72[2-5]\\d{2}|8(?:1\\d{2}|2[2-5]\\d{2})|9(?:1\\d{2}|2[2-6]\\d{2}))\\d{3}|7(?:(?:02|[3-589]1|6[12]|72[24])\\d{2}|21\\d{3}|32)\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"27111234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[13-9]\\d|(?:3[78]|44)[02-9]|6(?:44|6[02-9]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1812345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[03]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"96(?:0[49]|1[0-4]|6[69])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9604123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BD"; + self.countryCode = [NSNumber numberWithInteger:880]; + self.internationalPrefix = @"00[12]?"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[3-79]1"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1|3(?:0|[2-58]2)|4(?:0|[25]2|3[23]|[4689][25])|5(?:[02-578]2|6[25])|6(?:[0347-9]2|[26][25])|7[02-9]2|8(?:[023][23]|[4-7]2)|9(?:[02][23]|[458]2|6[016])"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3,6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[3-79][2-9]|8"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2644(?:6[12]|9[78])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2644612345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"264(?:235|476|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2642351234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AI"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"264"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0-69]|[49][23]|5\\d|6[013-57-9]|71|8[0-79])[1-9]\\d{5}|[23][2-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4(?:[679]\\d|8[03-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"470123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:70[2-7]|90\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"78\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"78123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BE"; + self.countryCode = [NSNumber numberWithInteger:32]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"4[6-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(4[6-9]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[23]|[49][23]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-49])(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[156]|7[018]|8(?:0[1-9]|[1-79])"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([15-8]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"(?:80|9)0"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{9}|3\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|65)|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|79|8[17])|6(?:0[04]|13|39|47)|7(?:0[59]|78|8[02])|8(?:[06]7|19|73)|90[25])[2-9]\\d{6}|310\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2042345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|65)|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|79|8[17])|6(?:0[04]|13|39|47)|7(?:0[59]|78|8[02])|8(?:[06]7|19|73)|90[25])[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2042345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}|310\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CA"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24-7]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20(?:49|5[23]|9[016-9])|40(?:4[569]|5[4-6]|7[0179])|50(?:[34]\\d|50))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20491234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:[0-689]\\d|7[0-5])\\d{5}|7\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BF"; + self.countryCode = [NSNumber numberWithInteger:226]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23567]\\d{5,7}|[489]\\d{6,8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[0-8]\\d{5,6}|9\\d{4,6})|(?:[36]\\d|5[1-9]|8[1-6]|9[1-7])\\d{5,6}|(?:4(?:[124-7]\\d|3[1-6])|7(?:0[1-9]|[1-9]\\d))\\d{4,5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"2123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8[7-9]|98)\\d{7}|4(?:3[0789]|8\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"48123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"70012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BG"; + self.countryCode = [NSNumber numberWithInteger:359]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"29"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"43[124-7]|70[1-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"43[124-7]|70[1-9]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[78]00"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"48|8[7-9]|9[08]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataZW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[012457-9]\\d{3,8}|6\\d{3,6})|[13-79]\\d{4,8}|8[06]\\d{8}" withPossibleNumberPattern:@"\\d{3,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[3-9]|2(?:0[45]|[16]|2[28]|[49]8?|58[23]|7[246]|8[1346-9])|3(?:08?|17?|3[78]|[2456]|7[1569]|8[379])|5(?:[07-9]|1[78]|483|5(?:7?|8))|6(?:0|28|37?|[45][68][78]|98?)|848)\\d{3,6}|(?:2(?:27|5|7[135789]|8[25])|3[39]|5[1-46]|6[126-8])\\d{4,6}|2(?:(?:0|70)\\d{5,6}|2[05]\\d{7})|(?:4\\d|9[2-8])\\d{4,7}" withPossibleNumberPattern:@"\\d{3,10}" withExample:@"1312345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[1378]\\d{7}|86(?:22|44)\\d{6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"711234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"86(?:1[12]|30|55|77|8[367]|99)\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8686123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ZW"; + self.countryCode = [NSNumber numberWithInteger:263]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"4|9[2-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([49])(\\d{3})(\\d{2,5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[19]1|7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([179]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"86[24]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(86\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"2(?:[278]|0[45]|[49]8)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([2356]\\d{2})(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"2(?:[278]|0[45]|48)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])|80"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([1-356]\\d)(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"([1-356]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"(?:25|54)8"]; + [numberFormats7_patternArray addObject:@"258[23]|5483"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"([25]\\d{3})(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"(?:25|54)8"]; + [numberFormats8_patternArray addObject:@"258[23]|5483"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"([25]\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"86"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[168][1-9]|[247]\\d|9[1-7])|3(?:1[1-3]|[2-6]\\d|[79][1-8]|8[1-9])|4\\d{2}|5(?:1[1-4]|[2-578]\\d|6[1-5]|9[1-7])|8(?:[19][1-5]|[2-6]\\d|[78][1-7]))\\d{5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"22345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[6-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"661234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"900123"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"808123"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AL"; + self.countryCode = [NSNumber numberWithInteger:355]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"4[0-6]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(4)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6[6-9])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[2358][2-5]|4[7-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[235][16-9]|8[016-9]|[79]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1458]\\d{5,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89162\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"891621234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[03-9]|8[17-9]|9[017-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:80(?:0\\d{2})?|3(?:00\\d{2})?)\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"500\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"500123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"550\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"550123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CC"; + self.countryCode = [NSNumber numberWithInteger:61]; + self.internationalPrefix = @"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"; + self.preferredInternationalPrefix = @"0011"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[136-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:3[13-6]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|88)|9[69][69])|7(?:7\\d{2}|178))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"17001234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:[1-4679]\\d|5[01356]|8[0-48])\\d|6(?:3(?:00|33|6[16])|6(?:[69]\\d|3[03-9])))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"36001234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:87|9[014578])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"84\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"84123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BH"; + self.countryCode = [NSNumber numberWithInteger:973]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7}" withPossibleNumberPattern:@"\\d{5,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[01]\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2|47\\d)\\d{5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"10123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[139]|55|77|9[1-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[016]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[1-4]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[2-6]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"60271234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AM"; + self.countryCode = [NSNumber numberWithInteger:374]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1|47"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"4[139]|[5-7]|9[1-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[23]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8|90"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-6]\\d{6}|[18]\\d{6,8}|9\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:2\\d{7}|\\d{6})|[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"1234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[0-2459]\\d{2}|8)\\d{5}|9[7-9]\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"991234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CD"; + self.countryCode = [NSNumber numberWithInteger:243]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"12"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"8[0-2459]|9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"88"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[1-6]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[267]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22(?:2[0-7]|[3-5]0)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[26]9|7[14-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"79561234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BI"; + self.countryCode = [NSNumber numberWithInteger:257]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBJ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2689]\\d{7}|7\\d{3}" withPossibleNumberPattern:@"\\d{4,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:02|1[037]|2[45]|3[68])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20211234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[146-8]|9[03-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90011234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[3-5]\\d{2}" withPossibleNumberPattern:@"\\d{4}" withExample:@"7312"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"857[58]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85751234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BJ"; + self.countryCode = [NSNumber numberWithInteger:229]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-49]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"923123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AO"; + self.countryCode = [NSNumber numberWithInteger:244]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[278]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[12]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21612345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[0257]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8776\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"87761234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CF"; + self.countryCode = [NSNumber numberWithInteger:236]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[028]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"222[1-589]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0[14-6]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"061234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CG"; + self.countryCode = [NSNumber numberWithInteger:242]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[02]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataBL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"590(?:2[7-9]|5[12]|87)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"590271234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"690(?:0[0-7]|[1-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690301234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BL"; + self.countryCode = [NSNumber numberWithInteger:590]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata800 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:800]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataCH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{8}|860\\d{9}" withPossibleNumberPattern:@"\\d{9}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[5-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"781234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[016]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"84[0248]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"840123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"878\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"878123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"74[0248]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"740123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[18]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"581234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"860\\d{9}" withPossibleNumberPattern:@"\\d{12}" withExample:@"860123456789"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CH"; + self.countryCode = [NSNumber numberWithInteger:41]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-7]|[89]1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-9]\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"8[047]|90"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"860"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"441(?:2(?:02|23|61|[3479]\\d)|[46]\\d{2}|5(?:4\\d|60|89)|824)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"4412345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"441(?:[37]\\d|5[0-39])\\d{5}" withPossibleNumberPattern:@"\\d{10}" withExample:@"4413701234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BM"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"441"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"11\\d{8}|[2368]\\d{9}|9\\d{10}" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"11\\d{8}|(?:2(?:2(?:[013]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|4(?:7[3-8]|9\\d)|6(?:[01346]\\d|2[24-6]|5[15-8])|80\\d|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-46]))|3(?:3(?:2[79]|6\\d|8[2578])|4(?:[78]\\d|0[0124-9]|[1-35]\\d|4[24-7]|6[02-9]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|6[24]\\d|7(?:[0469]\\d|1[1568]|2[013-9]|3[145]|5[14-8]|7[2-57]|8[0-24-9])|8(?:[013578]\\d|2[15-7]|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"91123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[04579]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8101234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8101234567"]; + self.codeID = @"AR"; + self.countryCode = [NSNumber numberWithInteger:54]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"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[124-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(?:1[1568]|2[15]|3[145]|4[13]|5[14-8]|[069]|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)?"; + self.nationalPrefixTransformRule = @"9$1"; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[68]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([68]\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[2-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[2-9]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"911"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$2 15-$3-$4" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"9(?:2[234689]|3[3-8])"]; + [numberFormats5_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))"]; + [numberFormats5_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[014-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49])))"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$2 15-$3-$4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"9[23]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$2 15-$3-$4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])"]; + [numberFormats8_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"[23]"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"1[012]|911"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats10]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[68]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([68]\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"911"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3-$4" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"9(?:2[234689]|3[3-8])"]; + [intlNumberFormats2_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))"]; + [intlNumberFormats2_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[014-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49])))"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3-$4" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"9[23]"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3-$4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"1"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + + NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats5_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])"]; + [intlNumberFormats5_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]; + NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; + + NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats6_patternArray addObject:@"[23]"]; + NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[02-7]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:0[1-9]|4[0-24-9]|5[4-9]|6[015-79]|7[57])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"01234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CI"; + self.countryCode = [NSNumber numberWithInteger:225]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataBN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-578]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[013-9]\\d|2[0-7])\\d{4}|[3-5]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22[89]\\d{4}|[78]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BN"; + self.countryCode = [NSNumber numberWithInteger:673]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-578]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataDE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-35-9]\\d{3,14}|4(?:[0-8]\\d{4,12}|9(?:[0-37]\\d|4(?:[1-35-8]|4\\d?)|5\\d{1,2}|6[1-8]\\d?)\\d{2,8})" withPossibleNumberPattern:@"\\d{2,15}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[246]\\d{5,13}|3(?:0\\d{3,13}|2\\d{9}|[3-9]\\d{4,13})|5(?:0[2-8]|[1256]\\d|[38][0-8]|4\\d{0,2}|[79][0-7])\\d{3,11}|7(?:0[2-8]|[1-9]\\d)\\d{3,10}|8(?:0[2-9]|[1-9]\\d)\\d{3,10}|9(?:0[6-9]\\d{3,10}|1\\d{4,12}|[2-9]\\d{4,11})" withPossibleNumberPattern:@"\\d{2,15}" withExample:@"30123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:5[0-2579]\\d{8}|6[023]\\d{7,8}|7(?:[0-57-9]\\d?|6\\d)\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"15123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7,12}" withPossibleNumberPattern:@"\\d{10,15}" withExample:@"8001234567890"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"137[7-9]\\d{6}|900(?:[135]\\d{6}|9\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:3(?:7[1-6]\\d{6}|8\\d{4})|80\\d{5,11})" withPossibleNumberPattern:@"\\d{7,14}" withExample:@"18012345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{8}" withPossibleNumberPattern:@"\\d{11}" withExample:@"70012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"16(?:4\\d{1,10}|[89]\\d{1,11})" withPossibleNumberPattern:@"\\d{4,14}" withExample:@"16412345"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18(?:1\\d{5,11}|[2-9]\\d{8})" withPossibleNumberPattern:@"\\d{8,14}" withExample:@"18500123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"17799\\d{7,8}" withPossibleNumberPattern:@"\\d{12,13}" withExample:@"177991234567"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DE"; + self.countryCode = [NSNumber numberWithInteger:49]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1[67]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{2})(\\d{7,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"15"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{3})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"3[02]|40|[68]9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"2(?:\\d1|0[2389]|1[24]|28|34)|3(?:[3-9][15]|40)|[4-8][1-9]1|9(?:06|[1-9]1)"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])"]; + [numberFormats4_patternArray addObject:@"[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:3(?:0[1-467]|2[127-9]|3[124578]|[46][1246]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|3[1357]|4[13578]|6[1246]|7[1356]|9[1346])|5(?:0[14]|2[1-3589]|3[1357]|4[1246]|6[1-4]|7[1346]|8[13568]|9[1246])|6(?:0[356]|2[1-489]|3[124-6]|4[1347]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|3[1357]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|4[1347]|6[0135-9]|7[1467]|8[136])|9(?:0[12479]|2[1358]|3[1357]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(3\\d{4})(\\d{1,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"800"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{7,12})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"177"]; + [numberFormats7_patternArray addObject:@"1779"]; + [numberFormats7_patternArray addObject:@"17799"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(177)(99)(\\d{7,8})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"(?:18|90)0|137"]; + [numberFormats8_patternArray addObject:@"1(?:37|80)|900[1359]"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{4,10})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"181"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{2})(\\d{5,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"185"]; + [numberFormats10_patternArray addObject:@"1850"]; + [numberFormats10_patternArray addObject:@"18500"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(18\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats10]; + + NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; + [numberFormats11_patternArray addObject:@"18[68]"]; + NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(18\\d{2})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats11]; + + NSMutableArray *numberFormats12_patternArray = [[NSMutableArray alloc] init]; + [numberFormats12_patternArray addObject:@"18[2-579]"]; + NBNumberFormat *numberFormats12 = [[NBNumberFormat alloc] initWithPattern:@"(18\\d)(\\d{8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats12_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats12]; + + NSMutableArray *numberFormats13_patternArray = [[NSMutableArray alloc] init]; + [numberFormats13_patternArray addObject:@"700"]; + NBNumberFormat *numberFormats13 = [[NBNumberFormat alloc] initWithPattern:@"(700)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats13_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats13]; + + NSMutableArray *numberFormats14_patternArray = [[NSMutableArray alloc] init]; + [numberFormats14_patternArray addObject:@"138"]; + NBNumberFormat *numberFormats14 = [[NBNumberFormat alloc] initWithPattern:@"(138)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats14_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats14]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6846(?:22|33|44|55|77|88|9[19])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6846221234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"684(?:25[2468]|7(?:3[13]|70))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6847331234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AS"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"684"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23467]\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:2\\d{2}|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d{2}|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:2\\d|3[234]|4[248]|5[24]|6[2-6]|7\\d))|4(?:4\\d{2}|6(?:11|[24689]\\d|72)))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BO"; + self.countryCode = [NSNumber numberWithInteger:591]; + self.internationalPrefix = @"00(1\\d)?"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0(1\\d)?"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[234]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([234])(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[67]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([67]\\d{7})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{3,12}" withPossibleNumberPattern:@"\\d{3,13}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3,12}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-8]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|63|7[1368]|8[2457])|5(?:12|2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[1-35-8]|5[468]|62)|7(?:2[1-8]|3[25]|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{3,10}" withPossibleNumberPattern:@"\\d{3,13}" withExample:@"1234567890"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:44|5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}" withPossibleNumberPattern:@"\\d{7,13}" withExample:@"644123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[02]\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:711|9(?:0[01]|3[019]))\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:10|2[018])\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"810123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"780\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"780123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}" withPossibleNumberPattern:@"\\d{5,13}" withExample:@"50123"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AT"; + self.countryCode = [NSNumber numberWithInteger:43]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3,12})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"5[079]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"5[079]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"5[079]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{4})(\\d{4,7})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"316|46|51|732|6(?:44|5[0-3579]|[6-9])|7(?:1|[28]0)|[89]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"2|3(?:1[1-578]|[3-8])|4[2378]|5[2-6]|6(?:[12]|4[1-35-9]|5[468])|7(?:2[1-8]|35|4[1-8]|[5-79])"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2\\d|3[13-7]|4[1-5])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"21234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[0-68]|7\\d)\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"71234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CK"; + self.countryCode = [NSNumber numberWithInteger:682]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-578]\\d{5,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[237]\\d{8}|8(?:[68]\\d{3}|7[0-69]\\d{2}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[03-9]|8[17-9]|9[017-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"180(?:0\\d{3}|2)\\d{3}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"13(?:00\\d{2})?\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1300123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"500\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"500123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"550\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"550123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"16\\d{3,7}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"1612345"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:3(?:\\d{4}|00\\d{6})|80(?:0\\d{6}|2\\d{3}))" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1300123456"]; + self.codeID = @"AU"; + self.countryCode = [NSNumber numberWithInteger:61]; + self.internationalPrefix = @"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"; + self.preferredInternationalPrefix = @"0011"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2378]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2378])(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[45]|14"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"16"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(16)(\\d{3})(\\d{2,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1(?:[38]0|90)"]; + [numberFormats3_patternArray addObject:@"1(?:[38]00|90)"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1[389]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"180"]; + [numberFormats4_patternArray addObject:@"1802"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(180)(2\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"19[13]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(19\\d)(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"19[67]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(19\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"13[1-9]"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(13)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-9]|600|123)\\d{7,8}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2\\d{7}|1962\\d{4})|(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"221234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[4-9]\\d{7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"961234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}|1230\\d{7}" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600\\d{7,8}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"6001234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"44\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"441234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600\\d{7,8}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"6001234567"]; + self.codeID = @"CL"; + self.countryCode = [NSNumber numberWithInteger:56]; + self.internationalPrefix = @"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"22"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[357]|4[1-35]|6[13-57]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"44"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(44)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"60|8"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([68]00)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"60"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(600)(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1230)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"219"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"[1-9]"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4,5})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"22"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"[357]|4[1-35]|6[13-57]"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"9"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"44"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(44)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"60|8"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([68]00)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + + NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats5_patternArray addObject:@"60"]; + NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(600)(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; + + NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats6_patternArray addObject:@"1"]; + NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1230)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; + + NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats7_patternArray addObject:@"219"]; + NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataEC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{9,10}|[2-8]\\d{7}|9\\d{8}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7][2-7]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:39|[45][89]|[67][7-9]|[89]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"991234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6,7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"18001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]890\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"28901234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"EC"; + self.countryCode = [NSNumber numberWithInteger:593]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[247]|[356][2-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[247]|[356][2-8]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"9"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"1"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBQ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[347]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:318[023]|416[023]|7(?:1[578]|50)\\d)\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7151234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:318[14-68]|416[15-9]|7(?:0[01]|7[07]|[89]\\d)\\d)\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3181234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BQ"; + self.countryCode = [NSNumber numberWithInteger:599]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:22|33|4[23])\\d{6}|(?:22|33)\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"222123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[5-79]\\d{7}|[579]\\d{7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"671234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CM"; + self.countryCode = [NSNumber numberWithInteger:237]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[26]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([26])(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[23579]|88"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2357-9]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-46-9]\\d{7,10}|5\\d{8,9}" withPossibleNumberPattern:@"\\d{8,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[1-9][2-5]\\d{7}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"1123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[1-9](?:7|9\\d)\\d{7}|(?:2[12478]|9[1-9])9?[6-9]\\d{7}|(?:3[1-578]|[468][1-9]|5[13-5]|7[13-579])[6-9]\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"11961234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6,7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[359]00\\d{6,7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"300123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34]00\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40041234"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34]00\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40041234"]; + self.codeID = @"BR"; + self.countryCode = [NSNumber numberWithInteger:55]; + self.internationalPrefix = @"00(?:1[45]|2[135]|31|4[13])"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0(?:(1[245]|2[135]|31|4[13])(\\d{10,11}))?"; + self.nationalPrefixTransformRule = @"$2"; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-9](?:[1-9]|0[1-9])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"9(?:[1-9]|0[1-9])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1[125689]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3,5})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"(?:1[1-9]|2[12478]|9[1-9])9"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[1-9][1-9]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"[34]00"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([34]00\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"[3589]00"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"([3589]00)(\\d{2,3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"(?:1[1-9]|2[12478]|9[1-9])9"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"[1-9][1-9]"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"[34]00"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([34]00\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"[3589]00"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([3589]00)(\\d{2,3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[25-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:2\\d|8[1-9])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:6\\d|9[2-478])|6(?:[039]0|22|4[01]|6[0-2])|7[34]\\d|9(?:6[45]|9[4-8]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5601234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9001234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"28\\d{5}|501\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5011234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AW"; + self.countryCode = [NSNumber numberWithInteger:297]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,9}" withPossibleNumberPattern:@"\\d{4,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"21(?:100\\d{2}|95\\d{3,4}|\\d{8,10})|(?:10|2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:71|98))(?:100\\d{2}|95\\d{3,4}|\\d{8})|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[3-9]|5[2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100\\d{2}|95\\d{3,4}|\\d{7})|80(?:29|6[03578]|7[018]|81)\\d{4}" withPossibleNumberPattern:@"\\d{4,12}" withExample:@"1012345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:[38]\\d|4[57]|5[0-35-9]|7[06-8])\\d{8}" withPossibleNumberPattern:@"\\d{11}" withExample:@"13123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:10)?800\\d{7}" withPossibleNumberPattern:@"\\d{10,12}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"16[08]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"16812345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"400\\d{7}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[4789]|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[3678]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"4001234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4|(?:10)?8)00\\d{7}" withPossibleNumberPattern:@"\\d{10,12}" withExample:@"4001234567"]; + self.codeID = @"CN"; + self.countryCode = [NSNumber numberWithInteger:86]; + self.internationalPrefix = @"(1[1279]\\d{3})?00"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"(1[1279]\\d{3})|0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"80[2678]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[48]00"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([48]00)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"100|95"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5,6})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"(?:10|2\\d)[19]"]; + [numberFormats3_patternArray addObject:@"(?:10|2\\d)(?:10|9[56])"]; + [numberFormats3_patternArray addObject:@"(?:10|2\\d)(?:100|9[56])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[3-9]"]; + [numberFormats4_patternArray addObject:@"[3-9]\\d{2}[19]"]; + [numberFormats4_patternArray addObject:@"[3-9]\\d{2}(?:10|9[56])"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"[2-9]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3,4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"21"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{4})(\\d{4,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"10[1-9]|2[02-9]"]; + [numberFormats7_patternArray addObject:@"10[1-9]|2[02-9]"]; + [numberFormats7_patternArray addObject:@"10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:71|98)"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"1[3-578]"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats10]; + + NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; + [numberFormats11_patternArray addObject:@"108"]; + [numberFormats11_patternArray addObject:@"1080"]; + [numberFormats11_patternArray addObject:@"10800"]; + NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(10800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats11]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"80[2678]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"[48]00"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([48]00)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"(?:10|2\\d)[19]"]; + [intlNumberFormats2_patternArray addObject:@"(?:10|2\\d)(?:10|9[56])"]; + [intlNumberFormats2_patternArray addObject:@"(?:10|2\\d)(?:100|9[56])"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"[3-9]"]; + [intlNumberFormats3_patternArray addObject:@"[3-9]\\d{2}[19]"]; + [intlNumberFormats3_patternArray addObject:@"[3-9]\\d{2}(?:10|9[56])"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"21"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{4})(\\d{4,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + + NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats5_patternArray addObject:@"10[1-9]|2[02-9]"]; + [intlNumberFormats5_patternArray addObject:@"10[1-9]|2[02-9]"]; + [intlNumberFormats5_patternArray addObject:@"10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]; + NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; + + NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats6_patternArray addObject:@"3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:71|98)"]; + NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; + + NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats7_patternArray addObject:@"3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]; + NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; + + NSMutableArray *intlNumberFormats8_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats8_patternArray addObject:@"1[3-578]"]; + NBNumberFormat *intlNumberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats8_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats8]; + + NSMutableArray *intlNumberFormats9_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats9_patternArray addObject:@"108"]; + [intlNumberFormats9_patternArray addObject:@"1080"]; + [intlNumberFormats9_patternArray addObject:@"10800"]; + NBNumberFormat *intlNumberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(10800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats9_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats9]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataEE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3,4}|[3-9]\\d{6,7}|800\\d{6,7}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5\\d|8[1-5])\\d{6}|5(?:[02]\\d{2}|1(?:[0-8]\\d|95)|5[0-478]\\d|64[0-4]|65[1-589])\\d{3}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"51234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800(?:0\\d{3}|1\\d|[2-9])\\d{3}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:40\\d{2}|900)\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"9001234"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[0-2]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:2[01245]|3[0-6]|4[1-489]|5[0-59]|6[1-46-9]|7[0-27-9]|8[189]|9[012])\\d{1,2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"12123"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3,4}|800[2-9]\\d{3}" withPossibleNumberPattern:@"\\d{4,7}" withExample:@"8002123"]; + self.codeID = @"EE"; + self.countryCode = [NSNumber numberWithInteger:372]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]"]; + [numberFormats0_patternArray addObject:@"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3-79]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"70"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(70)(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"800"]; + [numberFormats2_patternArray addObject:@"8000"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(8000)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"40|5|8(?:00|[1-5])"]; + [numberFormats3_patternArray addObject:@"40|5|8(?:00[1-9]|[1-5])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([458]\\d{3})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3467]|8[0-4]|9[2-467])|461|502|6(?:0[12]|12|7[67]|8[78]|9[89])|702)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2423456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(?:3(?:5[79]|[79]5)|4(?:[2-4][1-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-9]|65|77)|6[34]6|727)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2423591234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242300\\d{4}|8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BS"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"242"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataDJ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[27]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1[2-5]|7[45])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21360003"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"77[6-8]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77831001"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DJ"; + self.countryCode = [NSNumber numberWithInteger:253]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAX +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135]\\d{5,9}|[27]\\d{4,9}|4\\d{5,10}|6\\d{7,8}|8\\d{6,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[1-8]\\d{3,9}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"1812345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{5,10}|50\\d{4,8}" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"412345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]00\\d{5,6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"600123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]0\\d{4,8}|2(?:0(?:[016-8]\\d{3,7}|[2-59]\\d{2,7})|9\\d{4,8})|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"10112345"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]00\\d{3,7}|2(?:0(?:0\\d{3,7}|2[023]\\d{1,6}|9[89]\\d{1,6}))|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"100123"]; + self.codeID = @"AX"; + self.countryCode = [NSNumber numberWithInteger:358]; + self.internationalPrefix = @"00|99[049]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[13]\\d{0,3}|[24-8])\\d{7}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[124-8][2-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0[0-5]|1\\d|2[0-2]|5[01])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3211234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"18001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"19(?:0[01]|4[78])\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"19001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CO"; + self.countryCode = [NSNumber numberWithInteger:57]; + self.internationalPrefix = @"00(?:4(?:[14]4|56)|[579])"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0([3579]|4(?:44|56))?"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1(?:8[2-9]|9[0-3]|[2-7])|[24-8]"]; + [numberFormats0_patternArray addObject:@"1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1(?:80|9[04])"]; + [numberFormats2_patternArray addObject:@"1(?:800|9(?:0[01]|4[78]))"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{7})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"1(?:8[2-9]|9[0-3]|[2-7])|[24-8]"]; + [intlNumberFormats0_patternArray addObject:@"1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"3"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"1(?:80|9[04])"]; + [intlNumberFormats2_patternArray addObject:@"1(?:800|9(?:0[01]|4[78]))"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{7})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-8]\\d{6,7}" withPossibleNumberPattern:@"\\d{6,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"2345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]7\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"17123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BT"; + self.countryCode = [NSNumber numberWithInteger:975]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1|77"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([17]7)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-68]|7[246]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-8])(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataDK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-7]\\d|8[126-9]|9[1-36-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"32123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-7]\\d|8[126-9]|9[1-36-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DK"; + self.countryCode = [NSNumber numberWithInteger:45]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataEG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:3[23]\\d|5(?:[23]|9\\d))|2[2-4]\\d{2}|3\\d{2}|4(?:0[2-5]|[578][23]|64)\\d|5(?:0[2-7]|[57][23])\\d|6[24-689]3\\d|8(?:2[2-57]|4[26]|6[237]|8[2-4])\\d|9(?:2[27]|3[24]|52|6[2356]|7[2-4])\\d)\\d{5}|1[69]\\d{3}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"234567890"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:0[0-269]|1[0-245]|2[0-278])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1001234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"EG"; + self.countryCode = [NSNumber numberWithInteger:20]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[23]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[012]|[89]00"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1[35]|[4-6]|[89][2-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataAZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[28]\\d|2(?:02|1[24]|2[2-4]|33|[45]2|6[23])|365)\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"123123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[04]|5[015]|60|7[07])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"401234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"881234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900200\\d{3}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900200123"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AZ"; + self.countryCode = [NSNumber numberWithInteger:994]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"(?:1[28]|2(?:[45]2|[0-36])|365)"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[4-8]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataEH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"528[89]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"528812345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:0[0-8]|[12-79]\\d|8[01])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"650123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"EH"; + self.countryCode = [NSNumber numberWithInteger:212]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"528[89]"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataDM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[57-9]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4]|70[1-3])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7674201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"767(?:2(?:[234689]5|7[5-7])|31[5-7]|61[2-7])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7672251234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DM"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"767"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{8,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[24-7]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:0[01]|7[0-3])\\d{5}|6(?:[0-2]\\d|30)\\d{5}|7[0-3]\\d{6}|8[3-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"83123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[059]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"210[0-6]\\d{4}|4(?:0(?:0[01]\\d{4}|10[0-3]\\d{3}|2(?:00\\d{3}|900\\d{2})|3[01]\\d{4}|40\\d{4}|5\\d{5}|60\\d{4}|70[01]\\d{3}|8[0-2]\\d{4})|1[01]\\d{5}|20[0-3]\\d{4}|400\\d{4}|70[0-2]\\d{4})|5100\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40001234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CR"; + self.countryCode = [NSNumber numberWithInteger:506]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"(19(?:0[012468]|1[09]|20|66|77|99))"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[24-7]|8[3-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[89]0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0235-9]|55|6\\d|7[01]|9[0-57])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2401234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[1-356]\\d|4[0-7]|7[014-7])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"79[12][01]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"79101234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BW"; + self.countryCode = [NSNumber numberWithInteger:267]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-6]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(90)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0?\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"01\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"01441234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0?[2-7]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"06031234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GA"; + self.countryCode = [NSNumber numberWithInteger:241]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-7]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataDO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[04]9[2-9]\\d{6}|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d{2}|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9]))\\d{4})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8092345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[024]9[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8092345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DO"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"8[024]9"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-4]\\d{8}|[89]\\d{9,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d{2})|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"152450911"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:5[5679]|9[1-9])|33\\d|44\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"294911911"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:0[13]|20\\d)\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"8011234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:810|902)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9021234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[013]|[12]0)\\d{8}|902\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"82012345678"]; + self.codeID = @"BY"; + self.countryCode = [NSNumber numberWithInteger:375]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = @"8~10"; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"8?0?"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"17[0-3589]|2[4-9]|[34]"]; + [numberFormats0_patternArray addObject:@"17(?:[02358]|1[0-2]|9[0189])|2[4-9]|[34]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"8 0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1(?:5[24]|6[235]|7[467])|2(?:1[246]|2[25]|3[26])"]; + [numberFormats1_patternArray addObject:@"1(?:5[24]|6(?:2|3[04-9]|5[0346-9])|7(?:[46]|7[37-9]))|2(?:1[246]|2[25]|3[26])"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8 0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])"]; + [numberFormats2_patternArray addObject:@"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])"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{3})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8[01]|9"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"82"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGB +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{7,10}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:0[01378]|3[0189]|4[017]|8[0-46-9]|9[012])\\d{7}|1(?:(?:1(?:3[0-48]|[46][0-4]|5[012789]|7[0-49]|8[01349])|21[0-7]|31[0-8]|[459]1\\d|61[0-46-9]))\\d{6}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-4789]|7[013-9]|9\\d)|3(?:0\\d|[25][02-9]|3[02-579]|[468][0-46-9]|7[1235679]|9[24578])|4(?:0[03-9]|[28][02-5789]|[37]\\d|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1235-9]|2[024-9]|3[015689]|4[02-9]|5[03-9]|6\\d|7[0-35-9]|8[0-468]|9[0-5789])|6(?:0[034689]|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0124578])|7(?:0[0246-9]|2\\d|3[023678]|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-5789]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-5789]|4[2-9]|5[0-579]|6[234789]|7[0124578]|8\\d|9[2-57]))\\d{6}|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-4789]|8[345])))|3(?:638[2-5]|647[23]|8(?:47[04-9]|64[015789]))|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[123]))|5(?:24(?:3[2-79]|6\\d)|276\\d|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[567]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|955[0-4])|7(?:26(?:6[13-9]|7[0-7])|442\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|84(?:3[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}|176888[234678]\\d{2}|16977[23]\\d{3}" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"1212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[1-4]\\d\\d|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(?:[04-9]\\d|1[02-9]|2[0-35-9]|3[0-689]))\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7400123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{2,3})?" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:87[123]|9(?:[01]\\d|8[2349]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9012345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8431234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7640123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0347]|55)\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GB"; + self.countryCode = [NSNumber numberWithInteger:44]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" x"; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2|5[56]|7(?:0|6[013-9])"]; + [numberFormats0_patternArray addObject:@"2|5[56]|7(?:0|6(?:[013-9]|2[0-35-9]))"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1(?:1|\\d1)|3|9[018]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1(?:38|5[23]|69|76|94)"]; + [numberFormats2_patternArray addObject:@"1(?:387|5(?:24|39)|697|768|946)"]; + [numberFormats2_patternArray addObject:@"1(?:3873|5(?:242|39[456])|697[347]|768[347]|9467)"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"7(?:[1-5789]|62)"]; + [numberFormats4_patternArray addObject:@"7(?:[1-5789]|624)"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"800"]; + [numberFormats5_patternArray addObject:@"8001"]; + [numberFormats5_patternArray addObject:@"80011"]; + [numberFormats5_patternArray addObject:@"800111"]; + [numberFormats5_patternArray addObject:@"8001111"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"845"]; + [numberFormats6_patternArray addObject:@"8454"]; + [numberFormats6_patternArray addObject:@"84546"]; + [numberFormats6_patternArray addObject:@"845464"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(845)(46)(4\\d)" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"8(?:4[2-5]|7[0-3])"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"80"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"[58]00"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"([58]00)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57]\\d{5,7}" withPossibleNumberPattern:@"\\d{4,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[1-4]\\d{5,6}|3(?:1\\d{6}|[23]\\d{4,6})|4(?:[125]\\d{5,6}|[36]\\d{6}|[78]\\d{4,6})|7\\d{6,7}" withPossibleNumberPattern:@"\\d{4,8}" withExample:@"71234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"51234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CU"; + self.countryCode = [NSNumber numberWithInteger:53]; + self.internationalPrefix = @"119"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-4]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataBZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{6}|0\\d{10}" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[234578][02]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2221234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[0-367]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6221234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"08001234123"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BZ"; + self.countryCode = [NSNumber numberWithInteger:501]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0)(800)(\\d{4})(\\d{3})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataCV +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[259]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2211234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:9\\d|59)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9911234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CV"; + self.countryCode = [NSNumber numberWithInteger:238]; + self.internationalPrefix = @"0"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadata808 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:808]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataGD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|68|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"4732691234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"473(?:4(?:0[2-79]|1[04-9]|20|58)|5(?:2[01]|3[3-8])|901)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"4734031234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GD"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"473"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataFI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{4,11}|[2-9]\\d{4,10}" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:[3569][1-8]\\d{3,9}|[47]\\d{5,10})|2[1-8]\\d{3,9}|3(?:[1-8]\\d{3,9}|9\\d{4,8})|[5689][1-8]\\d{3,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:@"1312345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{5,10}|50\\d{4,8}" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"412345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]00\\d{5,6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"600123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]0\\d{4,8}|2(?:0(?:[016-8]\\d{3,7}|[2-59]\\d{2,7})|9\\d{4,8})|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"10112345"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]00\\d{3,7}|2(?:0(?:0\\d{3,7}|2[023]\\d{1,6}|9[89]\\d{1,6}))|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"100123"]; + self.codeID = @"FI"; + self.countryCode = [NSNumber numberWithInteger:358]; + self.internationalPrefix = @"00|99[049]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"(?:[1-3]00|[6-8]0)"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[14]|2[09]|50|7[135]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[25689][1-8]|3"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCW +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[169]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[48]\\d{2}|50\\d|7(?:2[0-24]|[34]\\d|6[35-7]|77|8[7-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"94151234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:5(?:[1246]\\d|3[01])|6(?:[16-9]\\d|3[01]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"95181234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:10|69)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"1011234"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"955\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"95581234"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CW"; + self.countryCode = [NSNumber numberWithInteger:599]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[13-7]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34578]\\d{8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"322123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:14|5[01578]|68|7[0147-9]|9[0-35-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"555123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"706\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"706123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"706\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"706123456"]; + self.codeID = @"GE"; + self.countryCode = [NSNumber numberWithInteger:995]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[348]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"7"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"5"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataFJ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[36-9]\\d{6}|0\\d{10}" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0-5]|6[25-7]|8[58])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7[0-8]|8[034679]|9\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"08001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"FJ"; + self.countryCode = [NSNumber numberWithInteger:679]; + self.internationalPrefix = @"0(?:0|52)"; + self.preferredInternationalPrefix = @"00"; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[36-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataCX +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1458]\\d{5,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89164\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"891641234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[03-9]|8[17-9]|9[017-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:80(?:0\\d{2})?|3(?:00\\d{2})?)\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"500\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"500123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"550\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"550123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CX"; + self.countryCode = [NSNumber numberWithInteger:61]; + self.internationalPrefix = @"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"; + self.preferredInternationalPrefix = @"0011"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGF +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"594101234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"694(?:[04][0-7]|1[0-5]|3[018]|[29]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"694201234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GF"; + self.countryCode = [NSNumber numberWithInteger:594]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataFK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-47]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:@"31234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:@"51234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"FK"; + self.countryCode = [NSNumber numberWithInteger:500]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[257-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[5-79]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"96123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80001234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[09]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50|77)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CY"; + self.countryCode = [NSNumber numberWithInteger:357]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135789]\\d{6,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1481\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1481456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:781|839|911)\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7781123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{2,3})?" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:87[123]|9(?:[01]\\d|8[0-3]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9012345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8431234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7640123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0347]|55)\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GG"; + self.countryCode = [NSNumber numberWithInteger:44]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" x"; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataCZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{8}|9\\d{8,11}" withPossibleNumberPattern:@"\\d{9,12}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"212345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"601123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[05689]|76)\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[134]\\d{7}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"811234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[01]\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"700123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[17]0\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"910123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:5\\d|7[234])\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"972123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:3\\d{9}|6\\d{7,10})" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"93123456789"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CZ"; + self.countryCode = [NSNumber numberWithInteger:420]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-8]|9[015-7]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"96"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(96\\d)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9[36]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGH +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235]\\d{8}|8\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0[237]\\d|[167](?:2[0-6]|7\\d)|2(?:2[0-5]|7\\d)|3(?:2[0-3]|7\\d)|4(?:2[013-9]|3[01]|7\\d)|5(?:2[0-7]|7\\d)|8(?:2[0-2]|7\\d)|9(?:20|7\\d))\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"302345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[034678]\\d|5(?:[047]\\d|54|6[01]))\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"231234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; + self.codeID = @"GH"; + self.countryCode = [NSNumber numberWithInteger:233]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[235]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataFM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[39]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[2357]0[1-9]\\d{3}|9[2-7]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3501234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"FM"; + self.countryCode = [NSNumber numberWithInteger:691]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataER +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[178]\\d{6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:1[12568]|20|40|55|6[146])\\d{4}|8\\d{6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"8370362"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"17[1-3]\\d{4}|7\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ER"; + self.countryCode = [NSNumber numberWithInteger:291]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGI +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2568]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:00\\d|1(?:6[24-7]|9\\d)|2(?:00|2[2457]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20012345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[46-8]|62)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"57123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[1-689]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"87\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"87123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GI"; + self.countryCode = [NSNumber numberWithInteger:350]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataES +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[13]0|[28][0-8]|[47][1-9]|5[01346-9]|6[0457-9])\\d{6}|9(?:[1238][0-8]\\d{6}|4[1-9]\\d{6}|5\\d{7}|6(?:[0-8]\\d{6}|9(?:0(?:[0-57-9]\\d{4}|6(?:0[0-8]|1[1-9]|[2-9]\\d)\\d{2})|[1-9]\\d{5}))|7(?:[124-9]\\d{2}|3(?:[0-8]\\d|9[1-9]))\\d{4})" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6\\d{6}|7[1-4]\\d{5}|9(?:6906(?:09|10)|7390\\d{2}))\\d{2}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[89]00\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[367]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"803123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[12]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"901123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"51\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"511234567"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ES"; + self.countryCode = [NSNumber numberWithInteger:34]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[568]|[79][0-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([5-9]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataFO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20|[3-4]\\d|8[19])\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-9]|5\\d|7[1-79])\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"211234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[257-9]\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"802123"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90(?:[1345][15-7]|2[125-7]|99)\\d{2}" withPossibleNumberPattern:@"\\d{6}" withExample:@"901123"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[0-36]|88)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"601234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"FO"; + self.countryCode = [NSNumber numberWithInteger:298]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"(10(?:01|[12]0|88))"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{6})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataET +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-59]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[57]|44|5[0-4])|6(?:18|2[69]|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|22[0-6]|33[0134689]|44[04]|55[0-6]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:11[1-9]|22[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"111112345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[1-3]\\d|5[89])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"911234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"ET"; + self.countryCode = [NSNumber numberWithInteger:251]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-59]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-689]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:19|3[1-6]|6[14689]|8[14-79]|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"321000"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[245][2-9]\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"221234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"801234"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[89]\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"381234"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GL"; + self.countryCode = [NSNumber numberWithInteger:299]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataDZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[1-4]|[5-9]\\d)\\d{7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|2[014-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[4-6]|7[7-9])\\d{7}|6(?:[569]\\d|7[0-4])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"551234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[3-689]1\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"808123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[12]1\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"98[23]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"983123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DZ"; + self.countryCode = [NSNumber numberWithInteger:213]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-4]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-4]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[5-8]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([5-8]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"9"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGM +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4(?:[23]\\d{2}|4(?:1[024679]|[6-9]\\d))|5(?:54[0-7]|6(?:[67]\\d)|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5661234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[0-6]|[3679]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3012345"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GM"; + self.countryCode = [NSNumber numberWithInteger:220]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataID +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{6,10}" withPossibleNumberPattern:@"\\d{5,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1(?:14\\d{3}|[0-8]\\d{6,7}|500\\d{3}|9\\d{6})|2\\d{6,8}|4\\d{7,8})|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|2[1-578]|3[1-68]|4[1-3]|5[1-8]|6[1-3568]|7[0-46]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[1246-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:19?|[25]\\d|3[1-469]|4[1-6])|7(?:1[1-9]|2[14-9]|[36]\\d|4[1-8]|5[1-9]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}" withPossibleNumberPattern:@"\\d{5,11}" withExample:@"612345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:1(?:3[145]|4[01]|5[1-469]|60|8[0359]|9\\d)|2(?:88|9[1256])|3[1-4]9|4(?:36|91)|5(?:1[349]|[2-4]9)|6[0-7]9|7(?:[1-36]9|4[39])|8[1-5]9|9[1-48]9)|3(?:19[1-3]|2[12]9|3[13]9|4(?:1[69]|39)|5[14]9|6(?:1[69]|2[89])|709)|4[13]19|5(?:1(?:19|8[39])|4[129]9|6[12]9)|6(?:19[12]|2(?:[23]9|77))|7(?:1[13]9|2[15]9|419|5(?:1[89]|29)|6[15]9|7[178]9))\\d{5,6}|8[1-35-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"812345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"177\\d{6,8}|800\\d{5,7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"809\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8091234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8071\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8071123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8071\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8071123456"]; + self.codeID = @"ID"; + self.countryCode = [NSNumber numberWithInteger:62]; + self.internationalPrefix = @"0(?:0[1789]|10(?:00|1[67]))"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2[124]|[36]1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[4579]|2[035-9]|[36][02-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"8[1-35-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{3,4})(\\d{3,4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(177)(\\d{6,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"800"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"80[79]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d)(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataFR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-5]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{8}|7[5-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89[1-37-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:1[019]|2[0156]|84|90)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"FR"; + self.countryCode = [NSNumber numberWithInteger:33]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-79]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"11"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[1-79]"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"8"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[367]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"30241234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[02356]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"601123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"722\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"722123456"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GN"; + self.countryCode = [NSNumber numberWithInteger:224]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[67]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[124-9]\\d{6,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7,8}|2(?:1\\d{6,7}|3\\d{7}|[24-9]\\d{5})|4(?:0[24]\\d{5}|[1-469]\\d{7}|5\\d{6}|7\\d{5}|8[0-46-9]\\d{7})|5(?:0[45]\\d{5}|1\\d{6}|[23679]\\d{7}|8\\d{5})|6(?:1\\d{6}|[237-9]\\d{5}|[4-6]\\d{7})|7[14]\\d{7}|9(?:1\\d{6}|[04]\\d{7}|[35-9]\\d{5})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"2212345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:22\\d{6}|[35-9]\\d{7})" withPossibleNumberPattern:@"\\d{9}" withExample:@"850123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"15(?:1[2-8]|[2-8]0|9[089])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1520123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[59]0\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1850123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"761234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"818\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"818123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[35-9]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8501234567"]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[59]0\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1850123456"]; + self.codeID = @"IE"; + self.countryCode = [NSNumber numberWithInteger:353]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[24-9]|47|58|6[237-9]|9[35-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"40[24]|50[45]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"48"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(48)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"81"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(818)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"[24-69]|7[14]"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"76|8[35-9]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"([78]\\d)(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"70"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(700)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"1(?:8[059]|5)"]; + [numberFormats8_patternArray addObject:@"1(?:8[059]0|5)"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataHK +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-7]\\d{7}|8\\d{7,8}|9\\d{4,10}" withPossibleNumberPattern:@"\\d{5,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[23]\\d|5[78])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[1-69]\\d|6\\d{2}|9(?:0[1-9]|[1-8]\\d))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"51234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900(?:[0-24-9]\\d{7}|3\\d{1,4})" withPossibleNumberPattern:@"\\d{5,11}" withExample:@"90012345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[1-3]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81123456"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71234567"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"HK"; + self.countryCode = [NSNumber numberWithInteger:852]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[235-7]|[89](?:0[1-9]|[1-9])"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"800"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"900"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(900)(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"900"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(900)(\\d{2,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGP +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"590(?:0[13468]|1[012]|2[0-68]|3[28]|4[0-8]|5[579]|6[0189]|70|8[0-689]|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"590201234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"690(?:0[0-7]|[1-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690301234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GP"; + self.countryCode = [NSNumber numberWithInteger:590]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([56]90)(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGQ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23589]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"333091234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:222|551)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GQ"; + self.countryCode = [NSNumber numberWithInteger:240]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[235]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[26-9]\\d{9}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1\\d{2}|2(?:2[1-46-9]|3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|3[1245]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"69\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6912345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[19]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9091234567"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:0[16]|12|25)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8011234567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GR"; + self.countryCode = [NSNumber numberWithInteger:30]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"21|7"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([27]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[2-9]1|[689]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"2[2-9][02-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataHN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[237-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2(?:0[019]|1[1-36]|[23]\\d|4[056]|5[57]|7[01389]|8[0146-9]|9[012])|4(?:2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:4[3-5]|5\\d|6[56]|74)|6(?:[056]\\d|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[34])|8(?:79|8[0-35789]|9[1-57-9]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[37-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"91234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"HN"; + self.countryCode = [NSNumber numberWithInteger:504]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataJE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135789]\\d{6,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1534\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1534456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:509|7(?:00|97)|829|937)\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7797123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:07(?:35|81)|8901)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8007354567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:871206|90(?:066[59]|1810|71(?:07|55)))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9018105678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|70002)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8447034567"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"701511\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7015115678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7640123456"]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"JE"; + self.countryCode = [NSNumber numberWithInteger:44]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = @" x"; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{7}|1[89]\\d{9}" withPossibleNumberPattern:@"\\d{8}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[267][2-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[345]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"51234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[01]\\d{8}" withPossibleNumberPattern:@"\\d{11}" withExample:@"18001112222"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"19\\d{9}" withPossibleNumberPattern:@"\\d{11}" withExample:@"19001112222"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GT"; + self.countryCode = [NSNumber numberWithInteger:502]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-7]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataGU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6713001234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6713001234"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GU"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"671"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataIL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]\\d{6,9}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-489]\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"21234567"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:[02347-9]\\d{2}|5(?:01|2[23]|3[34]|4[45]|5[5689]|6[67]|7[78]|8[89]|9[7-9])|6[2-9]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"501234567"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:80[019]\\d{3}|255)\\d{3}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"1800123456"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:212|(?:9(?:0[01]|19)|200)\\d{2})\\d{4}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"1919123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1700\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1700123456"]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:2[23]\\d|3[237]\\d|47\\d|6(?:5\\d|8[068])|7\\d{2}|8(?:33|55|77|81))\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"771234567"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-689]\\d{3}|1599\\d{6}" withPossibleNumberPattern:@"\\d{4}(?:\\d{6})?" withExample:@"1599123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1700\\d{6}|[2-689]\\d{3}" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"1700123456"]; + self.codeID = @"IL"; + self.countryCode = [NSNumber numberWithInteger:972]; + self.internationalPrefix = @"0(?:0|1[2-9])"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[2-489]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-489])(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[57]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([57]\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"1[7-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)([7-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"125"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1255)(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"120"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(1200)(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"121"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(1212)(\\d{2})(\\d{2})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"15"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1599)(\\d{6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"[2-689]"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"*$1" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h new file mode 100644 index 0000000..16a5ed6 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h @@ -0,0 +1,8 @@ +#import + +@interface NBMetadataCoreMapper : NSObject + ++ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key; + +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m new file mode 100644 index 0000000..cd4e787 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m @@ -0,0 +1,915 @@ +#import "NBMetadataCoreMapper.h" + +@implementation NBMetadataCoreMapper + +static NSMutableDictionary *kMapCCode2CN; + ++ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + kMapCCode2CN = [[NSMutableDictionary alloc] init]; + + NSMutableArray *countryCode356Array = [[NSMutableArray alloc] init]; + [countryCode356Array addObject:@"MT"]; + [kMapCCode2CN setObject:countryCode356Array forKey:@"356"]; + + NSMutableArray *countryCode53Array = [[NSMutableArray alloc] init]; + [countryCode53Array addObject:@"CU"]; + [kMapCCode2CN setObject:countryCode53Array forKey:@"53"]; + + NSMutableArray *countryCode381Array = [[NSMutableArray alloc] init]; + [countryCode381Array addObject:@"RS"]; + [kMapCCode2CN setObject:countryCode381Array forKey:@"381"]; + + NSMutableArray *countryCode373Array = [[NSMutableArray alloc] init]; + [countryCode373Array addObject:@"MD"]; + [kMapCCode2CN setObject:countryCode373Array forKey:@"373"]; + + NSMutableArray *countryCode508Array = [[NSMutableArray alloc] init]; + [countryCode508Array addObject:@"PM"]; + [kMapCCode2CN setObject:countryCode508Array forKey:@"508"]; + + NSMutableArray *countryCode509Array = [[NSMutableArray alloc] init]; + [countryCode509Array addObject:@"HT"]; + [kMapCCode2CN setObject:countryCode509Array forKey:@"509"]; + + NSMutableArray *countryCode54Array = [[NSMutableArray alloc] init]; + [countryCode54Array addObject:@"AR"]; + [kMapCCode2CN setObject:countryCode54Array forKey:@"54"]; + + NSMutableArray *countryCode800Array = [[NSMutableArray alloc] init]; + [countryCode800Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode800Array forKey:@"800"]; + + NSMutableArray *countryCode268Array = [[NSMutableArray alloc] init]; + [countryCode268Array addObject:@"SZ"]; + [kMapCCode2CN setObject:countryCode268Array forKey:@"268"]; + + NSMutableArray *countryCode357Array = [[NSMutableArray alloc] init]; + [countryCode357Array addObject:@"CY"]; + [kMapCCode2CN setObject:countryCode357Array forKey:@"357"]; + + NSMutableArray *countryCode382Array = [[NSMutableArray alloc] init]; + [countryCode382Array addObject:@"ME"]; + [kMapCCode2CN setObject:countryCode382Array forKey:@"382"]; + + NSMutableArray *countryCode55Array = [[NSMutableArray alloc] init]; + [countryCode55Array addObject:@"BR"]; + [kMapCCode2CN setObject:countryCode55Array forKey:@"55"]; + + NSMutableArray *countryCode374Array = [[NSMutableArray alloc] init]; + [countryCode374Array addObject:@"AM"]; + [kMapCCode2CN setObject:countryCode374Array forKey:@"374"]; + + NSMutableArray *countryCode56Array = [[NSMutableArray alloc] init]; + [countryCode56Array addObject:@"CL"]; + [kMapCCode2CN setObject:countryCode56Array forKey:@"56"]; + + NSMutableArray *countryCode81Array = [[NSMutableArray alloc] init]; + [countryCode81Array addObject:@"JP"]; + [kMapCCode2CN setObject:countryCode81Array forKey:@"81"]; + + NSMutableArray *countryCode269Array = [[NSMutableArray alloc] init]; + [countryCode269Array addObject:@"KM"]; + [kMapCCode2CN setObject:countryCode269Array forKey:@"269"]; + + NSMutableArray *countryCode358Array = [[NSMutableArray alloc] init]; + [countryCode358Array addObject:@"FI"]; + [countryCode358Array addObject:@"AX"]; + [kMapCCode2CN setObject:countryCode358Array forKey:@"358"]; + + NSMutableArray *countryCode57Array = [[NSMutableArray alloc] init]; + [countryCode57Array addObject:@"CO"]; + [kMapCCode2CN setObject:countryCode57Array forKey:@"57"]; + + NSMutableArray *countryCode82Array = [[NSMutableArray alloc] init]; + [countryCode82Array addObject:@"KR"]; + [kMapCCode2CN setObject:countryCode82Array forKey:@"82"]; + + NSMutableArray *countryCode375Array = [[NSMutableArray alloc] init]; + [countryCode375Array addObject:@"BY"]; + [kMapCCode2CN setObject:countryCode375Array forKey:@"375"]; + + NSMutableArray *countryCode58Array = [[NSMutableArray alloc] init]; + [countryCode58Array addObject:@"VE"]; + [kMapCCode2CN setObject:countryCode58Array forKey:@"58"]; + + NSMutableArray *countryCode359Array = [[NSMutableArray alloc] init]; + [countryCode359Array addObject:@"BG"]; + [kMapCCode2CN setObject:countryCode359Array forKey:@"359"]; + + NSMutableArray *countryCode376Array = [[NSMutableArray alloc] init]; + [countryCode376Array addObject:@"AD"]; + [kMapCCode2CN setObject:countryCode376Array forKey:@"376"]; + + NSMutableArray *countryCode84Array = [[NSMutableArray alloc] init]; + [countryCode84Array addObject:@"VN"]; + [kMapCCode2CN setObject:countryCode84Array forKey:@"84"]; + + NSMutableArray *countryCode385Array = [[NSMutableArray alloc] init]; + [countryCode385Array addObject:@"HR"]; + [kMapCCode2CN setObject:countryCode385Array forKey:@"385"]; + + NSMutableArray *countryCode377Array = [[NSMutableArray alloc] init]; + [countryCode377Array addObject:@"MC"]; + [kMapCCode2CN setObject:countryCode377Array forKey:@"377"]; + + NSMutableArray *countryCode86Array = [[NSMutableArray alloc] init]; + [countryCode86Array addObject:@"CN"]; + [kMapCCode2CN setObject:countryCode86Array forKey:@"86"]; + + NSMutableArray *countryCode297Array = [[NSMutableArray alloc] init]; + [countryCode297Array addObject:@"AW"]; + [kMapCCode2CN setObject:countryCode297Array forKey:@"297"]; + + NSMutableArray *countryCode386Array = [[NSMutableArray alloc] init]; + [countryCode386Array addObject:@"SI"]; + [kMapCCode2CN setObject:countryCode386Array forKey:@"386"]; + + NSMutableArray *countryCode378Array = [[NSMutableArray alloc] init]; + [countryCode378Array addObject:@"SM"]; + [kMapCCode2CN setObject:countryCode378Array forKey:@"378"]; + + NSMutableArray *countryCode670Array = [[NSMutableArray alloc] init]; + [countryCode670Array addObject:@"TL"]; + [kMapCCode2CN setObject:countryCode670Array forKey:@"670"]; + + NSMutableArray *countryCode298Array = [[NSMutableArray alloc] init]; + [countryCode298Array addObject:@"FO"]; + [kMapCCode2CN setObject:countryCode298Array forKey:@"298"]; + + NSMutableArray *countryCode387Array = [[NSMutableArray alloc] init]; + [countryCode387Array addObject:@"BA"]; + [kMapCCode2CN setObject:countryCode387Array forKey:@"387"]; + + NSMutableArray *countryCode590Array = [[NSMutableArray alloc] init]; + [countryCode590Array addObject:@"GP"]; + [countryCode590Array addObject:@"BL"]; + [countryCode590Array addObject:@"MF"]; + [kMapCCode2CN setObject:countryCode590Array forKey:@"590"]; + + NSMutableArray *countryCode379Array = [[NSMutableArray alloc] init]; + [countryCode379Array addObject:@"VA"]; + [kMapCCode2CN setObject:countryCode379Array forKey:@"379"]; + + NSMutableArray *countryCode299Array = [[NSMutableArray alloc] init]; + [countryCode299Array addObject:@"GL"]; + [kMapCCode2CN setObject:countryCode299Array forKey:@"299"]; + + NSMutableArray *countryCode591Array = [[NSMutableArray alloc] init]; + [countryCode591Array addObject:@"BO"]; + [kMapCCode2CN setObject:countryCode591Array forKey:@"591"]; + + NSMutableArray *countryCode680Array = [[NSMutableArray alloc] init]; + [countryCode680Array addObject:@"PW"]; + [kMapCCode2CN setObject:countryCode680Array forKey:@"680"]; + + NSMutableArray *countryCode808Array = [[NSMutableArray alloc] init]; + [countryCode808Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode808Array forKey:@"808"]; + + NSMutableArray *countryCode672Array = [[NSMutableArray alloc] init]; + [countryCode672Array addObject:@"NF"]; + [kMapCCode2CN setObject:countryCode672Array forKey:@"672"]; + + NSMutableArray *countryCode850Array = [[NSMutableArray alloc] init]; + [countryCode850Array addObject:@"KP"]; + [kMapCCode2CN setObject:countryCode850Array forKey:@"850"]; + + NSMutableArray *countryCode389Array = [[NSMutableArray alloc] init]; + [countryCode389Array addObject:@"MK"]; + [kMapCCode2CN setObject:countryCode389Array forKey:@"389"]; + + NSMutableArray *countryCode592Array = [[NSMutableArray alloc] init]; + [countryCode592Array addObject:@"GY"]; + [kMapCCode2CN setObject:countryCode592Array forKey:@"592"]; + + NSMutableArray *countryCode681Array = [[NSMutableArray alloc] init]; + [countryCode681Array addObject:@"WF"]; + [kMapCCode2CN setObject:countryCode681Array forKey:@"681"]; + + NSMutableArray *countryCode673Array = [[NSMutableArray alloc] init]; + [countryCode673Array addObject:@"BN"]; + [kMapCCode2CN setObject:countryCode673Array forKey:@"673"]; + + NSMutableArray *countryCode690Array = [[NSMutableArray alloc] init]; + [countryCode690Array addObject:@"TK"]; + [kMapCCode2CN setObject:countryCode690Array forKey:@"690"]; + + NSMutableArray *countryCode593Array = [[NSMutableArray alloc] init]; + [countryCode593Array addObject:@"EC"]; + [kMapCCode2CN setObject:countryCode593Array forKey:@"593"]; + + NSMutableArray *countryCode682Array = [[NSMutableArray alloc] init]; + [countryCode682Array addObject:@"CK"]; + [kMapCCode2CN setObject:countryCode682Array forKey:@"682"]; + + NSMutableArray *countryCode674Array = [[NSMutableArray alloc] init]; + [countryCode674Array addObject:@"NR"]; + [kMapCCode2CN setObject:countryCode674Array forKey:@"674"]; + + NSMutableArray *countryCode852Array = [[NSMutableArray alloc] init]; + [countryCode852Array addObject:@"HK"]; + [kMapCCode2CN setObject:countryCode852Array forKey:@"852"]; + + NSMutableArray *countryCode691Array = [[NSMutableArray alloc] init]; + [countryCode691Array addObject:@"FM"]; + [kMapCCode2CN setObject:countryCode691Array forKey:@"691"]; + + NSMutableArray *countryCode594Array = [[NSMutableArray alloc] init]; + [countryCode594Array addObject:@"GF"]; + [kMapCCode2CN setObject:countryCode594Array forKey:@"594"]; + + NSMutableArray *countryCode683Array = [[NSMutableArray alloc] init]; + [countryCode683Array addObject:@"NU"]; + [kMapCCode2CN setObject:countryCode683Array forKey:@"683"]; + + NSMutableArray *countryCode675Array = [[NSMutableArray alloc] init]; + [countryCode675Array addObject:@"PG"]; + [kMapCCode2CN setObject:countryCode675Array forKey:@"675"]; + + NSMutableArray *countryCode30Array = [[NSMutableArray alloc] init]; + [countryCode30Array addObject:@"GR"]; + [kMapCCode2CN setObject:countryCode30Array forKey:@"30"]; + + NSMutableArray *countryCode853Array = [[NSMutableArray alloc] init]; + [countryCode853Array addObject:@"MO"]; + [kMapCCode2CN setObject:countryCode853Array forKey:@"853"]; + + NSMutableArray *countryCode692Array = [[NSMutableArray alloc] init]; + [countryCode692Array addObject:@"MH"]; + [kMapCCode2CN setObject:countryCode692Array forKey:@"692"]; + + NSMutableArray *countryCode595Array = [[NSMutableArray alloc] init]; + [countryCode595Array addObject:@"PY"]; + [kMapCCode2CN setObject:countryCode595Array forKey:@"595"]; + + NSMutableArray *countryCode31Array = [[NSMutableArray alloc] init]; + [countryCode31Array addObject:@"NL"]; + [kMapCCode2CN setObject:countryCode31Array forKey:@"31"]; + + NSMutableArray *countryCode870Array = [[NSMutableArray alloc] init]; + [countryCode870Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode870Array forKey:@"870"]; + + NSMutableArray *countryCode676Array = [[NSMutableArray alloc] init]; + [countryCode676Array addObject:@"TO"]; + [kMapCCode2CN setObject:countryCode676Array forKey:@"676"]; + + NSMutableArray *countryCode32Array = [[NSMutableArray alloc] init]; + [countryCode32Array addObject:@"BE"]; + [kMapCCode2CN setObject:countryCode32Array forKey:@"32"]; + + NSMutableArray *countryCode596Array = [[NSMutableArray alloc] init]; + [countryCode596Array addObject:@"MQ"]; + [kMapCCode2CN setObject:countryCode596Array forKey:@"596"]; + + NSMutableArray *countryCode685Array = [[NSMutableArray alloc] init]; + [countryCode685Array addObject:@"WS"]; + [kMapCCode2CN setObject:countryCode685Array forKey:@"685"]; + + NSMutableArray *countryCode33Array = [[NSMutableArray alloc] init]; + [countryCode33Array addObject:@"FR"]; + [kMapCCode2CN setObject:countryCode33Array forKey:@"33"]; + + NSMutableArray *countryCode960Array = [[NSMutableArray alloc] init]; + [countryCode960Array addObject:@"MV"]; + [kMapCCode2CN setObject:countryCode960Array forKey:@"960"]; + + NSMutableArray *countryCode677Array = [[NSMutableArray alloc] init]; + [countryCode677Array addObject:@"SB"]; + [kMapCCode2CN setObject:countryCode677Array forKey:@"677"]; + + NSMutableArray *countryCode855Array = [[NSMutableArray alloc] init]; + [countryCode855Array addObject:@"KH"]; + [kMapCCode2CN setObject:countryCode855Array forKey:@"855"]; + + NSMutableArray *countryCode34Array = [[NSMutableArray alloc] init]; + [countryCode34Array addObject:@"ES"]; + [kMapCCode2CN setObject:countryCode34Array forKey:@"34"]; + + NSMutableArray *countryCode880Array = [[NSMutableArray alloc] init]; + [countryCode880Array addObject:@"BD"]; + [kMapCCode2CN setObject:countryCode880Array forKey:@"880"]; + + NSMutableArray *countryCode597Array = [[NSMutableArray alloc] init]; + [countryCode597Array addObject:@"SR"]; + [kMapCCode2CN setObject:countryCode597Array forKey:@"597"]; + + NSMutableArray *countryCode686Array = [[NSMutableArray alloc] init]; + [countryCode686Array addObject:@"KI"]; + [kMapCCode2CN setObject:countryCode686Array forKey:@"686"]; + + NSMutableArray *countryCode961Array = [[NSMutableArray alloc] init]; + [countryCode961Array addObject:@"LB"]; + [kMapCCode2CN setObject:countryCode961Array forKey:@"961"]; + + NSMutableArray *countryCode60Array = [[NSMutableArray alloc] init]; + [countryCode60Array addObject:@"MY"]; + [kMapCCode2CN setObject:countryCode60Array forKey:@"60"]; + + NSMutableArray *countryCode678Array = [[NSMutableArray alloc] init]; + [countryCode678Array addObject:@"VU"]; + [kMapCCode2CN setObject:countryCode678Array forKey:@"678"]; + + NSMutableArray *countryCode856Array = [[NSMutableArray alloc] init]; + [countryCode856Array addObject:@"LA"]; + [kMapCCode2CN setObject:countryCode856Array forKey:@"856"]; + + NSMutableArray *countryCode881Array = [[NSMutableArray alloc] init]; + [countryCode881Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode881Array forKey:@"881"]; + + NSMutableArray *countryCode36Array = [[NSMutableArray alloc] init]; + [countryCode36Array addObject:@"HU"]; + [kMapCCode2CN setObject:countryCode36Array forKey:@"36"]; + + NSMutableArray *countryCode61Array = [[NSMutableArray alloc] init]; + [countryCode61Array addObject:@"AU"]; + [countryCode61Array addObject:@"CC"]; + [countryCode61Array addObject:@"CX"]; + [kMapCCode2CN setObject:countryCode61Array forKey:@"61"]; + + NSMutableArray *countryCode598Array = [[NSMutableArray alloc] init]; + [countryCode598Array addObject:@"UY"]; + [kMapCCode2CN setObject:countryCode598Array forKey:@"598"]; + + NSMutableArray *countryCode687Array = [[NSMutableArray alloc] init]; + [countryCode687Array addObject:@"NC"]; + [kMapCCode2CN setObject:countryCode687Array forKey:@"687"]; + + NSMutableArray *countryCode962Array = [[NSMutableArray alloc] init]; + [countryCode962Array addObject:@"JO"]; + [kMapCCode2CN setObject:countryCode962Array forKey:@"962"]; + + NSMutableArray *countryCode62Array = [[NSMutableArray alloc] init]; + [countryCode62Array addObject:@"ID"]; + [kMapCCode2CN setObject:countryCode62Array forKey:@"62"]; + + NSMutableArray *countryCode679Array = [[NSMutableArray alloc] init]; + [countryCode679Array addObject:@"FJ"]; + [kMapCCode2CN setObject:countryCode679Array forKey:@"679"]; + + NSMutableArray *countryCode882Array = [[NSMutableArray alloc] init]; + [countryCode882Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode882Array forKey:@"882"]; + + NSMutableArray *countryCode970Array = [[NSMutableArray alloc] init]; + [countryCode970Array addObject:@"PS"]; + [kMapCCode2CN setObject:countryCode970Array forKey:@"970"]; + + NSMutableArray *countryCode971Array = [[NSMutableArray alloc] init]; + [countryCode971Array addObject:@"AE"]; + [kMapCCode2CN setObject:countryCode971Array forKey:@"971"]; + + NSMutableArray *countryCode63Array = [[NSMutableArray alloc] init]; + [countryCode63Array addObject:@"PH"]; + [kMapCCode2CN setObject:countryCode63Array forKey:@"63"]; + + NSMutableArray *countryCode599Array = [[NSMutableArray alloc] init]; + [countryCode599Array addObject:@"CW"]; + [countryCode599Array addObject:@"BQ"]; + [kMapCCode2CN setObject:countryCode599Array forKey:@"599"]; + + NSMutableArray *countryCode688Array = [[NSMutableArray alloc] init]; + [countryCode688Array addObject:@"TV"]; + [kMapCCode2CN setObject:countryCode688Array forKey:@"688"]; + + NSMutableArray *countryCode963Array = [[NSMutableArray alloc] init]; + [countryCode963Array addObject:@"SY"]; + [kMapCCode2CN setObject:countryCode963Array forKey:@"963"]; + + NSMutableArray *countryCode39Array = [[NSMutableArray alloc] init]; + [countryCode39Array addObject:@"IT"]; + [kMapCCode2CN setObject:countryCode39Array forKey:@"39"]; + + NSMutableArray *countryCode64Array = [[NSMutableArray alloc] init]; + [countryCode64Array addObject:@"NZ"]; + [kMapCCode2CN setObject:countryCode64Array forKey:@"64"]; + + NSMutableArray *countryCode883Array = [[NSMutableArray alloc] init]; + [countryCode883Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode883Array forKey:@"883"]; + + NSMutableArray *countryCode972Array = [[NSMutableArray alloc] init]; + [countryCode972Array addObject:@"IL"]; + [kMapCCode2CN setObject:countryCode972Array forKey:@"972"]; + + NSMutableArray *countryCode65Array = [[NSMutableArray alloc] init]; + [countryCode65Array addObject:@"SG"]; + [kMapCCode2CN setObject:countryCode65Array forKey:@"65"]; + + NSMutableArray *countryCode90Array = [[NSMutableArray alloc] init]; + [countryCode90Array addObject:@"TR"]; + [kMapCCode2CN setObject:countryCode90Array forKey:@"90"]; + + NSMutableArray *countryCode689Array = [[NSMutableArray alloc] init]; + [countryCode689Array addObject:@"PF"]; + [kMapCCode2CN setObject:countryCode689Array forKey:@"689"]; + + NSMutableArray *countryCode964Array = [[NSMutableArray alloc] init]; + [countryCode964Array addObject:@"IQ"]; + [kMapCCode2CN setObject:countryCode964Array forKey:@"964"]; + + NSMutableArray *countryCode1Array = [[NSMutableArray alloc] init]; + [countryCode1Array addObject:@"US"]; + [countryCode1Array addObject:@"AG"]; + [countryCode1Array addObject:@"AI"]; + [countryCode1Array addObject:@"AS"]; + [countryCode1Array addObject:@"BB"]; + [countryCode1Array addObject:@"BM"]; + [countryCode1Array addObject:@"BS"]; + [countryCode1Array addObject:@"CA"]; + [countryCode1Array addObject:@"DM"]; + [countryCode1Array addObject:@"DO"]; + [countryCode1Array addObject:@"GD"]; + [countryCode1Array addObject:@"GU"]; + [countryCode1Array addObject:@"JM"]; + [countryCode1Array addObject:@"KN"]; + [countryCode1Array addObject:@"KY"]; + [countryCode1Array addObject:@"LC"]; + [countryCode1Array addObject:@"MP"]; + [countryCode1Array addObject:@"MS"]; + [countryCode1Array addObject:@"PR"]; + [countryCode1Array addObject:@"SX"]; + [countryCode1Array addObject:@"TC"]; + [countryCode1Array addObject:@"TT"]; + [countryCode1Array addObject:@"VC"]; + [countryCode1Array addObject:@"VG"]; + [countryCode1Array addObject:@"VI"]; + [kMapCCode2CN setObject:countryCode1Array forKey:@"1"]; + + NSMutableArray *countryCode66Array = [[NSMutableArray alloc] init]; + [countryCode66Array addObject:@"TH"]; + [kMapCCode2CN setObject:countryCode66Array forKey:@"66"]; + + NSMutableArray *countryCode91Array = [[NSMutableArray alloc] init]; + [countryCode91Array addObject:@"IN"]; + [kMapCCode2CN setObject:countryCode91Array forKey:@"91"]; + + NSMutableArray *countryCode973Array = [[NSMutableArray alloc] init]; + [countryCode973Array addObject:@"BH"]; + [kMapCCode2CN setObject:countryCode973Array forKey:@"973"]; + + NSMutableArray *countryCode965Array = [[NSMutableArray alloc] init]; + [countryCode965Array addObject:@"KW"]; + [kMapCCode2CN setObject:countryCode965Array forKey:@"965"]; + + NSMutableArray *countryCode92Array = [[NSMutableArray alloc] init]; + [countryCode92Array addObject:@"PK"]; + [kMapCCode2CN setObject:countryCode92Array forKey:@"92"]; + + NSMutableArray *countryCode93Array = [[NSMutableArray alloc] init]; + [countryCode93Array addObject:@"AF"]; + [kMapCCode2CN setObject:countryCode93Array forKey:@"93"]; + + NSMutableArray *countryCode974Array = [[NSMutableArray alloc] init]; + [countryCode974Array addObject:@"QA"]; + [kMapCCode2CN setObject:countryCode974Array forKey:@"974"]; + + NSMutableArray *countryCode966Array = [[NSMutableArray alloc] init]; + [countryCode966Array addObject:@"SA"]; + [kMapCCode2CN setObject:countryCode966Array forKey:@"966"]; + + NSMutableArray *countryCode94Array = [[NSMutableArray alloc] init]; + [countryCode94Array addObject:@"LK"]; + [kMapCCode2CN setObject:countryCode94Array forKey:@"94"]; + + NSMutableArray *countryCode7Array = [[NSMutableArray alloc] init]; + [countryCode7Array addObject:@"RU"]; + [countryCode7Array addObject:@"KZ"]; + [kMapCCode2CN setObject:countryCode7Array forKey:@"7"]; + + NSMutableArray *countryCode886Array = [[NSMutableArray alloc] init]; + [countryCode886Array addObject:@"TW"]; + [kMapCCode2CN setObject:countryCode886Array forKey:@"886"]; + + NSMutableArray *countryCode95Array = [[NSMutableArray alloc] init]; + [countryCode95Array addObject:@"MM"]; + [kMapCCode2CN setObject:countryCode95Array forKey:@"95"]; + + NSMutableArray *countryCode878Array = [[NSMutableArray alloc] init]; + [countryCode878Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode878Array forKey:@"878"]; + + NSMutableArray *countryCode967Array = [[NSMutableArray alloc] init]; + [countryCode967Array addObject:@"YE"]; + [kMapCCode2CN setObject:countryCode967Array forKey:@"967"]; + + NSMutableArray *countryCode975Array = [[NSMutableArray alloc] init]; + [countryCode975Array addObject:@"BT"]; + [kMapCCode2CN setObject:countryCode975Array forKey:@"975"]; + + NSMutableArray *countryCode992Array = [[NSMutableArray alloc] init]; + [countryCode992Array addObject:@"TJ"]; + [kMapCCode2CN setObject:countryCode992Array forKey:@"992"]; + + NSMutableArray *countryCode976Array = [[NSMutableArray alloc] init]; + [countryCode976Array addObject:@"MN"]; + [kMapCCode2CN setObject:countryCode976Array forKey:@"976"]; + + NSMutableArray *countryCode968Array = [[NSMutableArray alloc] init]; + [countryCode968Array addObject:@"OM"]; + [kMapCCode2CN setObject:countryCode968Array forKey:@"968"]; + + NSMutableArray *countryCode993Array = [[NSMutableArray alloc] init]; + [countryCode993Array addObject:@"TM"]; + [kMapCCode2CN setObject:countryCode993Array forKey:@"993"]; + + NSMutableArray *countryCode98Array = [[NSMutableArray alloc] init]; + [countryCode98Array addObject:@"IR"]; + [kMapCCode2CN setObject:countryCode98Array forKey:@"98"]; + + NSMutableArray *countryCode888Array = [[NSMutableArray alloc] init]; + [countryCode888Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode888Array forKey:@"888"]; + + NSMutableArray *countryCode977Array = [[NSMutableArray alloc] init]; + [countryCode977Array addObject:@"NP"]; + [kMapCCode2CN setObject:countryCode977Array forKey:@"977"]; + + NSMutableArray *countryCode994Array = [[NSMutableArray alloc] init]; + [countryCode994Array addObject:@"AZ"]; + [kMapCCode2CN setObject:countryCode994Array forKey:@"994"]; + + NSMutableArray *countryCode995Array = [[NSMutableArray alloc] init]; + [countryCode995Array addObject:@"GE"]; + [kMapCCode2CN setObject:countryCode995Array forKey:@"995"]; + + NSMutableArray *countryCode979Array = [[NSMutableArray alloc] init]; + [countryCode979Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode979Array forKey:@"979"]; + + NSMutableArray *countryCode996Array = [[NSMutableArray alloc] init]; + [countryCode996Array addObject:@"KG"]; + [kMapCCode2CN setObject:countryCode996Array forKey:@"996"]; + + NSMutableArray *countryCode998Array = [[NSMutableArray alloc] init]; + [countryCode998Array addObject:@"UZ"]; + [kMapCCode2CN setObject:countryCode998Array forKey:@"998"]; + + NSMutableArray *countryCode40Array = [[NSMutableArray alloc] init]; + [countryCode40Array addObject:@"RO"]; + [kMapCCode2CN setObject:countryCode40Array forKey:@"40"]; + + NSMutableArray *countryCode41Array = [[NSMutableArray alloc] init]; + [countryCode41Array addObject:@"CH"]; + [kMapCCode2CN setObject:countryCode41Array forKey:@"41"]; + + NSMutableArray *countryCode43Array = [[NSMutableArray alloc] init]; + [countryCode43Array addObject:@"AT"]; + [kMapCCode2CN setObject:countryCode43Array forKey:@"43"]; + + NSMutableArray *countryCode44Array = [[NSMutableArray alloc] init]; + [countryCode44Array addObject:@"GB"]; + [countryCode44Array addObject:@"GG"]; + [countryCode44Array addObject:@"IM"]; + [countryCode44Array addObject:@"JE"]; + [kMapCCode2CN setObject:countryCode44Array forKey:@"44"]; + + NSMutableArray *countryCode211Array = [[NSMutableArray alloc] init]; + [countryCode211Array addObject:@"SS"]; + [kMapCCode2CN setObject:countryCode211Array forKey:@"211"]; + + NSMutableArray *countryCode45Array = [[NSMutableArray alloc] init]; + [countryCode45Array addObject:@"DK"]; + [kMapCCode2CN setObject:countryCode45Array forKey:@"45"]; + + NSMutableArray *countryCode220Array = [[NSMutableArray alloc] init]; + [countryCode220Array addObject:@"GM"]; + [kMapCCode2CN setObject:countryCode220Array forKey:@"220"]; + + NSMutableArray *countryCode212Array = [[NSMutableArray alloc] init]; + [countryCode212Array addObject:@"MA"]; + [countryCode212Array addObject:@"EH"]; + [kMapCCode2CN setObject:countryCode212Array forKey:@"212"]; + + NSMutableArray *countryCode46Array = [[NSMutableArray alloc] init]; + [countryCode46Array addObject:@"SE"]; + [kMapCCode2CN setObject:countryCode46Array forKey:@"46"]; + + NSMutableArray *countryCode47Array = [[NSMutableArray alloc] init]; + [countryCode47Array addObject:@"NO"]; + [countryCode47Array addObject:@"SJ"]; + [kMapCCode2CN setObject:countryCode47Array forKey:@"47"]; + + NSMutableArray *countryCode221Array = [[NSMutableArray alloc] init]; + [countryCode221Array addObject:@"SN"]; + [kMapCCode2CN setObject:countryCode221Array forKey:@"221"]; + + NSMutableArray *countryCode213Array = [[NSMutableArray alloc] init]; + [countryCode213Array addObject:@"DZ"]; + [kMapCCode2CN setObject:countryCode213Array forKey:@"213"]; + + NSMutableArray *countryCode48Array = [[NSMutableArray alloc] init]; + [countryCode48Array addObject:@"PL"]; + [kMapCCode2CN setObject:countryCode48Array forKey:@"48"]; + + NSMutableArray *countryCode230Array = [[NSMutableArray alloc] init]; + [countryCode230Array addObject:@"MU"]; + [kMapCCode2CN setObject:countryCode230Array forKey:@"230"]; + + NSMutableArray *countryCode222Array = [[NSMutableArray alloc] init]; + [countryCode222Array addObject:@"MR"]; + [kMapCCode2CN setObject:countryCode222Array forKey:@"222"]; + + NSMutableArray *countryCode49Array = [[NSMutableArray alloc] init]; + [countryCode49Array addObject:@"DE"]; + [kMapCCode2CN setObject:countryCode49Array forKey:@"49"]; + + NSMutableArray *countryCode231Array = [[NSMutableArray alloc] init]; + [countryCode231Array addObject:@"LR"]; + [kMapCCode2CN setObject:countryCode231Array forKey:@"231"]; + + NSMutableArray *countryCode223Array = [[NSMutableArray alloc] init]; + [countryCode223Array addObject:@"ML"]; + [kMapCCode2CN setObject:countryCode223Array forKey:@"223"]; + + NSMutableArray *countryCode240Array = [[NSMutableArray alloc] init]; + [countryCode240Array addObject:@"GQ"]; + [kMapCCode2CN setObject:countryCode240Array forKey:@"240"]; + + NSMutableArray *countryCode232Array = [[NSMutableArray alloc] init]; + [countryCode232Array addObject:@"SL"]; + [kMapCCode2CN setObject:countryCode232Array forKey:@"232"]; + + NSMutableArray *countryCode224Array = [[NSMutableArray alloc] init]; + [countryCode224Array addObject:@"GN"]; + [kMapCCode2CN setObject:countryCode224Array forKey:@"224"]; + + NSMutableArray *countryCode216Array = [[NSMutableArray alloc] init]; + [countryCode216Array addObject:@"TN"]; + [kMapCCode2CN setObject:countryCode216Array forKey:@"216"]; + + NSMutableArray *countryCode241Array = [[NSMutableArray alloc] init]; + [countryCode241Array addObject:@"GA"]; + [kMapCCode2CN setObject:countryCode241Array forKey:@"241"]; + + NSMutableArray *countryCode233Array = [[NSMutableArray alloc] init]; + [countryCode233Array addObject:@"GH"]; + [kMapCCode2CN setObject:countryCode233Array forKey:@"233"]; + + NSMutableArray *countryCode225Array = [[NSMutableArray alloc] init]; + [countryCode225Array addObject:@"CI"]; + [kMapCCode2CN setObject:countryCode225Array forKey:@"225"]; + + NSMutableArray *countryCode250Array = [[NSMutableArray alloc] init]; + [countryCode250Array addObject:@"RW"]; + [kMapCCode2CN setObject:countryCode250Array forKey:@"250"]; + + NSMutableArray *countryCode500Array = [[NSMutableArray alloc] init]; + [countryCode500Array addObject:@"FK"]; + [kMapCCode2CN setObject:countryCode500Array forKey:@"500"]; + + NSMutableArray *countryCode242Array = [[NSMutableArray alloc] init]; + [countryCode242Array addObject:@"CG"]; + [kMapCCode2CN setObject:countryCode242Array forKey:@"242"]; + + NSMutableArray *countryCode420Array = [[NSMutableArray alloc] init]; + [countryCode420Array addObject:@"CZ"]; + [kMapCCode2CN setObject:countryCode420Array forKey:@"420"]; + + NSMutableArray *countryCode234Array = [[NSMutableArray alloc] init]; + [countryCode234Array addObject:@"NG"]; + [kMapCCode2CN setObject:countryCode234Array forKey:@"234"]; + + NSMutableArray *countryCode226Array = [[NSMutableArray alloc] init]; + [countryCode226Array addObject:@"BF"]; + [kMapCCode2CN setObject:countryCode226Array forKey:@"226"]; + + NSMutableArray *countryCode251Array = [[NSMutableArray alloc] init]; + [countryCode251Array addObject:@"ET"]; + [kMapCCode2CN setObject:countryCode251Array forKey:@"251"]; + + NSMutableArray *countryCode501Array = [[NSMutableArray alloc] init]; + [countryCode501Array addObject:@"BZ"]; + [kMapCCode2CN setObject:countryCode501Array forKey:@"501"]; + + NSMutableArray *countryCode218Array = [[NSMutableArray alloc] init]; + [countryCode218Array addObject:@"LY"]; + [kMapCCode2CN setObject:countryCode218Array forKey:@"218"]; + + NSMutableArray *countryCode243Array = [[NSMutableArray alloc] init]; + [countryCode243Array addObject:@"CD"]; + [kMapCCode2CN setObject:countryCode243Array forKey:@"243"]; + + NSMutableArray *countryCode421Array = [[NSMutableArray alloc] init]; + [countryCode421Array addObject:@"SK"]; + [kMapCCode2CN setObject:countryCode421Array forKey:@"421"]; + + NSMutableArray *countryCode235Array = [[NSMutableArray alloc] init]; + [countryCode235Array addObject:@"TD"]; + [kMapCCode2CN setObject:countryCode235Array forKey:@"235"]; + + NSMutableArray *countryCode260Array = [[NSMutableArray alloc] init]; + [countryCode260Array addObject:@"ZM"]; + [kMapCCode2CN setObject:countryCode260Array forKey:@"260"]; + + NSMutableArray *countryCode227Array = [[NSMutableArray alloc] init]; + [countryCode227Array addObject:@"NE"]; + [kMapCCode2CN setObject:countryCode227Array forKey:@"227"]; + + NSMutableArray *countryCode252Array = [[NSMutableArray alloc] init]; + [countryCode252Array addObject:@"SO"]; + [kMapCCode2CN setObject:countryCode252Array forKey:@"252"]; + + NSMutableArray *countryCode502Array = [[NSMutableArray alloc] init]; + [countryCode502Array addObject:@"GT"]; + [kMapCCode2CN setObject:countryCode502Array forKey:@"502"]; + + NSMutableArray *countryCode244Array = [[NSMutableArray alloc] init]; + [countryCode244Array addObject:@"AO"]; + [kMapCCode2CN setObject:countryCode244Array forKey:@"244"]; + + NSMutableArray *countryCode236Array = [[NSMutableArray alloc] init]; + [countryCode236Array addObject:@"CF"]; + [kMapCCode2CN setObject:countryCode236Array forKey:@"236"]; + + NSMutableArray *countryCode261Array = [[NSMutableArray alloc] init]; + [countryCode261Array addObject:@"MG"]; + [kMapCCode2CN setObject:countryCode261Array forKey:@"261"]; + + NSMutableArray *countryCode350Array = [[NSMutableArray alloc] init]; + [countryCode350Array addObject:@"GI"]; + [kMapCCode2CN setObject:countryCode350Array forKey:@"350"]; + + NSMutableArray *countryCode228Array = [[NSMutableArray alloc] init]; + [countryCode228Array addObject:@"TG"]; + [kMapCCode2CN setObject:countryCode228Array forKey:@"228"]; + + NSMutableArray *countryCode253Array = [[NSMutableArray alloc] init]; + [countryCode253Array addObject:@"DJ"]; + [kMapCCode2CN setObject:countryCode253Array forKey:@"253"]; + + NSMutableArray *countryCode503Array = [[NSMutableArray alloc] init]; + [countryCode503Array addObject:@"SV"]; + [kMapCCode2CN setObject:countryCode503Array forKey:@"503"]; + + NSMutableArray *countryCode245Array = [[NSMutableArray alloc] init]; + [countryCode245Array addObject:@"GW"]; + [kMapCCode2CN setObject:countryCode245Array forKey:@"245"]; + + NSMutableArray *countryCode423Array = [[NSMutableArray alloc] init]; + [countryCode423Array addObject:@"LI"]; + [kMapCCode2CN setObject:countryCode423Array forKey:@"423"]; + + NSMutableArray *countryCode237Array = [[NSMutableArray alloc] init]; + [countryCode237Array addObject:@"CM"]; + [kMapCCode2CN setObject:countryCode237Array forKey:@"237"]; + + NSMutableArray *countryCode262Array = [[NSMutableArray alloc] init]; + [countryCode262Array addObject:@"RE"]; + [countryCode262Array addObject:@"YT"]; + [kMapCCode2CN setObject:countryCode262Array forKey:@"262"]; + + NSMutableArray *countryCode351Array = [[NSMutableArray alloc] init]; + [countryCode351Array addObject:@"PT"]; + [kMapCCode2CN setObject:countryCode351Array forKey:@"351"]; + + NSMutableArray *countryCode229Array = [[NSMutableArray alloc] init]; + [countryCode229Array addObject:@"BJ"]; + [kMapCCode2CN setObject:countryCode229Array forKey:@"229"]; + + NSMutableArray *countryCode254Array = [[NSMutableArray alloc] init]; + [countryCode254Array addObject:@"KE"]; + [kMapCCode2CN setObject:countryCode254Array forKey:@"254"]; + + NSMutableArray *countryCode504Array = [[NSMutableArray alloc] init]; + [countryCode504Array addObject:@"HN"]; + [kMapCCode2CN setObject:countryCode504Array forKey:@"504"]; + + NSMutableArray *countryCode246Array = [[NSMutableArray alloc] init]; + [countryCode246Array addObject:@"IO"]; + [kMapCCode2CN setObject:countryCode246Array forKey:@"246"]; + + NSMutableArray *countryCode20Array = [[NSMutableArray alloc] init]; + [countryCode20Array addObject:@"EG"]; + [kMapCCode2CN setObject:countryCode20Array forKey:@"20"]; + + NSMutableArray *countryCode238Array = [[NSMutableArray alloc] init]; + [countryCode238Array addObject:@"CV"]; + [kMapCCode2CN setObject:countryCode238Array forKey:@"238"]; + + NSMutableArray *countryCode263Array = [[NSMutableArray alloc] init]; + [countryCode263Array addObject:@"ZW"]; + [kMapCCode2CN setObject:countryCode263Array forKey:@"263"]; + + NSMutableArray *countryCode352Array = [[NSMutableArray alloc] init]; + [countryCode352Array addObject:@"LU"]; + [kMapCCode2CN setObject:countryCode352Array forKey:@"352"]; + + NSMutableArray *countryCode255Array = [[NSMutableArray alloc] init]; + [countryCode255Array addObject:@"TZ"]; + [kMapCCode2CN setObject:countryCode255Array forKey:@"255"]; + + NSMutableArray *countryCode505Array = [[NSMutableArray alloc] init]; + [countryCode505Array addObject:@"NI"]; + [kMapCCode2CN setObject:countryCode505Array forKey:@"505"]; + + NSMutableArray *countryCode247Array = [[NSMutableArray alloc] init]; + [countryCode247Array addObject:@"AC"]; + [kMapCCode2CN setObject:countryCode247Array forKey:@"247"]; + + NSMutableArray *countryCode239Array = [[NSMutableArray alloc] init]; + [countryCode239Array addObject:@"ST"]; + [kMapCCode2CN setObject:countryCode239Array forKey:@"239"]; + + NSMutableArray *countryCode264Array = [[NSMutableArray alloc] init]; + [countryCode264Array addObject:@"NA"]; + [kMapCCode2CN setObject:countryCode264Array forKey:@"264"]; + + NSMutableArray *countryCode353Array = [[NSMutableArray alloc] init]; + [countryCode353Array addObject:@"IE"]; + [kMapCCode2CN setObject:countryCode353Array forKey:@"353"]; + + NSMutableArray *countryCode256Array = [[NSMutableArray alloc] init]; + [countryCode256Array addObject:@"UG"]; + [kMapCCode2CN setObject:countryCode256Array forKey:@"256"]; + + NSMutableArray *countryCode370Array = [[NSMutableArray alloc] init]; + [countryCode370Array addObject:@"LT"]; + [kMapCCode2CN setObject:countryCode370Array forKey:@"370"]; + + NSMutableArray *countryCode506Array = [[NSMutableArray alloc] init]; + [countryCode506Array addObject:@"CR"]; + [kMapCCode2CN setObject:countryCode506Array forKey:@"506"]; + + NSMutableArray *countryCode248Array = [[NSMutableArray alloc] init]; + [countryCode248Array addObject:@"SC"]; + [kMapCCode2CN setObject:countryCode248Array forKey:@"248"]; + + NSMutableArray *countryCode265Array = [[NSMutableArray alloc] init]; + [countryCode265Array addObject:@"MW"]; + [kMapCCode2CN setObject:countryCode265Array forKey:@"265"]; + + NSMutableArray *countryCode290Array = [[NSMutableArray alloc] init]; + [countryCode290Array addObject:@"SH"]; + [countryCode290Array addObject:@"TA"]; + [kMapCCode2CN setObject:countryCode290Array forKey:@"290"]; + + NSMutableArray *countryCode354Array = [[NSMutableArray alloc] init]; + [countryCode354Array addObject:@"IS"]; + [kMapCCode2CN setObject:countryCode354Array forKey:@"354"]; + + NSMutableArray *countryCode257Array = [[NSMutableArray alloc] init]; + [countryCode257Array addObject:@"BI"]; + [kMapCCode2CN setObject:countryCode257Array forKey:@"257"]; + + NSMutableArray *countryCode371Array = [[NSMutableArray alloc] init]; + [countryCode371Array addObject:@"LV"]; + [kMapCCode2CN setObject:countryCode371Array forKey:@"371"]; + + NSMutableArray *countryCode507Array = [[NSMutableArray alloc] init]; + [countryCode507Array addObject:@"PA"]; + [kMapCCode2CN setObject:countryCode507Array forKey:@"507"]; + + NSMutableArray *countryCode249Array = [[NSMutableArray alloc] init]; + [countryCode249Array addObject:@"SD"]; + [kMapCCode2CN setObject:countryCode249Array forKey:@"249"]; + + NSMutableArray *countryCode266Array = [[NSMutableArray alloc] init]; + [countryCode266Array addObject:@"LS"]; + [kMapCCode2CN setObject:countryCode266Array forKey:@"266"]; + + NSMutableArray *countryCode51Array = [[NSMutableArray alloc] init]; + [countryCode51Array addObject:@"PE"]; + [kMapCCode2CN setObject:countryCode51Array forKey:@"51"]; + + NSMutableArray *countryCode291Array = [[NSMutableArray alloc] init]; + [countryCode291Array addObject:@"ER"]; + [kMapCCode2CN setObject:countryCode291Array forKey:@"291"]; + + NSMutableArray *countryCode258Array = [[NSMutableArray alloc] init]; + [countryCode258Array addObject:@"MZ"]; + [kMapCCode2CN setObject:countryCode258Array forKey:@"258"]; + + NSMutableArray *countryCode355Array = [[NSMutableArray alloc] init]; + [countryCode355Array addObject:@"AL"]; + [kMapCCode2CN setObject:countryCode355Array forKey:@"355"]; + + NSMutableArray *countryCode372Array = [[NSMutableArray alloc] init]; + [countryCode372Array addObject:@"EE"]; + [kMapCCode2CN setObject:countryCode372Array forKey:@"372"]; + + NSMutableArray *countryCode27Array = [[NSMutableArray alloc] init]; + [countryCode27Array addObject:@"ZA"]; + [kMapCCode2CN setObject:countryCode27Array forKey:@"27"]; + + NSMutableArray *countryCode52Array = [[NSMutableArray alloc] init]; + [countryCode52Array addObject:@"MX"]; + [kMapCCode2CN setObject:countryCode52Array forKey:@"52"]; + + NSMutableArray *countryCode380Array = [[NSMutableArray alloc] init]; + [countryCode380Array addObject:@"UA"]; + [kMapCCode2CN setObject:countryCode380Array forKey:@"380"]; + + NSMutableArray *countryCode267Array = [[NSMutableArray alloc] init]; + [countryCode267Array addObject:@"BW"]; + [kMapCCode2CN setObject:countryCode267Array forKey:@"267"]; + }); + return [kMapCCode2CN objectForKey:key]; +} + +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h new file mode 100644 index 0000000..6a392f1 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h @@ -0,0 +1,93 @@ +#import +#import "NBPhoneMetaData.h" + +@interface NBPhoneMetadataTestAD : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestBR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestAU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestBB : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestAE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestCX : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestBS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestDE : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestKR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestNZ : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestPL : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestYT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestCA : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestAO : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTest800 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestFR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestGG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestHU : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestSG : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestJP : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestCC : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestMX : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestUS : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestIT : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestAR : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTest979 : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestGB : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestBY : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestCN : NBPhoneMetaData +@end + +@interface NBPhoneMetadataTestRE : NBPhoneMetaData +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m new file mode 100644 index 0000000..675e6e4 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m @@ -0,0 +1,1619 @@ +#import "NBMetadataCoreTest.h" +#import "NBPhoneNumberDefines.h" +#import "NBPhoneNumberDesc.h" + +#import "NBNumberFormat.h" + +@implementation NBPhoneMetadataTestAD +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AD"; + self.countryCode = [NSNumber numberWithInteger:376]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestBR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BR"; + self.countryCode = [NSNumber numberWithInteger:55]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestAU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-578]\\d{4,14}" withPossibleNumberPattern:@"\\d{5,15}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2378]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AU"; + self.countryCode = [NSNumber numberWithInteger:61]; + self.internationalPrefix = @"001[12]"; + self.preferredInternationalPrefix = @"0011"; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[2-478]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{1})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestBB +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BB"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestAE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"600123456"]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AE"; + self.countryCode = [NSNumber numberWithInteger:971]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestCX +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CX"; + self.countryCode = [NSNumber numberWithInteger:61]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestBS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(242|8(00|66|77|88)|900)\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\\d{4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(357|359|457|557)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(00|66|77|88)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BS"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestDE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{4,14}" withPossibleNumberPattern:@"\\d{2,14}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}" withPossibleNumberPattern:@"\\d{2,14}" withExample:@"30123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(5\\d{9}|7\\d{8}|6[02]\\d{8}|63\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900([135]\\d{6}|9\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"DE"; + self.countryCode = [NSNumber numberWithInteger:49]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"2|3[3-9]|906|[4-9][1-9]1"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[34]0|[68]9"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,11})" withFormat:@"$1/$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[4-9]"]; + [numberFormats2_patternArray addObject:@"[4-6]|[7-9](?:\\d[1-9]|[1-9]\\d)"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([4-9]\\d)(\\d{2})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"[4-9]"]; + [numberFormats3_patternArray addObject:@"[4-6]|[7-9](?:\\d[1-9]|[1-9]\\d)"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([4-9]\\d{3})(\\d{2,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"800"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{1})(\\d{6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"900"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestKR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{3,9}|8\\d{8}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"22123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[0-25-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1023456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"602345678"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"50\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"KR"; + self.countryCode = [NSNumber numberWithInteger:82]; + self.internationalPrefix = @"00(?:[124-68]|[37]\\d{2})"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0(8[1-46-8]|85\\d{2})?"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5[458])|[57]0"]; + [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]"]; + [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"131"]; + [numberFormats2_patternArray addObject:@"1312"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"131"]; + [numberFormats3_patternArray addObject:@"131[13-9]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"13[2-9]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"30"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"2(?:[26]|3[0-467])"]; + [numberFormats6_patternArray addObject:@"2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + + NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; + [numberFormats7_patternArray addObject:@"2(?:3[0-35-9]|[457-9])"]; + [numberFormats7_patternArray addObject:@"2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])"]; + NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats7]; + + NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; + [numberFormats8_patternArray addObject:@"21[0-46-9]"]; + [numberFormats8_patternArray addObject:@"21(?:[0-247-9]|3[124]|6[1269])"]; + NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats8]; + + NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; + [numberFormats9_patternArray addObject:@"21[36]"]; + [numberFormats9_patternArray addObject:@"21(?:3[035-9]|6[03-578])"]; + NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats9]; + + NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; + [numberFormats10_patternArray addObject:@"[3-6][1-9]1"]; + [numberFormats10_patternArray addObject:@"[3-6][1-9]1(?:[0-46-9])"]; + [numberFormats10_patternArray addObject:@"[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])"]; + NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats10]; + + NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; + [numberFormats11_patternArray addObject:@"[3-6][1-9]1"]; + [numberFormats11_patternArray addObject:@"[3-6][1-9]1[36]"]; + [numberFormats11_patternArray addObject:@"[3-6][1-9]1(?:3[035-9]|6[03-578])"]; + NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats11]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestNZ +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[289]\\d{7,9}|[3-7]\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"24099\\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[027]\\d{7}|9\\d{6,7}|1(?:0\\d{5,7}|[12]\\d{5,6}|[3-9]\\d{5})|4[1-9]\\d{6}|8\\d{7,8})" withPossibleNumberPattern:@"\\d{8,10}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6,7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6,7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"NZ"; + self.countryCode = [NSNumber numberWithInteger:64]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"24|[34679]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"2[179]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3,5})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[89]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestPL +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[01]|6[069]|7[289]|88)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"PL"; + self.countryCode = [NSNumber numberWithInteger:48]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestYT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2696[0-4]\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"269601234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"639\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"639123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"YT"; + self.countryCode = [NSNumber numberWithInteger:262]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"269|639"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestCA +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CA"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestAO +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-3]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"923123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AO"; + self.countryCode = [NSNumber numberWithInteger:244]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0~0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0~0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTest800 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:800]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestFR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"FR"; + self.countryCode = [NSNumber numberWithInteger:33]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestGG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GG"; + self.countryCode = [NSNumber numberWithInteger:44]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestHU +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"HU"; + self.countryCode = [NSNumber numberWithInteger:36]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"06"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"06"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestSG +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13689]\\d{7,10}" withPossibleNumberPattern:@"\\d{8}|\\d{10,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[36]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[89]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1?800\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"SG"; + self.countryCode = [NSNumber numberWithInteger:65]; + self.internationalPrefix = @"0[0-3][0-9]"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"777777"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[369]|8[1-9]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[89]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"800"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestJP +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"07\\d{5}|[1-357-9]\\d{3,10}" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"07\\d{5}|[1-357-9]\\d{3,10}" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"07\\d{5}|[1-357-9]\\d{3,10}" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0777[01]\\d{2}" withPossibleNumberPattern:@"\\d{7}" withExample:@"0777012"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; + self.codeID = @"JP"; + self.countryCode = [NSNumber numberWithInteger:81]; + self.internationalPrefix = @"010"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[57-9]0"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[57-9]0"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"111|222|333"]; + [numberFormats2_patternArray addObject:@"(?:111|222|333)1"]; + [numberFormats2_patternArray addObject:@"(?:111|222|333)11"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"222|333"]; + [numberFormats3_patternArray addObject:@"2221|3332"]; + [numberFormats3_patternArray addObject:@"22212|3332"]; + [numberFormats3_patternArray addObject:@"222120|3332"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[23]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + + NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; + [numberFormats5_patternArray addObject:@"077"]; + NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats5]; + + NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; + [numberFormats6_patternArray addObject:@"[23]"]; + NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"*$1" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats6]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestCC +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CC"; + self.countryCode = [NSNumber numberWithInteger:61]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestMX +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{9,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{10}" withPossibleNumberPattern:@"\\d{11}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"MX"; + self.countryCode = [NSNumber numberWithInteger:52]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"01"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"01|04[45](\\d{10})"; + self.nationalPrefixTransformRule = @"1$1"; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[89]00"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"33|55|81"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"1(?:33|55|81)"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{2})(\\d{4})(\\d{4})" withFormat:@"045 $2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"045 $2 $3 $4" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"[89]00"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"33|55|81"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"1(?:33|55|81)"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestUS +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-689]\\d{9}|2[0-35-9]\\d{8}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"1234567890"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-689]\\d{9}|2[0-35-9]\\d{8}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"1234567890"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-689]\\d{9}|2[0-35-9]\\d{8}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"1234567890"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|66|77|88)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1234567890"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1234567890"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1234567890"]; + self.codeID = @"US"; + self.countryCode = [NSNumber numberWithInteger:1]; + self.internationalPrefix = @"011"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"1"; + self.preferredExtnPrefix = @" extn. "; + self.nationalPrefixForParsing = @"1"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = YES; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestIT +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[0389]\\d{5,10}" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{9,10}" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{8,9}" withPossibleNumberPattern:@"\\d{9,10}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0\\d{6}|3\\d{3})" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89(?:2\\d{3}|9\\d{6})" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"IT"; + self.countryCode = [NSNumber numberWithInteger:39]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"0[26]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"0[13-57-9]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"3"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = YES; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestAR +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-3689]\\d{9,10}" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-3]\\d{9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{10}|[1-3]\\d{9}" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(0\\d|10)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"AR"; + self.countryCode = [NSNumber numberWithInteger:54]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0(?:(11|343|3715)15)?"; + self.nationalPrefixTransformRule = @"9$1"; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"11"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"1[02-9]|[23]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"911"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$2 15 $3-$4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"9(?:1[02-9]|[23])"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$2 $3-$4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$1 $CC"]; + [numberFormats_FormatArray addObject:numberFormats3]; + + NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; + [numberFormats4_patternArray addObject:@"[68]"]; + NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats4]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats0_patternArray addObject:@"11"]; + NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; + + NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats1_patternArray addObject:@"1[02-9]|[23]"]; + NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; + + NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats2_patternArray addObject:@"911"]; + NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; + + NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats3_patternArray addObject:@"9(?:1[02-9]|[23])"]; + NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; + + NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; + [intlNumberFormats4_patternArray addObject:@"[68]"]; + NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTest979 +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"001"; + self.countryCode = [NSNumber numberWithInteger:979]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestGB +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{10}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-6]\\d{9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[1-57-9]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[018]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4[3-5]|7[0-2])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"GB"; + self.countryCode = [NSNumber numberWithInteger:44]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-59]|[78]0"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"6"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"7[1-57-9]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + + NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; + [numberFormats3_patternArray addObject:@"8[47]"]; + NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats3]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestBY +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"112345"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"BY"; + self.countryCode = [NSNumber numberWithInteger:375]; + self.internationalPrefix = @"810"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"8"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"80?|99999"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[1-8]"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + + NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; + [numberFormats1_patternArray addObject:@"[1-8]"]; + NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats1]; + + NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; + [numberFormats2_patternArray addObject:@"[1-8]"]; + NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats2]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestCN +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"CN"; + self.countryCode = [NSNumber numberWithInteger:86]; + self.internationalPrefix = @""; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = nil; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = nil; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = YES; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + [numberFormats0_patternArray addObject:@"[3-9]"]; + [numberFormats0_patternArray addObject:@"[3-9]\\d{2}[19]"]; + [numberFormats0_patternArray addObject:@"[3-9]\\d{2}(?:10|95)"]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = nil; + self.leadingZeroPossible = NO; + } + return self; +} +@end + +@implementation NBPhoneMetadataTestRE +- (id)init +{ + self = [super init]; + if (self) { + self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; + self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"262\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"262161234"]; + self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:9[23]|47)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"692123456"]; + self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; + self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:1[01]|2[0156]|84|9[0-37-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; + self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; + self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; + self.codeID = @"RE"; + self.countryCode = [NSNumber numberWithInteger:262]; + self.internationalPrefix = @"00"; + self.preferredInternationalPrefix = nil; + self.nationalPrefix = @"0"; + self.preferredExtnPrefix = nil; + self.nationalPrefixForParsing = @"0"; + self.nationalPrefixTransformRule = nil; + self.sameMobileAndFixedLinePattern = NO; + + NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; + + NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; + NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; + [numberFormats_FormatArray addObject:numberFormats0]; + self.numberFormats = numberFormats_FormatArray; + + NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; + self.intlNumberFormats = intlNumberFormats_FormatArray; + self.mainCountryForCode = NO; + self.leadingDigits = @"262|6(?:9[23]|47)|8"; + self.leadingZeroPossible = NO; + } + return self; +} +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h new file mode 100644 index 0000000..0544330 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h @@ -0,0 +1,8 @@ +#import + +@interface NBMetadataCoreTestMapper : NSObject + ++ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key; + +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m new file mode 100644 index 0000000..234b0b0 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m @@ -0,0 +1,116 @@ +#import "NBMetadataCoreTestMapper.h" + +@implementation NBMetadataCoreTestMapper + +static NSMutableDictionary *kMapCCode2CN; + ++ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + kMapCCode2CN = [[NSMutableDictionary alloc] init]; + + NSMutableArray *countryCode971Array = [[NSMutableArray alloc] init]; + [countryCode971Array addObject:@"AE"]; + [kMapCCode2CN setObject:countryCode971Array forKey:@"971"]; + + NSMutableArray *countryCode55Array = [[NSMutableArray alloc] init]; + [countryCode55Array addObject:@"BR"]; + [kMapCCode2CN setObject:countryCode55Array forKey:@"55"]; + + NSMutableArray *countryCode48Array = [[NSMutableArray alloc] init]; + [countryCode48Array addObject:@"PL"]; + [kMapCCode2CN setObject:countryCode48Array forKey:@"48"]; + + NSMutableArray *countryCode33Array = [[NSMutableArray alloc] init]; + [countryCode33Array addObject:@"FR"]; + [kMapCCode2CN setObject:countryCode33Array forKey:@"33"]; + + NSMutableArray *countryCode49Array = [[NSMutableArray alloc] init]; + [countryCode49Array addObject:@"DE"]; + [kMapCCode2CN setObject:countryCode49Array forKey:@"49"]; + + NSMutableArray *countryCode86Array = [[NSMutableArray alloc] init]; + [countryCode86Array addObject:@"CN"]; + [kMapCCode2CN setObject:countryCode86Array forKey:@"86"]; + + NSMutableArray *countryCode64Array = [[NSMutableArray alloc] init]; + [countryCode64Array addObject:@"NZ"]; + [kMapCCode2CN setObject:countryCode64Array forKey:@"64"]; + + NSMutableArray *countryCode800Array = [[NSMutableArray alloc] init]; + [countryCode800Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode800Array forKey:@"800"]; + + NSMutableArray *countryCode1Array = [[NSMutableArray alloc] init]; + [countryCode1Array addObject:@"US"]; + [countryCode1Array addObject:@"BB"]; + [countryCode1Array addObject:@"BS"]; + [countryCode1Array addObject:@"CA"]; + [kMapCCode2CN setObject:countryCode1Array forKey:@"1"]; + + NSMutableArray *countryCode65Array = [[NSMutableArray alloc] init]; + [countryCode65Array addObject:@"SG"]; + [kMapCCode2CN setObject:countryCode65Array forKey:@"65"]; + + NSMutableArray *countryCode36Array = [[NSMutableArray alloc] init]; + [countryCode36Array addObject:@"HU"]; + [kMapCCode2CN setObject:countryCode36Array forKey:@"36"]; + + NSMutableArray *countryCode244Array = [[NSMutableArray alloc] init]; + [countryCode244Array addObject:@"AO"]; + [kMapCCode2CN setObject:countryCode244Array forKey:@"244"]; + + NSMutableArray *countryCode375Array = [[NSMutableArray alloc] init]; + [countryCode375Array addObject:@"BY"]; + [kMapCCode2CN setObject:countryCode375Array forKey:@"375"]; + + NSMutableArray *countryCode44Array = [[NSMutableArray alloc] init]; + [countryCode44Array addObject:@"GB"]; + [countryCode44Array addObject:@"GG"]; + [kMapCCode2CN setObject:countryCode44Array forKey:@"44"]; + + NSMutableArray *countryCode81Array = [[NSMutableArray alloc] init]; + [countryCode81Array addObject:@"JP"]; + [kMapCCode2CN setObject:countryCode81Array forKey:@"81"]; + + NSMutableArray *countryCode52Array = [[NSMutableArray alloc] init]; + [countryCode52Array addObject:@"MX"]; + [kMapCCode2CN setObject:countryCode52Array forKey:@"52"]; + + NSMutableArray *countryCode82Array = [[NSMutableArray alloc] init]; + [countryCode82Array addObject:@"KR"]; + [kMapCCode2CN setObject:countryCode82Array forKey:@"82"]; + + NSMutableArray *countryCode376Array = [[NSMutableArray alloc] init]; + [countryCode376Array addObject:@"AD"]; + [kMapCCode2CN setObject:countryCode376Array forKey:@"376"]; + + NSMutableArray *countryCode979Array = [[NSMutableArray alloc] init]; + [countryCode979Array addObject:@"001"]; + [kMapCCode2CN setObject:countryCode979Array forKey:@"979"]; + + NSMutableArray *countryCode39Array = [[NSMutableArray alloc] init]; + [countryCode39Array addObject:@"IT"]; + [kMapCCode2CN setObject:countryCode39Array forKey:@"39"]; + + NSMutableArray *countryCode61Array = [[NSMutableArray alloc] init]; + [countryCode61Array addObject:@"AU"]; + [countryCode61Array addObject:@"CC"]; + [countryCode61Array addObject:@"CX"]; + [kMapCCode2CN setObject:countryCode61Array forKey:@"61"]; + + NSMutableArray *countryCode54Array = [[NSMutableArray alloc] init]; + [countryCode54Array addObject:@"AR"]; + [kMapCCode2CN setObject:countryCode54Array forKey:@"54"]; + + NSMutableArray *countryCode262Array = [[NSMutableArray alloc] init]; + [countryCode262Array addObject:@"RE"]; + [countryCode262Array addObject:@"YT"]; + [kMapCCode2CN setObject:countryCode262Array forKey:@"262"]; + }); + return [kMapCCode2CN objectForKey:key]; +} + +@end + diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h new file mode 100644 index 0000000..d33e31b --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h @@ -0,0 +1,32 @@ +// +// NBMetadataHelper.h +// libPhoneNumber +// +// Created by tabby on 2015. 2. 8.. +// Copyright (c) 2015년 ohtalk.me. All rights reserved. +// + +#import +#import "NBPhoneNumberDefines.h" + + +@class NBPhoneMetaData; + +@interface NBMetadataHelper : NSObject + ++ (void)setTestMode:(BOOL)isMode; + ++ (NSArray *)getAllMetadata; + ++ (NBPhoneMetaData *)getMetadataForNonGeographicalRegion:(NSNumber *)countryCallingCode; ++ (NBPhoneMetaData *)getMetadataForRegion:(NSString *)regionCode; + ++ (NSArray *)regionCodeFromCountryCode:(NSNumber *)countryCodeNumber; ++ (NSString *)countryCodeFromRegionCode:(NSString *)regionCode; + ++ (NSString *)stringByTrimming:(NSString *)aString; ++ (NSString *)normalizeNonBreakingSpace:(NSString *)aString; + ++ (BOOL)hasValue:(NSString *)string; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m new file mode 100644 index 0000000..ef1dfc4 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m @@ -0,0 +1,259 @@ +// +// NBMetadataHelper.m +// libPhoneNumber +// +// Created by tabby on 2015. 2. 8.. +// Copyright (c) 2015년 ohtalk.me. All rights reserved. +// + +#import "NBMetadataHelper.h" + +#import "NBPhoneMetaData.h" + +#import "NBMetadataCoreTest.h" +#import "NBMetadataCore.h" + +#import "NBMetadataCoreMapper.h" +#import "NBMetadataCoreTestMapper.h" + + +@interface NBMetadataHelper () + +@end + + +@implementation NBMetadataHelper + +/* + Terminologies + - Country Number (CN) = Country code for i18n calling + - Country Code (CC) : ISO country codes (2 chars) + Ref. site (countrycode.org) + */ + +static NSMutableDictionary *kMapCCode2CN; + +// Cached metadata +static NBPhoneMetaData *cachedMetaData; +static NSString *cachedMetaDataKey; + +static BOOL isTestMode = NO; + ++ (void)setTestMode:(BOOL)isMode +{ + isTestMode = isMode; +} + +/** + * initialization meta-meta variables + */ ++ (void)initializeHelper +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + kMapCCode2CN = [NSMutableDictionary dictionaryWithObjectsAndKeys: + @"1", @"US", @"1", @"AG", @"1", @"AI", @"1", @"AS", @"1", @"BB", @"1", @"BM", @"1", @"BS", @"1", @"CA", @"1", @"DM", @"1", @"DO", + @"1", @"GD", @"1", @"GU", @"1", @"JM", @"1", @"KN", @"1", @"KY", @"1", @"LC", @"1", @"MP", @"1", @"MS", @"1", @"PR", @"1", @"SX", + @"1", @"TC", @"1", @"TT", @"1", @"VC", @"1", @"VG", @"1", @"VI", @"7", @"RU", @"7", @"KZ", + @"20", @"EG", @"27", @"ZA", + @"30", @"GR", @"31", @"NL", @"32", @"BE", @"33", @"FR", @"34", @"ES", @"36", @"HU", @"39", @"IT", + @"40", @"RO", @"41", @"CH", @"43", @"AT", @"44", @"GB", @"44", @"GG", @"44", @"IM", @"44", @"JE", @"45", @"DK", @"46", @"SE", @"47", @"NO", @"47", @"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", @"61", @"CC", @"61", @"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", @"212", @"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", @"262", @"YT", @"263", @"ZW", @"264", @"NA", @"265", @"MW", @"266", @"LS", @"267", @"BW", @"268", @"SZ", @"269", @"KM", + @"290", @"SH", @"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",@"358", @"AX", @"359", @"BG", + @"370", @"LT", @"371", @"LV", @"372", @"EE", @"373", @"MD", @"374", @"AM", @"375", @"BY", @"376", @"AD", @"377", @"MC", @"378", @"SM", @"379", @"VA", + @"380", @"UA", @"381", @"RS", @"382", @"ME", @"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", @"590", @"BL", @"590", @"MF", @"591", @"BO", @"592", @"GY", @"593", @"EC", @"594", @"GF", @"595", @"PY", @"596", @"MQ", @"597", @"SR", @"598", @"UY", @"599", @"CW", @"599", @"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", + @"800", @"001", @"808", @"001", + @"850", @"KP", @"852", @"HK", @"853", @"MO", @"855", @"KH", @"856", @"LA", + @"870", @"001", @"878", @"001", + @"880", @"BD", @"881", @"001", @"882", @"001", @"883", @"001", @"886", @"TW", @"888", @"001", + @"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", @"979", @"001", + @"992", @"TJ", @"993", @"TM", @"994", @"AZ", @"995", @"GE", @"996", @"KG", @"998", @"UZ", + nil]; + }); +} + + ++ (void)clearHelper +{ + if (kMapCCode2CN) { + [kMapCCode2CN removeAllObjects]; + kMapCCode2CN = nil; + } +} + + ++ (NSArray*)getAllMetadata +{ + NSArray *countryCodes = [NSLocale ISOCountryCodes]; + NSMutableArray *resultMetadata = [[NSMutableArray alloc] init]; + + for (NSString *countryCode in countryCodes) { + id countryDictionaryInstance = [NSDictionary dictionaryWithObject:countryCode forKey:NSLocaleCountryCode]; + NSString *identifier = [NSLocale localeIdentifierFromComponents:countryDictionaryInstance]; + NSString *country = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:identifier]; + + NSMutableDictionary *countryMeta = [[NSMutableDictionary alloc] init]; + if (country) { + [countryMeta setObject:country forKey:@"name"]; + } + + if (countryCode) { + [countryMeta setObject:countryCode forKey:@"code"]; + } + + NBPhoneMetaData *metaData = [NBMetadataHelper getMetadataForRegion:countryCode]; + if (metaData) { + [countryMeta setObject:metaData forKey:@"metadata"]; + } + + [resultMetadata addObject:countryMeta]; + } + + return resultMetadata; +} + + ++ (NSArray *)regionCodeFromCountryCode:(NSNumber *)countryCodeNumber +{ + [NBMetadataHelper initializeHelper]; + + id res = nil; + + if (isTestMode) { + res = [NBMetadataCoreTestMapper ISOCodeFromCallingNumber:[countryCodeNumber stringValue]]; + } else { + res = [NBMetadataCoreMapper ISOCodeFromCallingNumber:[countryCodeNumber stringValue]]; + } + + if (res && [res isKindOfClass:[NSArray class]] && [((NSArray*)res) count] > 0) { + return res; + } + + return nil; +} + + ++ (NSString *)countryCodeFromRegionCode:(NSString* )regionCode +{ + [NBMetadataHelper initializeHelper]; + + id res = [kMapCCode2CN objectForKey:regionCode]; + + if (res) { + return res; + } + + return nil; +} + + ++ (NSString *)stringByTrimming:(NSString *)aString +{ + if (aString == nil || aString.length <= 0) return aString; + + aString = [NBMetadataHelper normalizeNonBreakingSpace:aString]; + + NSString *aRes = @""; + NSArray *newlines = [aString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; + + for (NSString *line in newlines) { + NSString *performedString = [line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + + if (performedString.length > 0) { + aRes = [aRes stringByAppendingString:performedString]; + } + } + + if (newlines.count <= 0) { + return aString; + } + + return aRes; +} + + ++ (NSString *)normalizeNonBreakingSpace:(NSString *)aString +{ + return [aString stringByReplacingOccurrencesOfString:NB_NON_BREAKING_SPACE withString:@" "]; +} + + +/** + * Returns the metadata for the given region code or {@code nil} if the region + * code is invalid or unknown. + * + * @param {?string} regionCode + * @return {i18n.phonenumbers.PhoneMetadata} + */ ++ (NBPhoneMetaData *)getMetadataForRegion:(NSString *)regionCode +{ + [NBMetadataHelper initializeHelper]; + + if ([self hasValue:regionCode] == NO) { + return nil; + } + + regionCode = [regionCode uppercaseString]; + + NSString *classPrefix = isTestMode ? @"NBPhoneMetadataTest" : @"NBPhoneMetadata"; + + NSString *className = [NSString stringWithFormat:@"%@%@", classPrefix, regionCode]; + Class metaClass = NSClassFromString(className); + + if (metaClass) { + NBPhoneMetaData *metadata = [[metaClass alloc] init]; + return metadata; + } + + return nil; +} + + +/** + * @param {number} countryCallingCode + * @return {i18n.phonenumbers.PhoneMetadata} + */ ++ (NBPhoneMetaData *)getMetadataForNonGeographicalRegion:(NSNumber *)countryCallingCode +{ + NSString *countryCallingCodeStr = [NSString stringWithFormat:@"%@", countryCallingCode]; + return [self getMetadataForRegion:countryCallingCodeStr]; +} + + +#pragma mark - Regular expression Utilities - + ++ (BOOL)hasValue:(NSString*)string +{ + static dispatch_once_t onceToken; + static NSCharacterSet *whitespaceCharSet = nil; + dispatch_once(&onceToken, ^{ + NSMutableCharacterSet *spaceCharSet = [NSMutableCharacterSet characterSetWithCharactersInString:NB_NON_BREAKING_SPACE]; + [spaceCharSet formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + whitespaceCharSet = spaceCharSet; + }); + + if (string == nil || [string stringByTrimmingCharactersInSet:whitespaceCharSet].length <= 0) { + return NO; + } + + return YES; +} + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h new file mode 100755 index 0000000..2abb41a --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h @@ -0,0 +1,22 @@ +// +// NBPhoneNumberFormat.h +// libPhoneNumber +// +// + +#import + + +@interface NBNumberFormat : NSObject + +// from phonemetadata.pb.js +/* 1 */ @property (nonatomic, strong) NSString *pattern; +/* 2 */ @property (nonatomic, strong) NSString *format; +/* 3 */ @property (nonatomic, strong) NSMutableArray *leadingDigitsPatterns; +/* 4 */ @property (nonatomic, strong) NSString *nationalPrefixFormattingRule; +/* 6 */ @property (nonatomic, assign) BOOL nationalPrefixOptionalWhenFormatting; +/* 5 */ @property (nonatomic, strong) NSString *domesticCarrierCodeFormattingRule; + +- (id)initWithPattern:(NSString *)pattern withFormat:(NSString *)format withLeadingDigitsPatterns:(NSMutableArray *)leadingDigitsPatterns withNationalPrefixFormattingRule:(NSString *)nationalPrefixFormattingRule whenFormatting:(BOOL)nationalPrefixOptionalWhenFormatting withDomesticCarrierCodeFormattingRule:(NSString *)domesticCarrierCodeFormattingRule; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m new file mode 100755 index 0000000..96f64af --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m @@ -0,0 +1,98 @@ +// +// NBPhoneNumberFormat.m +// libPhoneNumber +// +// + +#import "NBNumberFormat.h" +#import "NSArray+NBAdditions.h" + + +@implementation NBNumberFormat + + +- (id)initWithPattern:(NSString *)pattern withFormat:(NSString *)format withLeadingDigitsPatterns:(NSMutableArray *)leadingDigitsPatterns withNationalPrefixFormattingRule:(NSString *)nationalPrefixFormattingRule whenFormatting:(BOOL)nationalPrefixOptionalWhenFormatting withDomesticCarrierCodeFormattingRule:(NSString *)domesticCarrierCodeFormattingRule +{ + self = [self init]; + + _pattern = pattern; + _format = format; + _leadingDigitsPatterns = leadingDigitsPatterns; + _nationalPrefixFormattingRule = nationalPrefixFormattingRule; + _nationalPrefixOptionalWhenFormatting = nationalPrefixOptionalWhenFormatting; + _domesticCarrierCodeFormattingRule = domesticCarrierCodeFormattingRule; + + return self; +} + + +- (id)init +{ + self = [super init]; + + if (self) { + self.nationalPrefixOptionalWhenFormatting = NO; + self.leadingDigitsPatterns = [[NSMutableArray alloc] init]; + } + + return self; +} + + +- (NSString *)description +{ + return [NSString stringWithFormat:@"[pattern:%@, format:%@, leadingDigitsPattern:%@, nationalPrefixFormattingRule:%@, nationalPrefixOptionalWhenFormatting:%@, domesticCarrierCodeFormattingRule:%@]", + self.pattern, self.format, self.leadingDigitsPatterns, self.nationalPrefixFormattingRule, self.nationalPrefixOptionalWhenFormatting?@"Y":@"N", self.domesticCarrierCodeFormattingRule]; +} + + +- (id)copyWithZone:(NSZone *)zone +{ + NBNumberFormat *phoneFormatCopy = [[NBNumberFormat allocWithZone:zone] init]; + + /* + 1 @property (nonatomic, strong, readwrite) NSString *pattern; + 2 @property (nonatomic, strong, readwrite) NSString *format; + 3 @property (nonatomic, strong, readwrite) NSString *leadingDigitsPattern; + 4 @property (nonatomic, strong, readwrite) NSString *nationalPrefixFormattingRule; + 6 @property (nonatomic, assign, readwrite) BOOL nationalPrefixOptionalWhenFormatting; + 5 @property (nonatomic, strong, readwrite) NSString *domesticCarrierCodeFormattingRule; + */ + + phoneFormatCopy.pattern = [self.pattern copy]; + phoneFormatCopy.format = [self.format copy]; + phoneFormatCopy.leadingDigitsPatterns = [self.leadingDigitsPatterns copy]; + phoneFormatCopy.nationalPrefixFormattingRule = [self.nationalPrefixFormattingRule copy]; + phoneFormatCopy.nationalPrefixOptionalWhenFormatting = self.nationalPrefixOptionalWhenFormatting; + phoneFormatCopy.domesticCarrierCodeFormattingRule = [self.domesticCarrierCodeFormattingRule copy]; + + return phoneFormatCopy; +} + + +- (id)initWithCoder:(NSCoder*)coder +{ + if (self = [super init]) { + self.pattern = [coder decodeObjectForKey:@"pattern"]; + self.format = [coder decodeObjectForKey:@"format"]; + self.leadingDigitsPatterns = [coder decodeObjectForKey:@"leadingDigitsPatterns"]; + self.nationalPrefixFormattingRule = [coder decodeObjectForKey:@"nationalPrefixFormattingRule"]; + self.nationalPrefixOptionalWhenFormatting = [[coder decodeObjectForKey:@"nationalPrefixOptionalWhenFormatting"] boolValue]; + self.domesticCarrierCodeFormattingRule = [coder decodeObjectForKey:@"domesticCarrierCodeFormattingRule"]; + } + return self; +} + + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [coder encodeObject:self.pattern forKey:@"pattern"]; + [coder encodeObject:self.format forKey:@"format"]; + [coder encodeObject:self.leadingDigitsPatterns forKey:@"leadingDigitsPatterns"]; + [coder encodeObject:self.nationalPrefixFormattingRule forKey:@"nationalPrefixFormattingRule"]; + [coder encodeObject:[NSNumber numberWithBool:self.nationalPrefixOptionalWhenFormatting] forKey:@"nationalPrefixOptionalWhenFormatting"]; + [coder encodeObject:self.domesticCarrierCodeFormattingRule forKey:@"domesticCarrierCodeFormattingRule"]; +} + + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h new file mode 100755 index 0000000..6b0bf2e --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h @@ -0,0 +1,43 @@ +// +// M2PhoneMetaData.h +// libPhoneNumber +// +// + +#import + + +@class NBPhoneNumberDesc, NBNumberFormat; + +@interface NBPhoneMetaData : NSObject + +// from phonemetadata.pb.js +/* 1 */ @property (nonatomic, strong) NBPhoneNumberDesc *generalDesc; +/* 2 */ @property (nonatomic, strong) NBPhoneNumberDesc *fixedLine; +/* 3 */ @property (nonatomic, strong) NBPhoneNumberDesc *mobile; +/* 4 */ @property (nonatomic, strong) NBPhoneNumberDesc *tollFree; +/* 5 */ @property (nonatomic, strong) NBPhoneNumberDesc *premiumRate; +/* 6 */ @property (nonatomic, strong) NBPhoneNumberDesc *sharedCost; +/* 7 */ @property (nonatomic, strong) NBPhoneNumberDesc *personalNumber; +/* 8 */ @property (nonatomic, strong) NBPhoneNumberDesc *voip; +/* 21 */ @property (nonatomic, strong) NBPhoneNumberDesc *pager; +/* 25 */ @property (nonatomic, strong) NBPhoneNumberDesc *uan; +/* 27 */ @property (nonatomic, strong) NBPhoneNumberDesc *emergency; +/* 28 */ @property (nonatomic, strong) NBPhoneNumberDesc *voicemail; +/* 24 */ @property (nonatomic, strong) NBPhoneNumberDesc *noInternationalDialling; +/* 9 */ @property (nonatomic, strong) NSString *codeID; +/* 10 */ @property (nonatomic, strong) NSNumber *countryCode; +/* 11 */ @property (nonatomic, strong) NSString *internationalPrefix; +/* 17 */ @property (nonatomic, strong) NSString *preferredInternationalPrefix; +/* 12 */ @property (nonatomic, strong) NSString *nationalPrefix; +/* 13 */ @property (nonatomic, strong) NSString *preferredExtnPrefix; +/* 15 */ @property (nonatomic, strong) NSString *nationalPrefixForParsing; +/* 16 */ @property (nonatomic, strong) NSString *nationalPrefixTransformRule; +/* 18 */ @property (nonatomic, assign) BOOL sameMobileAndFixedLinePattern; +/* 19 */ @property (nonatomic, strong) NSMutableArray *numberFormats; +/* 20 */ @property (nonatomic, strong) NSMutableArray *intlNumberFormats; +/* 22 */ @property (nonatomic, assign) BOOL mainCountryForCode; +/* 23 */ @property (nonatomic, strong) NSString *leadingDigits; +/* 26 */ @property (nonatomic, assign) BOOL leadingZeroPossible; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m new file mode 100755 index 0000000..1ca2083 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m @@ -0,0 +1,106 @@ +// +// NBPhoneMetaData.m +// libPhoneNumber +// +// + +#import "NBPhoneMetaData.h" +#import "NBPhoneNumberDesc.h" +#import "NBNumberFormat.h" +#import "NSArray+NBAdditions.h" + + +@implementation NBPhoneMetaData + + +- (id)init +{ + self = [super init]; + + if (self) { + _numberFormats = [[NSMutableArray alloc] init]; + _intlNumberFormats = [[NSMutableArray alloc] init]; + + _leadingZeroPossible = NO; + _mainCountryForCode = NO; + } + + return self; +} + + +- (NSString *)description +{ + return [NSString stringWithFormat:@"* codeID[%@] countryCode[%@] generalDesc[%@] fixedLine[%@] mobile[%@] tollFree[%@] premiumRate[%@] sharedCost[%@] personalNumber[%@] voip[%@] pager[%@] uan[%@] emergency[%@] voicemail[%@] noInternationalDialling[%@] internationalPrefix[%@] preferredInternationalPrefix[%@] nationalPrefix[%@] preferredExtnPrefix[%@] nationalPrefixForParsing[%@] nationalPrefixTransformRule[%@] sameMobileAndFixedLinePattern[%@] numberFormats[%@] intlNumberFormats[%@] mainCountryForCode[%@] leadingDigits[%@] leadingZeroPossible[%@]", + _codeID, _countryCode, _generalDesc, _fixedLine, _mobile, _tollFree, _premiumRate, _sharedCost, _personalNumber, _voip, _pager, _uan, _emergency, _voicemail, _noInternationalDialling, _internationalPrefix, _preferredInternationalPrefix, _nationalPrefix, _preferredExtnPrefix, _nationalPrefixForParsing, _nationalPrefixTransformRule, _sameMobileAndFixedLinePattern?@"Y":@"N", _numberFormats, _intlNumberFormats, _mainCountryForCode?@"Y":@"N", _leadingDigits, _leadingZeroPossible?@"Y":@"N"]; +} + + +- (id)initWithCoder:(NSCoder*)coder +{ + if (self = [super init]) { + _generalDesc = [coder decodeObjectForKey:@"generalDesc"]; + _fixedLine = [coder decodeObjectForKey:@"fixedLine"]; + _mobile = [coder decodeObjectForKey:@"mobile"]; + _tollFree = [coder decodeObjectForKey:@"tollFree"]; + _premiumRate = [coder decodeObjectForKey:@"premiumRate"]; + _sharedCost = [coder decodeObjectForKey:@"sharedCost"]; + _personalNumber = [coder decodeObjectForKey:@"personalNumber"]; + _voip = [coder decodeObjectForKey:@"voip"]; + _pager = [coder decodeObjectForKey:@"pager"]; + _uan = [coder decodeObjectForKey:@"uan"]; + _emergency = [coder decodeObjectForKey:@"emergency"]; + _voicemail = [coder decodeObjectForKey:@"voicemail"]; + _noInternationalDialling = [coder decodeObjectForKey:@"noInternationalDialling"]; + _codeID = [coder decodeObjectForKey:@"codeID"]; + _countryCode = [coder decodeObjectForKey:@"countryCode"]; + _internationalPrefix = [coder decodeObjectForKey:@"internationalPrefix"]; + _preferredInternationalPrefix = [coder decodeObjectForKey:@"preferredInternationalPrefix"]; + _nationalPrefix = [coder decodeObjectForKey:@"nationalPrefix"]; + _preferredExtnPrefix = [coder decodeObjectForKey:@"preferredExtnPrefix"]; + _nationalPrefixForParsing = [coder decodeObjectForKey:@"nationalPrefixForParsing"]; + _nationalPrefixTransformRule = [coder decodeObjectForKey:@"nationalPrefixTransformRule"]; + _sameMobileAndFixedLinePattern = [[coder decodeObjectForKey:@"sameMobileAndFixedLinePattern"] boolValue]; + _numberFormats = [coder decodeObjectForKey:@"numberFormats"]; + _intlNumberFormats = [coder decodeObjectForKey:@"intlNumberFormats"]; + _mainCountryForCode = [[coder decodeObjectForKey:@"mainCountryForCode"] boolValue]; + _leadingDigits = [coder decodeObjectForKey:@"leadingDigits"]; + _leadingZeroPossible = [[coder decodeObjectForKey:@"leadingZeroPossible"] boolValue]; + } + return self; +} + + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [coder encodeObject:_generalDesc forKey:@"generalDesc"]; + [coder encodeObject:_fixedLine forKey:@"fixedLine"]; + [coder encodeObject:_mobile forKey:@"mobile"]; + [coder encodeObject:_tollFree forKey:@"tollFree"]; + [coder encodeObject:_premiumRate forKey:@"premiumRate"]; + [coder encodeObject:_sharedCost forKey:@"sharedCost"]; + [coder encodeObject:_personalNumber forKey:@"personalNumber"]; + [coder encodeObject:_voip forKey:@"voip"]; + [coder encodeObject:_pager forKey:@"pager"]; + [coder encodeObject:_uan forKey:@"uan"]; + [coder encodeObject:_emergency forKey:@"emergency"]; + [coder encodeObject:_voicemail forKey:@"voicemail"]; + [coder encodeObject:_noInternationalDialling forKey:@"noInternationalDialling"]; + [coder encodeObject:_codeID forKey:@"codeID"]; + [coder encodeObject:_countryCode forKey:@"countryCode"]; + [coder encodeObject:_internationalPrefix forKey:@"internationalPrefix"]; + [coder encodeObject:_preferredInternationalPrefix forKey:@"preferredInternationalPrefix"]; + [coder encodeObject:_nationalPrefix forKey:@"nationalPrefix"]; + [coder encodeObject:_preferredExtnPrefix forKey:@"preferredExtnPrefix"]; + [coder encodeObject:_nationalPrefixForParsing forKey:@"nationalPrefixForParsing"]; + [coder encodeObject:_nationalPrefixTransformRule forKey:@"nationalPrefixTransformRule"]; + [coder encodeObject:[NSNumber numberWithBool:_sameMobileAndFixedLinePattern] forKey:@"sameMobileAndFixedLinePattern"]; + [coder encodeObject:_numberFormats forKey:@"numberFormats"]; + [coder encodeObject:_intlNumberFormats forKey:@"intlNumberFormats"]; + [coder encodeObject:[NSNumber numberWithBool:_mainCountryForCode] forKey:@"mainCountryForCode"]; + [coder encodeObject:_leadingDigits forKey:@"leadingDigits"]; + [coder encodeObject:[NSNumber numberWithBool:_leadingZeroPossible] forKey:@"leadingZeroPossible"]; +} + + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h new file mode 100755 index 0000000..7b95671 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h @@ -0,0 +1,25 @@ +// +// NBPhoneNumber.h +// libPhoneNumber +// +// + +#import +#import "NBPhoneNumberDefines.h" + + +@interface NBPhoneNumber : NSObject + +// from phonemetadata.pb.js +/* 1 */ @property (nonatomic, strong, readwrite) NSNumber *countryCode; +/* 2 */ @property (nonatomic, strong, readwrite) NSNumber *nationalNumber; +/* 3 */ @property (nonatomic, strong, readwrite) NSString *extension; +/* 4 */ @property (nonatomic, assign, readwrite) BOOL italianLeadingZero; +/* 5 */ @property (nonatomic, strong, readwrite) NSString *rawInput; +/* 6 */ @property (nonatomic, strong, readwrite) NSNumber *countryCodeSource; +/* 7 */ @property (nonatomic, strong, readwrite) NSString *preferredDomesticCarrierCode; + +- (void)clearCountryCodeSource; +- (NBECountryCodeSource)getCountryCodeSourceOrDefault; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m new file mode 100755 index 0000000..9db6d3e --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m @@ -0,0 +1,119 @@ +// +// NBPhoneNumber.m +// libPhoneNumber +// +// + +#import "NBPhoneNumber.h" +#import "NBPhoneNumberDefines.h" + + +@implementation NBPhoneNumber + +- (id)init +{ + self = [super init]; + + if (self) { + self.countryCodeSource = nil; + self.italianLeadingZero = NO; + self.nationalNumber = @-1; + self.countryCode = @-1; + } + + return self; +} + + +- (void)clearCountryCodeSource +{ + [self setCountryCodeSource:nil]; +} + + +- (NBECountryCodeSource)getCountryCodeSourceOrDefault +{ + if (!self.countryCodeSource) { + return NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN; + } + + return [self.countryCodeSource intValue]; +} + + +- (BOOL)isEqualToObject:(NBPhoneNumber*)otherObj +{ + return [self isEqual:otherObj]; +} + + +- (NSUInteger)hash +{ + NSData *selfObject = [NSKeyedArchiver archivedDataWithRootObject:self]; + return [selfObject hash]; +} + + +- (BOOL)isEqual:(id)object +{ + if (![object isKindOfClass:[NBPhoneNumber class]]) { + return NO; + } + + NBPhoneNumber *other = object; + return ([self.countryCode isEqualToNumber:other.countryCode]) && ([self.nationalNumber isEqualToNumber:other.nationalNumber]) && + (self.italianLeadingZero == other.italianLeadingZero) && + ((self.extension == nil && other.extension == nil) || [self.extension isEqualToString:other.extension]); +} + + +- (id)copyWithZone:(NSZone *)zone +{ + NBPhoneNumber *phoneNumberCopy = [[NBPhoneNumber allocWithZone:zone] init]; + + phoneNumberCopy.countryCode = [self.countryCode copy]; + phoneNumberCopy.nationalNumber = [self.nationalNumber copy]; + phoneNumberCopy.extension = [self.extension copy]; + phoneNumberCopy.italianLeadingZero = self.italianLeadingZero; + phoneNumberCopy.rawInput = [self.rawInput copy]; + phoneNumberCopy.countryCodeSource = [self.countryCodeSource copy]; + phoneNumberCopy.preferredDomesticCarrierCode = [self.preferredDomesticCarrierCode copy]; + + return phoneNumberCopy; +} + + +- (id)initWithCoder:(NSCoder*)coder +{ + if (self = [super init]) { + self.countryCode = [coder decodeObjectForKey:@"countryCode"]; + self.nationalNumber = [coder decodeObjectForKey:@"nationalNumber"]; + self.extension = [coder decodeObjectForKey:@"extension"]; + self.italianLeadingZero = [[coder decodeObjectForKey:@"italianLeadingZero"] boolValue]; + self.rawInput = [coder decodeObjectForKey:@"rawInput"]; + self.countryCodeSource = [coder decodeObjectForKey:@"countryCodeSource"]; + self.preferredDomesticCarrierCode = [coder decodeObjectForKey:@"preferredDomesticCarrierCode"]; + } + return self; +} + + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [coder encodeObject:self.countryCode forKey:@"countryCode"]; + [coder encodeObject:self.nationalNumber forKey:@"nationalNumber"]; + [coder encodeObject:self.extension forKey:@"extension"]; + [coder encodeObject:[NSNumber numberWithBool:self.italianLeadingZero] forKey:@"italianLeadingZero"]; + [coder encodeObject:self.rawInput forKey:@"rawInput"]; + [coder encodeObject:self.countryCodeSource forKey:@"countryCodeSource"]; + [coder encodeObject:self.preferredDomesticCarrierCode forKey:@"preferredDomesticCarrierCode"]; +} + + + +- (NSString *)description +{ + return [NSString stringWithFormat:@" - countryCode[%@], nationalNumber[%@], extension[%@], italianLeadingZero[%@], rawInput[%@] countryCodeSource[%d] preferredDomesticCarrierCode[%@]", self.countryCode, self.nationalNumber, self.extension, self.italianLeadingZero?@"Y":@"N", self.rawInput, [self.countryCodeSource intValue], self.preferredDomesticCarrierCode]; +} + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h new file mode 100755 index 0000000..5154959 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h @@ -0,0 +1,85 @@ +// +// NBPhoneNumberDefines.h +// libPhoneNumber +// +// + +#ifndef libPhoneNumber_NBPhoneNumberDefines_h +#define libPhoneNumber_NBPhoneNumberDefines_h + +#define NB_YES [NSNumber numberWithBool:YES] +#define NB_NO [NSNumber numberWithBool:NO] + +#pragma mark - Enum - + +typedef enum { + NBEPhoneNumberFormatE164 = 0, + NBEPhoneNumberFormatINTERNATIONAL = 1, + NBEPhoneNumberFormatNATIONAL = 2, + NBEPhoneNumberFormatRFC3966 = 3 +} NBEPhoneNumberFormat; + + +typedef enum { + NBEPhoneNumberTypeFIXED_LINE = 0, + NBEPhoneNumberTypeMOBILE = 1, + // In some regions (e.g. the USA), it is impossible to distinguish between + // fixed-line and mobile numbers by looking at the phone number itself. + NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE = 2, + // Freephone lines + NBEPhoneNumberTypeTOLL_FREE = 3, + NBEPhoneNumberTypePREMIUM_RATE = 4, + // The cost of this call is shared between the caller and the recipient, and + // is hence typically less than PREMIUM_RATE calls. See + // http://en.wikipedia.org/wiki/Shared_Cost_Service for more information. + NBEPhoneNumberTypeSHARED_COST = 5, + // Voice over IP numbers. This includes TSoIP (Telephony Service over IP). + NBEPhoneNumberTypeVOIP = 6, + // A personal number is associated with a particular person, and may be routed + // to either a MOBILE or FIXED_LINE number. Some more information can be found + // here = http://en.wikipedia.org/wiki/Personal_Numbers + NBEPhoneNumberTypePERSONAL_NUMBER = 7, + NBEPhoneNumberTypePAGER = 8, + // Used for 'Universal Access Numbers' or 'Company Numbers'. They may be + // further routed to specific offices, but allow one number to be used for a + // company. + NBEPhoneNumberTypeUAN = 9, + // Used for 'Voice Mail Access Numbers'. + NBEPhoneNumberTypeVOICEMAIL = 10, + // A phone number is of type UNKNOWN when it does not fit any of the known + // patterns for a specific region. + NBEPhoneNumberTypeUNKNOWN = -1 +} NBEPhoneNumberType; + + +typedef enum { + NBEMatchTypeNOT_A_NUMBER = 0, + NBEMatchTypeNO_MATCH = 1, + NBEMatchTypeSHORT_NSN_MATCH = 2, + NBEMatchTypeNSN_MATCH = 3, + NBEMatchTypeEXACT_MATCH = 4 +} NBEMatchType; + + +typedef enum { + NBEValidationResultUNKNOWN = 0, + NBEValidationResultIS_POSSIBLE = 1, + NBEValidationResultINVALID_COUNTRY_CODE = 2, + NBEValidationResultTOO_SHORT = 3, + NBEValidationResultTOO_LONG = 4 +} NBEValidationResult; + + +typedef enum { + NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN = 1, + NBECountryCodeSourceFROM_NUMBER_WITH_IDD = 5, + NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN = 10, + NBECountryCodeSourceFROM_DEFAULT_COUNTRY = 20 +} NBECountryCodeSource; + +static NSString *NB_NON_BREAKING_SPACE = @"\u00a0"; +static NSString *NB_PLUS_CHARS = @"++"; +static NSString *NB_VALID_DIGITS_STRING = @"0-90-9٠-٩۰-۹"; +static NSString *NB_REGION_CODE_FOR_NON_GEO_ENTITY = @"001"; + +#endif diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h new file mode 100755 index 0000000..37111a7 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h @@ -0,0 +1,19 @@ +// +// NBPhoneNumberDesc.h +// libPhoneNumber +// +// + +#import + + +@interface NBPhoneNumberDesc : NSObject + +// from phonemetadata.pb.js +/* 2 */ @property (nonatomic, strong, readwrite) NSString *nationalNumberPattern; +/* 3 */ @property (nonatomic, strong, readwrite) NSString *possibleNumberPattern; +/* 6 */ @property (nonatomic, strong, readwrite) NSString *exampleNumber; + +- (id)initWithNationalNumberPattern:(NSString *)nnp withPossibleNumberPattern:(NSString *)pnp withExample:(NSString *)exp; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m new file mode 100755 index 0000000..058e543 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m @@ -0,0 +1,105 @@ +// +// NBPhoneNumberDesc.m +// libPhoneNumber +// +// + +#import "NBPhoneNumberDesc.h" +#import "NSArray+NBAdditions.h" + + +@implementation NBPhoneNumberDesc + +- (id)initWithData:(id)data +{ + NSString *nnp = nil; + NSString *pnp = nil; + NSString *exp = nil; + + if (data != nil && [data isKindOfClass:[NSArray class]]) { + /* 2 */ nnp = [data safeObjectAtIndex:2]; + /* 3 */ pnp = [data safeObjectAtIndex:3]; + /* 6 */ exp = [data safeObjectAtIndex:6]; + } + + return [self initWithNationalNumberPattern:nnp withPossibleNumberPattern:pnp withExample:exp]; +} + + +- (id)initWithNationalNumberPattern:(NSString *)nnp withPossibleNumberPattern:(NSString *)pnp withExample:(NSString *)exp +{ + self = [self init]; + + if (self) { + self.nationalNumberPattern = nnp; + self.possibleNumberPattern = pnp; + self.exampleNumber = exp; + } + + return self; + +} + + +- (id)init +{ + self = [super init]; + + if (self) { + } + + return self; +} + + +- (id)initWithCoder:(NSCoder*)coder +{ + if (self = [super init]) { + self.nationalNumberPattern = [coder decodeObjectForKey:@"nationalNumberPattern"]; + self.possibleNumberPattern = [coder decodeObjectForKey:@"possibleNumberPattern"]; + self.exampleNumber = [coder decodeObjectForKey:@"exampleNumber"]; + } + return self; +} + + +- (void)encodeWithCoder:(NSCoder*)coder +{ + [coder encodeObject:self.nationalNumberPattern forKey:@"nationalNumberPattern"]; + [coder encodeObject:self.possibleNumberPattern forKey:@"possibleNumberPattern"]; + [coder encodeObject:self.exampleNumber forKey:@"exampleNumber"]; +} + + +- (NSString *)description +{ + return [NSString stringWithFormat:@"nationalNumberPattern[%@] possibleNumberPattern[%@] exampleNumber[%@]", + self.nationalNumberPattern, self.possibleNumberPattern, self.exampleNumber]; +} + + +- (id)copyWithZone:(NSZone *)zone +{ + NBPhoneNumberDesc *phoneDescCopy = [[NBPhoneNumberDesc allocWithZone:zone] init]; + + phoneDescCopy.nationalNumberPattern = [self.nationalNumberPattern copy]; + phoneDescCopy.possibleNumberPattern = [self.possibleNumberPattern copy]; + phoneDescCopy.exampleNumber = [self.exampleNumber copy]; + + return phoneDescCopy; +} + + +- (BOOL)isEqual:(id)object +{ + if ([object isKindOfClass:[NBPhoneNumberDesc class]] == NO) { + return NO; + } + + NBPhoneNumberDesc *other = object; + return [self.nationalNumberPattern isEqual:other.nationalNumberPattern] && + [self.possibleNumberPattern isEqual:other.possibleNumberPattern] && + [self.exampleNumber isEqual:other.exampleNumber]; +} + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h new file mode 100755 index 0000000..a0ea1d6 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h @@ -0,0 +1,98 @@ +// +// NBPhoneNumberUtil.h +// libPhoneNumber +// +// Created by tabby on 2015. 2. 8.. +// Copyright (c) 2015년 ohtalk.me. All rights reserved. +// + +#import +#import "NBPhoneNumberDefines.h" + + +@class NBPhoneMetaData, NBPhoneNumber; + +@interface NBPhoneNumberUtil : NSObject + +// regular expressions +- (NSArray*)matchesByRegex:(NSString*)sourceString regex:(NSString*)pattern; +- (NSArray*)matchedStringByRegex:(NSString*)sourceString regex:(NSString*)pattern; +- (NSString*)replaceStringByRegex:(NSString*)sourceString regex:(NSString*)pattern withTemplate:(NSString*)templateString; +- (int)stringPositionByRegex:(NSString*)sourceString regex:(NSString*)pattern; + +// libPhoneNumber Util functions +- (NSString*)convertAlphaCharactersInNumber:(NSString*)number; + +- (NSString*)normalizePhoneNumber:(NSString*)phoneNumber; +- (NSString*)normalizeDigitsOnly:(NSString*)number; + +- (BOOL)isNumberGeographical:(NBPhoneNumber*)phoneNumber; + +- (NSString*)extractPossibleNumber:(NSString*)phoneNumber; +- (NSNumber*)extractCountryCode:(NSString*)fullNumber nationalNumber:(NSString**)nationalNumber; +#if TARGET_OS_IPHONE +- (NSString *)countryCodeByCarrier; +#endif + +- (NSString*)getNddPrefixForRegion:(NSString*)regionCode stripNonDigits:(BOOL)stripNonDigits; +- (NSString*)getNationalSignificantNumber:(NBPhoneNumber*)phoneNumber; + +- (NBEPhoneNumberType)getNumberType:(NBPhoneNumber*)phoneNumber; + +- (NSNumber*)getCountryCodeForRegion:(NSString*)regionCode; + +- (NSString*)getRegionCodeForCountryCode:(NSNumber*)countryCallingCode; +- (NSArray*)getRegionCodesForCountryCode:(NSNumber*)countryCallingCode; +- (NSString*)getRegionCodeForNumber:(NBPhoneNumber*)phoneNumber; + +- (NBPhoneNumber*)getExampleNumber:(NSString*)regionCode error:(NSError**)error; +- (NBPhoneNumber*)getExampleNumberForType:(NSString*)regionCode type:(NBEPhoneNumberType)type error:(NSError**)error; +- (NBPhoneNumber*)getExampleNumberForNonGeoEntity:(NSNumber*)countryCallingCode error:(NSError**)error; + +- (BOOL)canBeInternationallyDialled:(NBPhoneNumber*)number error:(NSError**)error; + +- (BOOL)truncateTooLongNumber:(NBPhoneNumber*)number; + +- (BOOL)isValidNumber:(NBPhoneNumber*)number; +- (BOOL)isViablePhoneNumber:(NSString*)phoneNumber; +- (BOOL)isAlphaNumber:(NSString*)number; +- (BOOL)isValidNumberForRegion:(NBPhoneNumber*)number regionCode:(NSString*)regionCode; +- (BOOL)isNANPACountry:(NSString*)regionCode; +- (BOOL)isLeadingZeroPossible:(NSNumber*)countryCallingCode; + +- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber*)number error:(NSError**)error; + +- (BOOL)isPossibleNumber:(NBPhoneNumber*)number error:(NSError**)error; +- (BOOL)isPossibleNumberString:(NSString*)number regionDialingFrom:(NSString*)regionDialingFrom error:(NSError**)error; + +- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn error:(NSError**)error; + +- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber*)phoneNumber error:(NSError**)error; +- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber*)phoneNumber error:(NSError**)error; + +- (BOOL)maybeStripNationalPrefixAndCarrierCode:(NSString**)numberStr metadata:(NBPhoneMetaData*)metadata carrierCode:(NSString**)carrierCode; +- (NBECountryCodeSource)maybeStripInternationalPrefixAndNormalize:(NSString**)numberStr possibleIddPrefix:(NSString*)possibleIddPrefix; + +- (NSNumber*)maybeExtractCountryCode:(NSString*)number metadata:(NBPhoneMetaData*)defaultRegionMetadata + nationalNumber:(NSString**)nationalNumber keepRawInput:(BOOL)keepRawInput + phoneNumber:(NBPhoneNumber**)phoneNumber error:(NSError**)error; + +- (NBPhoneNumber*)parse:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error; +- (NBPhoneNumber*)parseAndKeepRawInput:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error; +- (NBPhoneNumber*)parseWithPhoneCarrierRegion:(NSString*)numberToParse error:(NSError**)error; + +- (NSString*)format:(NBPhoneNumber*)phoneNumber numberFormat:(NBEPhoneNumberFormat)numberFormat error:(NSError**)error; +- (NSString*)formatByPattern:(NBPhoneNumber*)number numberFormat:(NBEPhoneNumberFormat)numberFormat userDefinedFormats:(NSArray*)userDefinedFormats error:(NSError**)error; +- (NSString*)formatNumberForMobileDialing:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom withFormatting:(BOOL)withFormatting error:(NSError**)error; +- (NSString*)formatOutOfCountryCallingNumber:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error; +- (NSString*)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error; +- (NSString*)formatNationalNumberWithCarrierCode:(NBPhoneNumber*)number carrierCode:(NSString*)carrierCode error:(NSError**)error; +- (NSString*)formatInOriginalFormat:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error; +- (NSString*)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber*)number fallbackCarrierCode:(NSString*)fallbackCarrierCode error:(NSError**)error; + +- (BOOL)formattingRuleHasFirstGroupOnly:(NSString*)nationalPrefixFormattingRule; + +@property (nonatomic, strong, readonly) NSDictionary *DIGIT_MAPPINGS; +@property (nonatomic, strong, readonly) NSBundle *libPhoneBundle; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m new file mode 100755 index 0000000..5586916 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m @@ -0,0 +1,3829 @@ +// +// NBPhoneNumberUtil.m +// libPhoneNumber +// +// Created by tabby on 2015. 2. 8.. +// Copyright (c) 2015년 ohtalk.me. All rights reserved. +// + +#import "NBPhoneNumberUtil.h" +#import "NBPhoneNumber.h" +#import "NBNumberFormat.h" +#import "NBPhoneNumberDesc.h" +#import "NBPhoneMetaData.h" +#import "NBMetadataHelper.h" +#import + +#if TARGET_OS_IPHONE + #import + #import +#endif + + +#pragma mark - NBPhoneNumberUtil interface - + +@interface NBPhoneNumberUtil () +{ + NSMutableDictionary *entireStringRegexCache; + NSLock *entireStringCacheLock; + NSMutableDictionary *regexPatternCache; + NSLock *lockPatternCache; +} + +@property (nonatomic, strong, readwrite) NSMutableDictionary *i18nNumberFormat; +@property (nonatomic, strong, readwrite) NSMutableDictionary *i18nPhoneNumberDesc; +@property (nonatomic, strong, readwrite) NSMutableDictionary *i18nPhoneMetadata; + +#if TARGET_OS_IPHONE +@property (nonatomic, strong) CTTelephonyNetworkInfo *telephonyNetworkInfo; +#endif + +@end + + +@implementation NBPhoneNumberUtil + +#pragma mark - Static Int variables - +const static NSUInteger NANPA_COUNTRY_CODE_ = 1; +const static int MIN_LENGTH_FOR_NSN_ = 2; +const static int MAX_LENGTH_FOR_NSN_ = 16; +const static int MAX_LENGTH_COUNTRY_CODE_ = 3; +const static int MAX_INPUT_STRING_LENGTH_ = 250; + +#pragma mark - Static String variables - +static NSString *VALID_PUNCTUATION = @"-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~"; + +static NSString *INVALID_COUNTRY_CODE_STR = @"Invalid country calling code"; +static NSString *NOT_A_NUMBER_STR = @"The string supplied did not seem to be a phone number"; +static NSString *TOO_SHORT_AFTER_IDD_STR = @"Phone number too short after IDD"; +static NSString *TOO_SHORT_NSN_STR = @"The string supplied is too short to be a phone number"; +static NSString *TOO_LONG_STR = @"The string supplied is too long to be a phone number"; + +static NSString *UNKNOWN_REGION_ = @"ZZ"; +static NSString *COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX = @"3"; +static NSString *PLUS_SIGN = @"+"; +static NSString *STAR_SIGN = @"*"; +static NSString *RFC3966_EXTN_PREFIX = @";ext="; +static NSString *RFC3966_PREFIX = @"tel:"; +static NSString *RFC3966_PHONE_CONTEXT = @";phone-context="; +static NSString *RFC3966_ISDN_SUBADDRESS = @";isub="; +static NSString *DEFAULT_EXTN_PREFIX = @" ext. "; +static NSString *VALID_ALPHA = @"A-Za-z"; + +#pragma mark - Static regular expression strings - +static NSString *NON_DIGITS_PATTERN = @"\\D+"; +static NSString *CC_PATTERN = @"\\$CC"; +static NSString *FIRST_GROUP_PATTERN = @"(\\$\\d)"; +static NSString *FIRST_GROUP_ONLY_PREFIX_PATTERN = @"^\\(?\\$1\\)?"; +static NSString *NP_PATTERN = @"\\$NP"; +static NSString *FG_PATTERN = @"\\$FG"; +static NSString *VALID_ALPHA_PHONE_PATTERN_STRING = @"(?:.*?[A-Za-z]){3}.*"; + +static NSString *UNIQUE_INTERNATIONAL_PREFIX = @"[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?"; + +static NSString *LEADING_PLUS_CHARS_PATTERN; +static NSString *EXTN_PATTERN; +static NSString *SEPARATOR_PATTERN; +static NSString *VALID_PHONE_NUMBER_PATTERN; +static NSString *VALID_START_CHAR_PATTERN; +static NSString *UNWANTED_END_CHAR_PATTERN; +static NSString *SECOND_NUMBER_START_PATTERN; + +static NSDictionary *ALPHA_MAPPINGS; +static NSDictionary *ALL_NORMALIZATION_MAPPINGS; +static NSDictionary *DIALLABLE_CHAR_MAPPINGS; +static NSDictionary *ALL_PLUS_NUMBER_GROUPING_SYMBOLS; + +static NSRegularExpression *PLUS_CHARS_PATTERN; +static NSRegularExpression *CAPTURING_DIGIT_PATTERN; +static NSRegularExpression *VALID_ALPHA_PHONE_PATTERN; + +static NSDictionary *DIGIT_MAPPINGS; + + +#pragma mark - NSError + +- (NSError*)errorWithObject:(id)obj withDomain:(NSString *)domain +{ + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:obj forKey:NSLocalizedDescriptionKey]; + NSError *error = [NSError errorWithDomain:domain code:0 userInfo:userInfo]; + return error; +} + + +- (NSRegularExpression *)entireRegularExpressionWithPattern:(NSString *)regexPattern + options:(NSRegularExpressionOptions)options + error:(NSError **)error +{ + [entireStringCacheLock lock]; + + @try { + if (! entireStringRegexCache) { + entireStringRegexCache = [[NSMutableDictionary alloc] init]; + } + + NSRegularExpression *regex = [entireStringRegexCache objectForKey:regexPattern]; + if (! regex) + { + NSString *finalRegexString = regexPattern; + if ([regexPattern rangeOfString:@"^"].location == NSNotFound) { + finalRegexString = [NSString stringWithFormat:@"^(?:%@)$", regexPattern]; + } + + regex = [self regularExpressionWithPattern:finalRegexString options:0 error:error]; + [entireStringRegexCache setObject:regex forKey:regexPattern]; + } + + return regex; + } + @finally { + [entireStringCacheLock unlock]; + } +} + + +- (NSRegularExpression *)regularExpressionWithPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options error:(NSError **)error +{ + [lockPatternCache lock]; + + @try { + if (!regexPatternCache) { + regexPatternCache = [[NSMutableDictionary alloc] init]; + } + + NSRegularExpression *regex = [regexPatternCache objectForKey:pattern]; + if (!regex) { + regex = [NSRegularExpression regularExpressionWithPattern:pattern options:options error:error]; + [regexPatternCache setObject:regex forKey:pattern]; + } + return regex; + } + @finally { + [lockPatternCache unlock]; + } +} + + +- (NSMutableArray*)componentsSeparatedByRegex:(NSString*)sourceString regex:(NSString*)pattern +{ + NSString *replacedString = [self replaceStringByRegex:sourceString regex:pattern withTemplate:@""]; + NSMutableArray *resArray = [[replacedString componentsSeparatedByString:@""] mutableCopy]; + [resArray removeObject:@""]; + return resArray; +} + + +- (int)stringPositionByRegex:(NSString*)sourceString regex:(NSString*)pattern +{ + if (sourceString == nil || sourceString.length <= 0 || pattern == nil || pattern.length <= 0) { + return -1; + } + + NSError *error = nil; + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; + NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + + int foundPosition = -1; + + if (matches.count > 0) { + NSTextCheckingResult *match = [matches objectAtIndex:0]; + return (int)match.range.location; + } + + return foundPosition; +} + + +- (int)indexOfStringByString:(NSString*)sourceString target:(NSString*)targetString +{ + NSRange finded = [sourceString rangeOfString:targetString]; + if (finded.location != NSNotFound) { + return (int)finded.location; + } + + return -1; +} + + +- (NSString*)replaceFirstStringByRegex:(NSString*)sourceString regex:(NSString*)pattern withTemplate:(NSString*)templateString +{ + NSString *replacementResult = [sourceString copy]; + NSError *error = nil; + + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; + NSRange replaceRange = [currentPattern rangeOfFirstMatchInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + + if (replaceRange.location != NSNotFound) { + replacementResult = [currentPattern stringByReplacingMatchesInString:[sourceString mutableCopy] options:0 + range:replaceRange + withTemplate:templateString]; + } + + return replacementResult; +} + + +- (NSString*)replaceStringByRegex:(NSString*)sourceString regex:(NSString*)pattern withTemplate:(NSString*)templateString +{ + NSString *replacementResult = [sourceString copy]; + NSError *error = nil; + + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; + NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + + if ([matches count] == 1) { + NSRange replaceRange = [currentPattern rangeOfFirstMatchInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + + if (replaceRange.location != NSNotFound) { + replacementResult = [currentPattern stringByReplacingMatchesInString:[sourceString mutableCopy] options:0 + range:replaceRange + withTemplate:templateString]; + } + return replacementResult; + } + + if ([matches count] > 1) { + replacementResult = [currentPattern stringByReplacingMatchesInString:[replacementResult mutableCopy] options:0 + range:NSMakeRange(0, sourceString.length) withTemplate:templateString]; + return replacementResult; + } + + return replacementResult; +} + + +- (NSTextCheckingResult*)matcheFirstByRegex:(NSString*)sourceString regex:(NSString*)pattern +{ + NSError *error = nil; + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; + NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + if ([matches count] > 0) + return [matches objectAtIndex:0]; + return nil; +} + + +- (NSArray*)matchesByRegex:(NSString*)sourceString regex:(NSString*)pattern +{ + NSError *error = nil; + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; + NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + return matches; +} + + +- (NSArray*)matchedStringByRegex:(NSString*)sourceString regex:(NSString*)pattern +{ + NSArray *matches = [self matchesByRegex:sourceString regex:pattern]; + NSMutableArray *matchString = [[NSMutableArray alloc] init]; + + for (NSTextCheckingResult *match in matches) { + NSString *curString = [sourceString substringWithRange:match.range]; + [matchString addObject:curString]; + } + + return matchString; +} + + +- (BOOL)isStartingStringByRegex:(NSString*)sourceString regex:(NSString*)pattern +{ + NSError *error = nil; + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; + NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; + + for (NSTextCheckingResult *match in matches) { + if (match.range.location == 0) { + return YES; + } + } + + return NO; +} + + +- (NSString*)stringByReplacingOccurrencesString:(NSString *)sourceString withMap:(NSDictionary *)dicMap removeNonMatches:(BOOL)bRemove +{ + NSMutableString *targetString = [[NSMutableString alloc] initWithString:@""]; + + for(unsigned int i=0; i= 0) + { + possibleNumber = [number substringFromIndex:start]; + // Remove trailing non-alpha non-numerical characters. + possibleNumber = [self replaceStringByRegex:possibleNumber regex:UNWANTED_END_CHAR_PATTERN withTemplate:@""]; + + // Check for extra numbers at the end. + int secondNumberStart = [self stringPositionByRegex:number regex:SECOND_NUMBER_START_PATTERN]; + if (secondNumberStart > 0) + { + possibleNumber = [possibleNumber substringWithRange:NSMakeRange(0, secondNumberStart - 1)]; + } + } + else + { + possibleNumber = @""; + } + + return possibleNumber; +} + + +/** + * Checks to see if the string of characters could possibly be a phone number at + * all. At the moment, checks to see that the string begins with at least 2 + * digits, ignoring any punctuation commonly found in phone numbers. This method + * does not require the number to be normalized in advance - but does assume + * that leading non-number symbols have been removed, such as by the method + * extractPossibleNumber. + * + * @param {string} number string to be checked for viability as a phone number. + * @return {boolean} NO if the number could be a phone number of some sort, + * otherwise NO. + */ +- (BOOL)isViablePhoneNumber:(NSString*)phoneNumber +{ + phoneNumber = [NBMetadataHelper normalizeNonBreakingSpace:phoneNumber]; + + if (phoneNumber.length < MIN_LENGTH_FOR_NSN_) + { + return NO; + } + + return [self matchesEntirely:VALID_PHONE_NUMBER_PATTERN string:phoneNumber]; +} + + +/** + * Normalizes a string of characters representing a phone number. This performs + * the following conversions: + * Punctuation is stripped. + * For ALPHA/VANITY numbers: + * Letters are converted to their numeric representation on a telephone + * keypad. The keypad used here is the one defined in ITU Recommendation + * E.161. This is only done if there are 3 or more letters in the number, + * to lessen the risk that such letters are typos. + * For other numbers: + * Wide-ascii digits are converted to normal ASCII (European) digits. + * Arabic-Indic numerals are converted to European numerals. + * Spurious alpha characters are stripped. + * + * @param {string} number a string of characters representing a phone number. + * @return {string} the normalized string version of the phone number. + */ +- (NSString*)normalizePhoneNumber:(NSString*)number +{ + number = [NBMetadataHelper normalizeNonBreakingSpace:number]; + + if ([self matchesEntirely:VALID_ALPHA_PHONE_PATTERN_STRING string:number]) + { + return [self normalizeHelper:number normalizationReplacements:ALL_NORMALIZATION_MAPPINGS removeNonMatches:true]; + } + else + { + return [self normalizeDigitsOnly:number]; + } + + return nil; +} + + +/** + * Normalizes a string of characters representing a phone number. This is a + * wrapper for normalize(String number) but does in-place normalization of the + * StringBuffer provided. + * + * @param {!goog.string.StringBuffer} number a StringBuffer of characters + * representing a phone number that will be normalized in place. + * @private + */ + +- (void)normalizeSB:(NSString**)number +{ + if (number == NULL) + { + return; + } + + (*number) = [self normalizePhoneNumber:(*number)]; +} + + +/** + * Normalizes a string of characters representing a phone number. This converts + * wide-ascii and arabic-indic numerals to European numerals, and strips + * punctuation and alpha characters. + * + * @param {string} number a string of characters representing a phone number. + * @return {string} the normalized string version of the phone number. + */ +- (NSString*)normalizeDigitsOnly:(NSString*)number +{ + number = [NBMetadataHelper normalizeNonBreakingSpace:number]; + + return [self stringByReplacingOccurrencesString:number + withMap:self.DIGIT_MAPPINGS removeNonMatches:YES]; +} + + +/** + * Converts all alpha characters in a number to their respective digits on a + * keypad, but retains existing formatting. Also converts wide-ascii digits to + * normal ascii digits, and converts Arabic-Indic numerals to European numerals. + * + * @param {string} number a string of characters representing a phone number. + * @return {string} the normalized string version of the phone number. + */ +- (NSString*)convertAlphaCharactersInNumber:(NSString*)number +{ + number = [NBMetadataHelper normalizeNonBreakingSpace:number]; + return [self stringByReplacingOccurrencesString:number + withMap:ALL_NORMALIZATION_MAPPINGS removeNonMatches:NO]; +} + + +/** + * Gets the length of the geographical area code from the + * {@code national_number} field of the PhoneNumber object passed in, so that + * clients could use it to split a national significant number into geographical + * area code and subscriber number. It works in such a way that the resultant + * subscriber number should be diallable, at least on some devices. An example + * of how this could be used: + * + *
+ * var phoneUtil = getInstance();
+ * var number = phoneUtil.parse('16502530000', 'US');
+ * var nationalSignificantNumber =
+ *     phoneUtil.getNationalSignificantNumber(number);
+ * var areaCode;
+ * var subscriberNumber;
+ *
+ * var areaCodeLength = phoneUtil.getLengthOfGeographicalAreaCode(number);
+ * if (areaCodeLength > 0) {
+ *   areaCode = nationalSignificantNumber.substring(0, areaCodeLength);
+ *   subscriberNumber = nationalSignificantNumber.substring(areaCodeLength);
+ * } else {
+ *   areaCode = '';
+ *   subscriberNumber = nationalSignificantNumber;
+ * }
+ * 
+ * + * N.B.: area code is a very ambiguous concept, so the I18N team generally + * recommends against using it for most purposes, but recommends using the more + * general {@code national_number} instead. Read the following carefully before + * deciding to use this method: + *
    + *
  • geographical area codes change over time, and this method honors those + * changes; therefore, it doesn't guarantee the stability of the result it + * produces. + *
  • subscriber numbers may not be diallable from all devices (notably + * mobile devices, which typically requires the full national_number to be + * dialled in most regions). + *
  • most non-geographical numbers have no area codes, including numbers + * from non-geographical entities. + *
  • some geographical numbers have no area codes. + *
+ * + * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber object for + * which clients want to know the length of the area code. + * @return {number} the length of area code of the PhoneNumber object passed in. + */ +- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber*)phoneNumber error:(NSError **)error +{ + int res = 0; + @try { + res = [self getLengthOfGeographicalAreaCode:phoneNumber]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) { + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + } + return res; +} + + +- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber*)phoneNumber +{ + NSString *regionCode = [self getRegionCodeForNumber:phoneNumber]; + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; + + if (metadata == nil) { + return 0; + } + // If a country doesn't use a national prefix, and this number doesn't have + // an Italian leading zero, we assume it is a closed dialling plan with no + // area codes. + if (metadata.nationalPrefix == nil && phoneNumber.italianLeadingZero == NO) { + return 0; + } + + if ([self isNumberGeographical:phoneNumber] == NO) { + return 0; + } + + return [self getLengthOfNationalDestinationCode:phoneNumber]; +} + + +/** + * Gets the length of the national destination code (NDC) from the PhoneNumber + * object passed in, so that clients could use it to split a national + * significant number into NDC and subscriber number. The NDC of a phone number + * is normally the first group of digit(s) right after the country calling code + * when the number is formatted in the international format, if there is a + * subscriber number part that follows. An example of how this could be used: + * + *
+ * var phoneUtil = getInstance();
+ * var number = phoneUtil.parse('18002530000', 'US');
+ * var nationalSignificantNumber =
+ *     phoneUtil.getNationalSignificantNumber(number);
+ * var nationalDestinationCode;
+ * var subscriberNumber;
+ *
+ * var nationalDestinationCodeLength =
+ *     phoneUtil.getLengthOfNationalDestinationCode(number);
+ * if (nationalDestinationCodeLength > 0) {
+ *   nationalDestinationCode =
+ *       nationalSignificantNumber.substring(0, nationalDestinationCodeLength);
+ *   subscriberNumber =
+ *       nationalSignificantNumber.substring(nationalDestinationCodeLength);
+ * } else {
+ *   nationalDestinationCode = '';
+ *   subscriberNumber = nationalSignificantNumber;
+ * }
+ * 
+ * + * Refer to the unittests to see the difference between this function and + * {@link #getLengthOfGeographicalAreaCode}. + * + * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber object for + * which clients want to know the length of the NDC. + * @return {number} the length of NDC of the PhoneNumber object passed in. + */ +- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber*)phoneNumber error:(NSError **)error +{ + int res = 0; + + @try { + res = [self getLengthOfNationalDestinationCode:phoneNumber]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) { + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + } + + return res; +} + + +- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber*)phoneNumber +{ + NBPhoneNumber *copiedProto = nil; + if ([NBMetadataHelper hasValue:phoneNumber.extension]) + { + copiedProto = [phoneNumber copy]; + copiedProto.extension = nil; + } else { + copiedProto = phoneNumber; + } + + NSString *nationalSignificantNumber = [self format:copiedProto numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; + NSMutableArray *numberGroups = [[self componentsSeparatedByRegex:nationalSignificantNumber regex:NON_DIGITS_PATTERN] mutableCopy]; + + // The pattern will start with '+COUNTRY_CODE ' so the first group will always + // be the empty string (before the + symbol) and the second group will be the + // country calling code. The third group will be area code if it is not the + // last group. + // NOTE: On IE the first group that is supposed to be the empty string does + // not appear in the array of number groups... so make the result on non-IE + // browsers to be that of IE. + if ([numberGroups count] > 0 && ((NSString*)[numberGroups objectAtIndex:0]).length <= 0) { + [numberGroups removeObjectAtIndex:0]; + } + + if ([numberGroups count] <= 2) { + return 0; + } + + NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:phoneNumber.countryCode]; + BOOL isExists = NO; + + for (NSString *regCode in regionCodes) + { + if ([regCode isEqualToString:@"AR"]) + { + isExists = YES; + break; + } + } + + if (isExists && [self getNumberType:phoneNumber] == NBEPhoneNumberTypeMOBILE) + { + // Argentinian mobile numbers, when formatted in the international format, + // are in the form of +54 9 NDC XXXX.... As a result, we take the length of + // the third group (NDC) and add 1 for the digit 9, which also forms part of + // the national significant number. + // + // TODO: Investigate the possibility of better modeling the metadata to make + // it easier to obtain the NDC. + return (int)((NSString*)[numberGroups objectAtIndex:2]).length + 1; + } + + return (int)((NSString*)[numberGroups objectAtIndex:1]).length; +} + + +/** + * Normalizes a string of characters representing a phone number by replacing + * all characters found in the accompanying map with the values therein, and + * stripping all other characters if removeNonMatches is NO. + * + * @param {string} number a string of characters representing a phone number. + * @param {!Object.} normalizationReplacements a mapping of + * characters to what they should be replaced by in the normalized version + * of the phone number. + * @param {boolean} removeNonMatches indicates whether characters that are not + * able to be replaced should be stripped from the number. If this is NO, + * they will be left unchanged in the number. + * @return {string} the normalized string version of the phone number. + * @private + */ +- (NSString*)normalizeHelper:(NSString*)sourceString normalizationReplacements:(NSDictionary*)normalizationReplacements + removeNonMatches:(BOOL)removeNonMatches +{ + NSMutableString *normalizedNumber = [[NSMutableString alloc] init]; + unichar character = 0; + NSString *newDigit = @""; + unsigned int numberLength = (unsigned int)sourceString.length; + + for (unsigned int i = 0; i= 0) + { + hasFound = YES; + } + + return (([nationalPrefixFormattingRule length] == 0) || hasFound); +} + + +/** + * Tests whether a phone number has a geographical association. It checks if + * the number is associated to a certain region in the country where it belongs + * to. Note that this doesn't verify if the number is actually in use. + * + * @param {i18n.phonenumbers.PhoneNumber} phoneNumber The phone number to test. + * @return {boolean} NO if the phone number has a geographical association. + * @private + */ +- (BOOL)isNumberGeographical:(NBPhoneNumber*)phoneNumber +{ + NBEPhoneNumberType numberType = [self getNumberType:phoneNumber]; + // TODO: Include mobile phone numbers from countries like Indonesia, which + // has some mobile numbers that are geographical. + return numberType == NBEPhoneNumberTypeFIXED_LINE || numberType == NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE; +} + + +/** + * Helper function to check region code is not unknown or nil. + * + * @param {?string} regionCode the ISO 3166-1 two-letter region code. + * @return {boolean} NO if region code is valid. + * @private + */ +- (BOOL)isValidRegionCode:(NSString*)regionCode +{ + // In Java we check whether the regionCode is contained in supportedRegions + // that is built out of all the values of countryCallingCodeToRegionCodeMap + // (countryCodeToRegionCodeMap in JS) minus REGION_CODE_FOR_NON_GEO_ENTITY. + // In JS we check whether the regionCode is contained in the keys of + // countryToMetadata but since for non-geographical country calling codes + // (e.g. +800) we use the country calling codes instead of the region code as + // key in the map we have to make sure regionCode is not a number to prevent + // returning NO for non-geographical country calling codes. + return [NBMetadataHelper hasValue:regionCode] && [self isNaN:regionCode] && [NBMetadataHelper getMetadataForRegion:regionCode.uppercaseString] != nil; +} + + +/** + * Helper function to check the country calling code is valid. + * + * @param {number} countryCallingCode the country calling code. + * @return {boolean} NO if country calling code code is valid. + * @private + */ +- (BOOL)hasValidCountryCallingCode:(NSNumber*)countryCallingCode +{ + id res = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; + if (res != nil) + { + return YES; + } + + return NO; +} + + +/** + * Formats a phone number in the specified format using default rules. Note that + * this does not promise to produce a phone number that the user can dial from + * where they are - although we do format in either 'national' or + * 'international' format depending on what the client asks for, we do not + * currently support a more abbreviated format, such as for users in the same + * 'area' who could potentially dial the number without area code. Note that if + * the phone number has a country calling code of 0 or an otherwise invalid + * country calling code, we cannot work out which formatting rules to apply so + * we return the national significant number with no formatting applied. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be + * formatted. + * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the + * phone number should be formatted into. + * @return {string} the formatted phone number. + */ +- (NSString*)format:(NBPhoneNumber*)phoneNumber numberFormat:(NBEPhoneNumberFormat)numberFormat error:(NSError**)error +{ + NSString *res = nil; + @try { + res = [self format:phoneNumber numberFormat:numberFormat]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + +- (NSString*)format:(NBPhoneNumber*)phoneNumber numberFormat:(NBEPhoneNumberFormat)numberFormat +{ + if ([phoneNumber.nationalNumber isEqualToNumber:@0] && [NBMetadataHelper hasValue:phoneNumber.rawInput]) + { + // Unparseable numbers that kept their raw input just use that. + // This is the only case where a number can be formatted as E164 without a + // leading '+' symbol (but the original number wasn't parseable anyway). + // TODO: Consider removing the 'if' above so that unparseable strings + // without raw input format to the empty string instead of "+00" + /** @type {string} */ + NSString *rawInput = phoneNumber.rawInput; + if ([NBMetadataHelper hasValue:rawInput]) { + return rawInput; + } + } + + NSNumber *countryCallingCode = phoneNumber.countryCode; + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:phoneNumber]; + + if (numberFormat == NBEPhoneNumberFormatE164) + { + // Early exit for E164 case (even if the country calling code is invalid) + // since no formatting of the national number needs to be applied. + // Extensions are not formatted. + return [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:NBEPhoneNumberFormatE164 + formattedNationalNumber:nationalSignificantNumber formattedExtension:@""]; + } + + if ([self hasValidCountryCallingCode:countryCallingCode] == NO) + { + return nationalSignificantNumber; + } + + // Note getRegionCodeForCountryCode() is used because formatting information + // for regions which share a country calling code is contained by only one + // region for performance reasons. For example, for NANPA regions it will be + // contained in the metadata for US. + NSArray *regionCodeArray = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; + NSString *regionCode = [regionCodeArray objectAtIndex:0]; + + // Metadata cannot be nil because the country calling code is valid (which + // means that the region code cannot be ZZ and must be one of our supported + // region codes). + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; + NSString *formattedExtension = [self maybeGetFormattedExtension:phoneNumber metadata:metadata numberFormat:numberFormat]; + NSString *formattedNationalNumber = [self formatNsn:nationalSignificantNumber metadata:metadata phoneNumberFormat:numberFormat carrierCode:nil]; + + return [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:numberFormat + formattedNationalNumber:formattedNationalNumber formattedExtension:formattedExtension]; +} + + +/** + * Formats a phone number in the specified format using client-defined + * formatting rules. Note that if the phone number has a country calling code of + * zero or an otherwise invalid country calling code, we cannot work out things + * like whether there should be a national prefix applied, or how to format + * extensions, so we return the national significant number with no formatting + * applied. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be + * formatted. + * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the + * phone number should be formatted into. + * @param {Array.} userDefinedFormats formatting + * rules specified by clients. + * @return {string} the formatted phone number. + */ +- (NSString*)formatByPattern:(NBPhoneNumber*)number numberFormat:(NBEPhoneNumberFormat)numberFormat userDefinedFormats:(NSArray*)userDefinedFormats error:(NSError**)error +{ + NSString *res = nil; + @try { + res = [self formatByPattern:number numberFormat:numberFormat userDefinedFormats:userDefinedFormats]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + + +- (NSString*)formatByPattern:(NBPhoneNumber*)number numberFormat:(NBEPhoneNumberFormat)numberFormat userDefinedFormats:(NSArray*)userDefinedFormats +{ + NSNumber *countryCallingCode = number.countryCode; + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; + + if ([self hasValidCountryCallingCode:countryCallingCode] == NO) { + return nationalSignificantNumber; + } + + // Note getRegionCodeForCountryCode() is used because formatting information + // for regions which share a country calling code is contained by only one + // region for performance reasons. For example, for NANPA regions it will be + // contained in the metadata for US. + NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; + NSString *regionCode = nil; + if (regionCodes != nil && regionCodes.count > 0) { + regionCode = [regionCodes objectAtIndex:0]; + } + + // Metadata cannot be nil because the country calling code is valid + /** @type {i18n.phonenumbers.PhoneMetadata} */ + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; + + NSString *formattedNumber = @""; + NBNumberFormat *formattingPattern = [self chooseFormattingPatternForNumber:userDefinedFormats nationalNumber:nationalSignificantNumber]; + if (formattingPattern == nil) + { + // If no pattern above is matched, we format the number as a whole. + formattedNumber = nationalSignificantNumber; + } else { + // Before we do a replacement of the national prefix pattern $NP with the + // national prefix, we need to copy the rule so that subsequent replacements + // for different numbers have the appropriate national prefix. + NBNumberFormat *numFormatCopy = [formattingPattern copy]; + NSString *nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule; + + if (nationalPrefixFormattingRule.length > 0) + { + NSString *nationalPrefix = metadata.nationalPrefix; + if (nationalPrefix.length > 0) + { + // Replace $NP with national prefix and $FG with the first group ($1). + nationalPrefixFormattingRule = [self replaceStringByRegex:nationalPrefixFormattingRule regex:NP_PATTERN withTemplate:nationalPrefix]; + nationalPrefixFormattingRule = [self replaceStringByRegex:nationalPrefixFormattingRule regex:FG_PATTERN withTemplate:@"\\$1"]; + numFormatCopy.nationalPrefixFormattingRule = nationalPrefixFormattingRule; + } else { + // We don't want to have a rule for how to format the national prefix if + // there isn't one. + numFormatCopy.nationalPrefixFormattingRule = @""; + } + } + + formattedNumber = [self formatNsnUsingPattern:nationalSignificantNumber + formattingPattern:numFormatCopy numberFormat:numberFormat carrierCode:nil]; + } + + NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadata numberFormat:numberFormat]; + + //NSLog(@"!@# prefixNumberWithCountryCallingCode called [%@]", formattedExtension); + return [self prefixNumberWithCountryCallingCode:countryCallingCode + phoneNumberFormat:numberFormat + formattedNationalNumber:formattedNumber + formattedExtension:formattedExtension]; +} + + +/** + * Formats a phone number in national format for dialing using the carrier as + * specified in the {@code carrierCode}. The {@code carrierCode} will always be + * used regardless of whether the phone number already has a preferred domestic + * carrier code stored. If {@code carrierCode} contains an empty string, returns + * the number in national format without any carrier code. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be + * formatted. + * @param {string} carrierCode the carrier selection code to be used. + * @return {string} the formatted phone number in national format for dialing + * using the carrier as specified in the {@code carrierCode}. + */ +- (NSString*)formatNationalNumberWithCarrierCode:(NBPhoneNumber*)number carrierCode:(NSString*)carrierCode error:(NSError **)error +{ + NSString *res = nil; + @try { + res = [self formatNationalNumberWithCarrierCode:number carrierCode:carrierCode]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + + +- (NSString*)formatNationalNumberWithCarrierCode:(NBPhoneNumber*)number carrierCode:(NSString*)carrierCode +{ + NSNumber *countryCallingCode = number.countryCode; + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; + if ([self hasValidCountryCallingCode:countryCallingCode] == NO) + { + return nationalSignificantNumber; + } + + // Note getRegionCodeForCountryCode() is used because formatting information + // for regions which share a country calling code is contained by only one + // region for performance reasons. For example, for NANPA regions it will be + // contained in the metadata for US. + NSString *regionCode = [self getRegionCodeForCountryCode:countryCallingCode]; + // Metadata cannot be nil because the country calling code is valid. + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; + NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadata numberFormat:NBEPhoneNumberFormatNATIONAL]; + NSString *formattedNationalNumber = [self formatNsn:nationalSignificantNumber metadata:metadata phoneNumberFormat:NBEPhoneNumberFormatNATIONAL carrierCode:carrierCode]; + return [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:NBEPhoneNumberFormatNATIONAL formattedNationalNumber:formattedNationalNumber formattedExtension:formattedExtension]; +} + + +/** + * @param {number} countryCallingCode + * @param {?string} regionCode + * @return {i18n.phonenumbers.PhoneMetadata} + * @private + */ +- (NBPhoneMetaData*)getMetadataForRegionOrCallingCode:(NSNumber*)countryCallingCode regionCode:(NSString*)regionCode +{ + return [NB_REGION_CODE_FOR_NON_GEO_ENTITY isEqualToString:regionCode] ? + [NBMetadataHelper getMetadataForNonGeographicalRegion:countryCallingCode] : [NBMetadataHelper getMetadataForRegion:regionCode]; +} + + +/** + * Formats a phone number in national format for dialing using the carrier as + * specified in the preferred_domestic_carrier_code field of the PhoneNumber + * object passed in. If that is missing, use the {@code fallbackCarrierCode} + * passed in instead. If there is no {@code preferred_domestic_carrier_code}, + * and the {@code fallbackCarrierCode} contains an empty string, return the + * number in national format without any carrier code. + * + *

Use {@link #formatNationalNumberWithCarrierCode} instead if the carrier + * code passed in should take precedence over the number's + * {@code preferred_domestic_carrier_code} when formatting. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be + * formatted. + * @param {string} fallbackCarrierCode the carrier selection code to be used, if + * none is found in the phone number itself. + * @return {string} the formatted phone number in national format for dialing + * using the number's preferred_domestic_carrier_code, or the + * {@code fallbackCarrierCode} passed in if none is found. + */ +- (NSString*)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber*)number + fallbackCarrierCode:(NSString*)fallbackCarrierCode error:(NSError **)error +{ + NSString *res = nil; + @try { + res = [self formatNationalNumberWithCarrierCode:number carrierCode:fallbackCarrierCode]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + + return res; +} + + +- (NSString*)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber*)number fallbackCarrierCode:(NSString*)fallbackCarrierCode +{ + NSString *domesticCarrierCode = number.preferredDomesticCarrierCode != nil ? number.preferredDomesticCarrierCode : fallbackCarrierCode; + return [self formatNationalNumberWithCarrierCode:number carrierCode:domesticCarrierCode]; +} + + +/** + * Returns a number formatted in such a way that it can be dialed from a mobile + * phone in a specific region. If the number cannot be reached from the region + * (e.g. some countries block toll-free numbers from being called outside of the + * country), the method returns an empty string. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be + * formatted. + * @param {string} regionCallingFrom the region where the call is being placed. + * @param {boolean} withFormatting whether the number should be returned with + * formatting symbols, such as spaces and dashes. + * @return {string} the formatted phone number. + */ +- (NSString*)formatNumberForMobileDialing:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom withFormatting:(BOOL)withFormatting + error:(NSError**)error +{ + NSString *res = nil; + @try { + res = [self formatNumberForMobileDialing:number regionCallingFrom:regionCallingFrom withFormatting:withFormatting]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + + +- (NSString*)formatNumberForMobileDialing:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom withFormatting:(BOOL)withFormatting +{ + NSNumber *countryCallingCode = number.countryCode; + if ([self hasValidCountryCallingCode:countryCallingCode] == NO) + { + return [NBMetadataHelper hasValue:number.rawInput] ? number.rawInput : @""; + } + + NSString *formattedNumber = @""; + // Clear the extension, as that part cannot normally be dialed together with + // the main number. + NBPhoneNumber *numberNoExt = [number copy]; + numberNoExt.extension = @""; + + NSString *regionCode = [self getRegionCodeForCountryCode:countryCallingCode]; + if ([regionCallingFrom isEqualToString:regionCode]) + { + NBEPhoneNumberType numberType = [self getNumberType:numberNoExt]; + BOOL isFixedLineOrMobile = (numberType == NBEPhoneNumberTypeFIXED_LINE) || (numberType == NBEPhoneNumberTypeMOBILE) || (numberType == NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE); + // Carrier codes may be needed in some countries. We handle this here. + if ([regionCode isEqualToString:@"CO"] && numberType == NBEPhoneNumberTypeFIXED_LINE) + { + formattedNumber = [self formatNationalNumberWithCarrierCode:numberNoExt + carrierCode:COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX]; + } + else if ([regionCode isEqualToString:@"BR"] && isFixedLineOrMobile) + { + formattedNumber = [NBMetadataHelper hasValue:numberNoExt.preferredDomesticCarrierCode] ? + [self formatNationalNumberWithPreferredCarrierCode:numberNoExt fallbackCarrierCode:@""] : @""; + // Brazilian fixed line and mobile numbers need to be dialed with a + // carrier code when called within Brazil. Without that, most of the + // carriers won't connect the call. Because of that, we return an + // empty string here. + } + else + { + // For NANPA countries, non-geographical countries, and Mexican fixed + // line and mobile numbers, we output international format for numbersi + // that can be dialed internationally as that always works. + if ((countryCallingCode.unsignedIntegerValue == NANPA_COUNTRY_CODE_ || + [regionCode isEqualToString:NB_REGION_CODE_FOR_NON_GEO_ENTITY] || + // MX fixed line and mobile numbers should always be formatted in + // international format, even when dialed within MX. For national + // format to work, a carrier code needs to be used, and the correct + // carrier code depends on if the caller and callee are from the + // same local area. It is trickier to get that to work correctly than + // using international format, which is tested to work fine on all + // carriers. + ([regionCode isEqualToString:@"MX"] && isFixedLineOrMobile)) && [self canBeInternationallyDialled:numberNoExt]) + { + formattedNumber = [self format:numberNoExt numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; + } + else + { + formattedNumber = [self format:numberNoExt numberFormat:NBEPhoneNumberFormatNATIONAL]; + } + } + } + else if ([self canBeInternationallyDialled:numberNoExt]) + { + return withFormatting ? [self format:numberNoExt numberFormat:NBEPhoneNumberFormatINTERNATIONAL] : + [self format:numberNoExt numberFormat:NBEPhoneNumberFormatE164]; + } + + return withFormatting ? + formattedNumber : [self normalizeHelper:formattedNumber normalizationReplacements:DIALLABLE_CHAR_MAPPINGS removeNonMatches:YES]; +} + + +/** + * Formats a phone number for out-of-country dialing purposes. If no + * regionCallingFrom is supplied, we format the number in its INTERNATIONAL + * format. If the country calling code is the same as that of the region where + * the number is from, then NATIONAL formatting will be applied. + * + *

If the number itself has a country calling code of zero or an otherwise + * invalid country calling code, then we return the number with no formatting + * applied. + * + *

Note this function takes care of the case for calling inside of NANPA and + * between Russia and Kazakhstan (who share the same country calling code). In + * those cases, no international prefix is used. For regions which have multiple + * international prefixes, the number in its INTERNATIONAL format will be + * returned instead. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be + * formatted. + * @param {string} regionCallingFrom the region where the call is being placed. + * @return {string} the formatted phone number. + */ +- (NSString*)formatOutOfCountryCallingNumber:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error +{ + NSString *res = nil; + @try { + res = [self formatOutOfCountryCallingNumber:number regionCallingFrom:regionCallingFrom]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + + return res; +} + +- (NSString*)formatOutOfCountryCallingNumber:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom +{ + if ([self isValidRegionCode:regionCallingFrom] == NO) + { + return [self format:number numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; + } + + NSNumber *countryCallingCode = [number.countryCode copy]; + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; + if ([self hasValidCountryCallingCode:countryCallingCode] == NO) + { + return nationalSignificantNumber; + } + + if (countryCallingCode.unsignedIntegerValue == NANPA_COUNTRY_CODE_) + { + if ([self isNANPACountry:regionCallingFrom]) + { + // For NANPA regions, return the national format for these regions but + // prefix it with the country calling code. + return [NSString stringWithFormat:@"%@ %@", countryCallingCode, [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]]; + } + } + else if ([countryCallingCode isEqualToNumber:[self getCountryCodeForValidRegion:regionCallingFrom error:nil]]) + { + // If regions share a country calling code, the country calling code need + // not be dialled. This also applies when dialling within a region, so this + // if clause covers both these cases. Technically this is the case for + // dialling from La Reunion to other overseas departments of France (French + // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover + // this edge case for now and for those cases return the version including + // country calling code. Details here: + // http://www.petitfute.com/voyage/225-info-pratiques-reunion + return [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]; + } + // Metadata cannot be nil because we checked 'isValidRegionCode()' above. + NBPhoneMetaData *metadataForRegionCallingFrom = [NBMetadataHelper getMetadataForRegion:regionCallingFrom]; + NSString *internationalPrefix = metadataForRegionCallingFrom.internationalPrefix; + + // For regions that have multiple international prefixes, the international + // format of the number is returned, unless there is a preferred international + // prefix. + NSString *internationalPrefixForFormatting = @""; + + if ([self matchesEntirely:UNIQUE_INTERNATIONAL_PREFIX string:internationalPrefix]) { + internationalPrefixForFormatting = internationalPrefix; + } else if ([NBMetadataHelper hasValue:metadataForRegionCallingFrom.preferredInternationalPrefix]) { + internationalPrefixForFormatting = metadataForRegionCallingFrom.preferredInternationalPrefix; + } + + NSString *regionCode = [self getRegionCodeForCountryCode:countryCallingCode]; + // Metadata cannot be nil because the country calling code is valid. + NBPhoneMetaData *metadataForRegion = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; + NSString *formattedNationalNumber = [self formatNsn:nationalSignificantNumber metadata:metadataForRegion + phoneNumberFormat:NBEPhoneNumberFormatINTERNATIONAL carrierCode:nil]; + NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadataForRegion numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; + + NSString *hasLenth = [NSString stringWithFormat:@"%@ %@ %@%@", internationalPrefixForFormatting, countryCallingCode, formattedNationalNumber, formattedExtension]; + NSString *hasNotLength = [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:NBEPhoneNumberFormatINTERNATIONAL + formattedNationalNumber:formattedNationalNumber formattedExtension:formattedExtension]; + + return internationalPrefixForFormatting.length > 0 ? hasLenth:hasNotLength; +} + + +/** + * A helper function that is used by format and formatByPattern. + * + * @param {number} countryCallingCode the country calling code. + * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the + * phone number should be formatted into. + * @param {string} formattedNationalNumber + * @param {string} formattedExtension + * @return {string} the formatted phone number. + * @private + */ +- (NSString*)prefixNumberWithCountryCallingCode:(NSNumber*)countryCallingCode phoneNumberFormat:(NBEPhoneNumberFormat)numberFormat + formattedNationalNumber:(NSString*)formattedNationalNumber + formattedExtension:(NSString*)formattedExtension +{ + switch (numberFormat) + { + case NBEPhoneNumberFormatE164: + return [NSString stringWithFormat:@"+%@%@%@", countryCallingCode, formattedNationalNumber, formattedExtension]; + case NBEPhoneNumberFormatINTERNATIONAL: + return [NSString stringWithFormat:@"+%@ %@%@", countryCallingCode, formattedNationalNumber, formattedExtension]; + case NBEPhoneNumberFormatRFC3966: + return [NSString stringWithFormat:@"%@+%@-%@%@", RFC3966_PREFIX, countryCallingCode, formattedNationalNumber, formattedExtension]; + case NBEPhoneNumberFormatNATIONAL: + default: + return [NSString stringWithFormat:@"%@%@", formattedNationalNumber, formattedExtension]; + } +} + + +/** + * Formats a phone number using the original phone number format that the number + * is parsed from. The original format is embedded in the country_code_source + * field of the PhoneNumber object passed in. If such information is missing, + * the number will be formatted into the NATIONAL format by default. When the + * number contains a leading zero and this is unexpected for this country, or we + * don't have a formatting pattern for the number, the method returns the raw + * input when it is available. + * + * Note this method guarantees no digit will be inserted, removed or modified as + * a result of formatting. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number that needs to + * be formatted in its original number format. + * @param {string} regionCallingFrom the region whose IDD needs to be prefixed + * if the original number has one. + * @return {string} the formatted phone number in its original number format. + */ +- (NSString*)formatInOriginalFormat:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError **)error +{ + NSString *res = nil; + @try { + res = [self formatInOriginalFormat:number regionCallingFrom:regionCallingFrom]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + + return res; +} + + +- (NSString*)formatInOriginalFormat:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom +{ + if ([NBMetadataHelper hasValue:number.rawInput] && ([self hasUnexpectedItalianLeadingZero:number] || [self hasFormattingPatternForNumber:number] == NO)) + { + // We check if we have the formatting pattern because without that, we might + // format the number as a group without national prefix. + return number.rawInput; + } + + if (number.countryCodeSource == nil) + { + return [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]; + } + + NSString *formattedNumber = @""; + + switch ([number.countryCodeSource intValue]) + { + case NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN: + formattedNumber = [self format:number numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; + break; + case NBECountryCodeSourceFROM_NUMBER_WITH_IDD: + formattedNumber = [self formatOutOfCountryCallingNumber:number regionCallingFrom:regionCallingFrom]; + break; + case NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN: + formattedNumber = [[self format:number numberFormat:NBEPhoneNumberFormatINTERNATIONAL] substringFromIndex:1]; + break; + case NBECountryCodeSourceFROM_DEFAULT_COUNTRY: + // Fall-through to default case. + default: + { + NSString *regionCode = [self getRegionCodeForCountryCode:number.countryCode]; + // We strip non-digits from the NDD here, and from the raw input later, + // so that we can compare them easily. + NSString *nationalPrefix = [self getNddPrefixForRegion:regionCode stripNonDigits:YES]; + NSString *nationalFormat = [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]; + if (nationalPrefix == nil || nationalPrefix.length == 0) + { + // If the region doesn't have a national prefix at all, we can safely + // return the national format without worrying about a national prefix + // being added. + formattedNumber = nationalFormat; + break; + } + // Otherwise, we check if the original number was entered with a national + // prefix. + if ([self rawInputContainsNationalPrefix:number.rawInput nationalPrefix:nationalPrefix regionCode:regionCode]) + { + // If so, we can safely return the national format. + formattedNumber = nationalFormat; + break; + } + // Metadata cannot be nil here because getNddPrefixForRegion() (above) + // returns nil if there is no metadata for the region. + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; + NSString *nationalNumber = [self getNationalSignificantNumber:number]; + NBNumberFormat *formatRule = [self chooseFormattingPatternForNumber:metadata.numberFormats nationalNumber:nationalNumber]; + // The format rule could still be nil here if the national number was 0 + // and there was no raw input (this should not be possible for numbers + // generated by the phonenumber library as they would also not have a + // country calling code and we would have exited earlier). + if (formatRule == nil) + { + formattedNumber = nationalFormat; + break; + } + // When the format we apply to this number doesn't contain national + // prefix, we can just return the national format. + // TODO: Refactor the code below with the code in + // isNationalPrefixPresentIfRequired. + NSString *candidateNationalPrefixRule = formatRule.nationalPrefixFormattingRule; + // We assume that the first-group symbol will never be _before_ the + // national prefix. + NSRange firstGroupRange = [candidateNationalPrefixRule rangeOfString:@"$1"]; + if (firstGroupRange.location == NSNotFound) + { + formattedNumber = nationalFormat; + break; + } + + if (firstGroupRange.location <= 0) + { + formattedNumber = nationalFormat; + break; + } + candidateNationalPrefixRule = [candidateNationalPrefixRule substringWithRange:NSMakeRange(0, firstGroupRange.location)]; + candidateNationalPrefixRule = [self normalizeDigitsOnly:candidateNationalPrefixRule]; + if (candidateNationalPrefixRule.length == 0) + { + // National prefix not used when formatting this number. + formattedNumber = nationalFormat; + break; + } + // Otherwise, we need to remove the national prefix from our output. + NBNumberFormat *numFormatCopy = [formatRule copy]; + numFormatCopy.nationalPrefixFormattingRule = nil; + formattedNumber = [self formatByPattern:number numberFormat:NBEPhoneNumberFormatNATIONAL userDefinedFormats:@[numFormatCopy]]; + break; + } + } + + NSString *rawInput = number.rawInput; + // If no digit is inserted/removed/modified as a result of our formatting, we + // return the formatted phone number; otherwise we return the raw input the + // user entered. + if (formattedNumber != nil && rawInput.length > 0) + { + NSString *normalizedFormattedNumber = [self normalizeHelper:formattedNumber normalizationReplacements:DIALLABLE_CHAR_MAPPINGS removeNonMatches:YES]; + /** @type {string} */ + NSString *normalizedRawInput = [self normalizeHelper:rawInput normalizationReplacements:DIALLABLE_CHAR_MAPPINGS removeNonMatches:YES]; + + if ([normalizedFormattedNumber isEqualToString:normalizedRawInput] == NO) + { + formattedNumber = rawInput; + } + } + return formattedNumber; +} + + +/** + * Check if rawInput, which is assumed to be in the national format, has a + * national prefix. The national prefix is assumed to be in digits-only form. + * @param {string} rawInput + * @param {string} nationalPrefix + * @param {string} regionCode + * @return {boolean} + * @private + */ +- (BOOL)rawInputContainsNationalPrefix:(NSString*)rawInput nationalPrefix:(NSString*)nationalPrefix regionCode:(NSString*)regionCode +{ + BOOL isValid = NO; + NSString *normalizedNationalNumber = [self normalizeDigitsOnly:rawInput]; + if ([self isStartingStringByRegex:normalizedNationalNumber regex:nationalPrefix]) + { + // Some Japanese numbers (e.g. 00777123) might be mistaken to contain the + // national prefix when written without it (e.g. 0777123) if we just do + // prefix matching. To tackle that, we check the validity of the number if + // the assumed national prefix is removed (777123 won't be valid in + // Japan). + NSString *subString = [normalizedNationalNumber substringFromIndex:nationalPrefix.length]; + NSError *anError = nil; + isValid = [self isValidNumber:[self parse:subString defaultRegion:regionCode error:&anError]]; + + if (anError != nil) + return NO; + } + return isValid; +} + + +/** + * Returns NO if a number is from a region whose national significant number + * couldn't contain a leading zero, but has the italian_leading_zero field set + * to NO. + * @param {i18n.phonenumbers.PhoneNumber} number + * @return {boolean} + * @private + */ +- (BOOL)hasUnexpectedItalianLeadingZero:(NBPhoneNumber*)number +{ + return number.italianLeadingZero && [self isLeadingZeroPossible:number.countryCode] == NO; +} + + +/** + * @param {i18n.phonenumbers.PhoneNumber} number + * @return {boolean} + * @private + */ +- (BOOL)hasFormattingPatternForNumber:(NBPhoneNumber*)number +{ + NSNumber *countryCallingCode = number.countryCode; + NSString *phoneNumberRegion = [self getRegionCodeForCountryCode:countryCallingCode]; + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:phoneNumberRegion]; + + if (metadata == nil) + { + return NO; + } + + NSString *nationalNumber = [self getNationalSignificantNumber:number]; + NBNumberFormat *formatRule = [self chooseFormattingPatternForNumber:metadata.numberFormats nationalNumber:nationalNumber]; + return formatRule != nil; +} + + +/** + * Formats a phone number for out-of-country dialing purposes. + * + * Note that in this version, if the number was entered originally using alpha + * characters and this version of the number is stored in raw_input, this + * representation of the number will be used rather than the digit + * representation. Grouping information, as specified by characters such as '-' + * and ' ', will be retained. + * + *

Caveats:

+ *
    + *
  • This will not produce good results if the country calling code is both + * present in the raw input _and_ is the start of the national number. This is + * not a problem in the regions which typically use alpha numbers. + *
  • This will also not produce good results if the raw input has any grouping + * information within the first three digits of the national number, and if the + * function needs to strip preceding digits/words in the raw input before these + * digits. Normally people group the first three digits together so this is not + * a huge problem - and will be fixed if it proves to be so. + *
+ * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number that needs to + * be formatted. + * @param {string} regionCallingFrom the region where the call is being placed. + * @return {string} the formatted phone number. + */ +- (NSString*)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError **)error +{ + NSString *res = nil; + @try { + res = [self formatOutOfCountryKeepingAlphaChars:number regionCallingFrom:regionCallingFrom]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + + +- (NSString*)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom +{ + NSString *rawInput = number.rawInput; + // If there is no raw input, then we can't keep alpha characters because there + // aren't any. In this case, we return formatOutOfCountryCallingNumber. + if (rawInput == nil || rawInput.length == 0) + { + return [self formatOutOfCountryCallingNumber:number regionCallingFrom:regionCallingFrom]; + } + + NSNumber *countryCode = number.countryCode; + if ([self hasValidCountryCallingCode:countryCode] == NO) + { + return rawInput; + } + // Strip any prefix such as country calling code, IDD, that was present. We do + // this by comparing the number in raw_input with the parsed number. To do + // this, first we normalize punctuation. We retain number grouping symbols + // such as ' ' only. + rawInput = [self normalizeHelper:rawInput normalizationReplacements:ALL_PLUS_NUMBER_GROUPING_SYMBOLS removeNonMatches:NO]; + //NSLog(@"---- formatOutOfCountryKeepingAlphaChars normalizeHelper rawInput [%@]", rawInput); + // Now we trim everything before the first three digits in the parsed number. + // We choose three because all valid alpha numbers have 3 digits at the start + // - if it does not, then we don't trim anything at all. Similarly, if the + // national number was less than three digits, we don't trim anything at all. + NSString *nationalNumber = [self getNationalSignificantNumber:number]; + if (nationalNumber.length > 3) + { + int firstNationalNumberDigit = [self indexOfStringByString:rawInput target:[nationalNumber substringWithRange:NSMakeRange(0, 3)]]; + if (firstNationalNumberDigit != -1) + { + rawInput = [rawInput substringFromIndex:firstNationalNumberDigit]; + } + } + + NBPhoneMetaData *metadataForRegionCallingFrom = [NBMetadataHelper getMetadataForRegion:regionCallingFrom]; + if (countryCode.unsignedIntegerValue == NANPA_COUNTRY_CODE_) + { + if ([self isNANPACountry:regionCallingFrom]) + { + return [NSString stringWithFormat:@"%@ %@", countryCode, rawInput]; + } + } + else if (metadataForRegionCallingFrom != nil && [countryCode isEqualToNumber:[self getCountryCodeForValidRegion:regionCallingFrom error:nil]]) + { + NBNumberFormat *formattingPattern = [self chooseFormattingPatternForNumber:metadataForRegionCallingFrom.numberFormats + nationalNumber:nationalNumber]; + if (formattingPattern == nil) + { + // If no pattern above is matched, we format the original input. + return rawInput; + } + + NBNumberFormat *newFormat = [formattingPattern copy]; + // The first group is the first group of digits that the user wrote + // together. + newFormat.pattern = @"(\\d+)(.*)"; + // Here we just concatenate them back together after the national prefix + // has been fixed. + newFormat.format = @"$1$2"; + // Now we format using this pattern instead of the default pattern, but + // with the national prefix prefixed if necessary. + // This will not work in the cases where the pattern (and not the leading + // digits) decide whether a national prefix needs to be used, since we have + // overridden the pattern to match anything, but that is not the case in the + // metadata to date. + + return [self formatNsnUsingPattern:rawInput formattingPattern:newFormat numberFormat:NBEPhoneNumberFormatNATIONAL carrierCode:nil]; + } + + NSString *internationalPrefixForFormatting = @""; + // If an unsupported region-calling-from is entered, or a country with + // multiple international prefixes, the international format of the number is + // returned, unless there is a preferred international prefix. + if (metadataForRegionCallingFrom != nil) + { + NSString *internationalPrefix = metadataForRegionCallingFrom.internationalPrefix; + internationalPrefixForFormatting = + [self matchesEntirely:UNIQUE_INTERNATIONAL_PREFIX string:internationalPrefix] ? internationalPrefix : metadataForRegionCallingFrom.preferredInternationalPrefix; + } + + NSString *regionCode = [self getRegionCodeForCountryCode:countryCode]; + // Metadata cannot be nil because the country calling code is valid. + NBPhoneMetaData *metadataForRegion = [self getMetadataForRegionOrCallingCode:countryCode regionCode:regionCode]; + NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadataForRegion numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; + if (internationalPrefixForFormatting.length > 0) + { + return [NSString stringWithFormat:@"%@ %@ %@%@", internationalPrefixForFormatting, countryCode, rawInput, formattedExtension]; + } + else + { + // Invalid region entered as country-calling-from (so no metadata was found + // for it) or the region chosen has multiple international dialling + // prefixes. + return [self prefixNumberWithCountryCallingCode:countryCode phoneNumberFormat:NBEPhoneNumberFormatINTERNATIONAL formattedNationalNumber:rawInput formattedExtension:formattedExtension]; + } +} + + +/** + * Note in some regions, the national number can be written in two completely + * different ways depending on whether it forms part of the NATIONAL format or + * INTERNATIONAL format. The numberFormat parameter here is used to specify + * which format to use for those cases. If a carrierCode is specified, this will + * be inserted into the formatted string to replace $CC. + * + * @param {string} number a string of characters representing a phone number. + * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the + * region that we think this number is from. + * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the + * phone number should be formatted into. + * @param {string=} opt_carrierCode + * @return {string} the formatted phone number. + * @private + */ +- (NSString*)formatNsn:(NSString*)phoneNumber metadata:(NBPhoneMetaData*)metadata phoneNumberFormat:(NBEPhoneNumberFormat)numberFormat carrierCode:(NSString*)opt_carrierCode +{ + NSMutableArray *intlNumberFormats = metadata.intlNumberFormats; + // When the intlNumberFormats exists, we use that to format national number + // for the INTERNATIONAL format instead of using the numberDesc.numberFormats. + NSArray *availableFormats = ([intlNumberFormats count] <= 0 || numberFormat == NBEPhoneNumberFormatNATIONAL) ? metadata.numberFormats : intlNumberFormats; + NBNumberFormat *formattingPattern = [self chooseFormattingPatternForNumber:availableFormats nationalNumber:phoneNumber]; + + if (formattingPattern == nil) + { + return phoneNumber; + } + + return [self formatNsnUsingPattern:phoneNumber formattingPattern:formattingPattern numberFormat:numberFormat carrierCode:opt_carrierCode]; +} + + +/** + * @param {Array.} availableFormats the + * available formats the phone number could be formatted into. + * @param {string} nationalNumber a string of characters representing a phone + * number. + * @return {i18n.phonenumbers.NumberFormat} + * @private + */ +- (NBNumberFormat*)chooseFormattingPatternForNumber:(NSArray*)availableFormats nationalNumber:(NSString*)nationalNumber +{ + for (NBNumberFormat *numFormat in availableFormats) + { + unsigned int size = (unsigned int)[numFormat.leadingDigitsPatterns count]; + // We always use the last leading_digits_pattern, as it is the most detailed. + if (size == 0 || [self stringPositionByRegex:nationalNumber regex:[numFormat.leadingDigitsPatterns lastObject]] == 0) + { + if ([self matchesEntirely:numFormat.pattern string:nationalNumber]) + { + return numFormat; + } + } + } + + return nil; +} + + +/** + * Note that carrierCode is optional - if nil or an empty string, no carrier + * code replacement will take place. + * + * @param {string} nationalNumber a string of characters representing a phone + * number. + * @param {i18n.phonenumbers.NumberFormat} formattingPattern the formatting rule + * the phone number should be formatted into. + * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the + * phone number should be formatted into. + * @param {string=} opt_carrierCode + * @return {string} the formatted phone number. + * @private + */ +- (NSString*)formatNsnUsingPattern:(NSString*)nationalNumber formattingPattern:(NBNumberFormat*)formattingPattern numberFormat:(NBEPhoneNumberFormat)numberFormat carrierCode:(NSString*)opt_carrierCode +{ + NSString *numberFormatRule = formattingPattern.format; + NSString *domesticCarrierCodeFormattingRule = formattingPattern.domesticCarrierCodeFormattingRule; + NSString *formattedNationalNumber = @""; + + if (numberFormat == NBEPhoneNumberFormatNATIONAL && [NBMetadataHelper hasValue:opt_carrierCode] && domesticCarrierCodeFormattingRule.length > 0) + { + // Replace the $CC in the formatting rule with the desired carrier code. + NSString *carrierCodeFormattingRule = [self replaceStringByRegex:domesticCarrierCodeFormattingRule regex:CC_PATTERN withTemplate:opt_carrierCode]; + // Now replace the $FG in the formatting rule with the first group and + // the carrier code combined in the appropriate way. + numberFormatRule = [self replaceFirstStringByRegex:numberFormatRule regex:FIRST_GROUP_PATTERN + withTemplate:carrierCodeFormattingRule]; + formattedNationalNumber = [self replaceStringByRegex:nationalNumber regex:formattingPattern.pattern withTemplate:numberFormatRule]; + } + else + { + // Use the national prefix formatting rule instead. + NSString *nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule; + if (numberFormat == NBEPhoneNumberFormatNATIONAL && [NBMetadataHelper hasValue:nationalPrefixFormattingRule]) + { + NSString *replacePattern = [self replaceFirstStringByRegex:numberFormatRule regex:FIRST_GROUP_PATTERN withTemplate:nationalPrefixFormattingRule]; + formattedNationalNumber = [self replaceStringByRegex:nationalNumber regex:formattingPattern.pattern withTemplate:replacePattern]; + } + else + { + formattedNationalNumber = [self replaceStringByRegex:nationalNumber regex:formattingPattern.pattern withTemplate:numberFormatRule]; + } + } + + if (numberFormat == NBEPhoneNumberFormatRFC3966) + { + // Strip any leading punctuation. + formattedNationalNumber = [self replaceStringByRegex:formattedNationalNumber regex:[NSString stringWithFormat:@"^%@", SEPARATOR_PATTERN] withTemplate:@""]; + + // Replace the rest with a dash between each number group. + formattedNationalNumber = [self replaceStringByRegex:formattedNationalNumber regex:SEPARATOR_PATTERN withTemplate:@"-"]; + } + return formattedNationalNumber; +} + + +/** + * Gets a valid number for the specified region. + * + * @param {string} regionCode the region for which an example number is needed. + * @return {i18n.phonenumbers.PhoneNumber} a valid fixed-line number for the + * specified region. Returns nil when the metadata does not contain such + * information, or the region 001 is passed in. For 001 (representing non- + * geographical numbers), call {@link #getExampleNumberForNonGeoEntity} + * instead. + */ +- (NBPhoneNumber*)getExampleNumber:(NSString*)regionCode error:(NSError *__autoreleasing *)error +{ + NBPhoneNumber *res = [self getExampleNumberForType:regionCode type:NBEPhoneNumberTypeFIXED_LINE error:error]; + return res; +} + + +/** + * Gets a valid number for the specified region and number type. + * + * @param {string} regionCode the region for which an example number is needed. + * @param {i18n.phonenumbers.PhoneNumberType} type the type of number that is + * needed. + * @return {i18n.phonenumbers.PhoneNumber} a valid number for the specified + * region and type. Returns nil when the metadata does not contain such + * information or if an invalid region or region 001 was entered. + * For 001 (representing non-geographical numbers), call + * {@link #getExampleNumberForNonGeoEntity} instead. + */ +- (NBPhoneNumber*)getExampleNumberForType:(NSString*)regionCode type:(NBEPhoneNumberType)type error:(NSError *__autoreleasing *)error +{ + NBPhoneNumber *res = nil; + + if ([self isValidRegionCode:regionCode] == NO) + { + return nil; + } + + NBPhoneNumberDesc *desc = [self getNumberDescByType:[NBMetadataHelper getMetadataForRegion:regionCode] type:type]; + if ([NBMetadataHelper hasValue:desc.exampleNumber ]) + { + return [self parse:desc.exampleNumber defaultRegion:regionCode error:error]; + } + + return res; +} + + +/** + * Gets a valid number for the specified country calling code for a + * non-geographical entity. + * + * @param {number} countryCallingCode the country calling code for a + * non-geographical entity. + * @return {i18n.phonenumbers.PhoneNumber} a valid number for the + * non-geographical entity. Returns nil when the metadata does not contain + * such information, or the country calling code passed in does not belong + * to a non-geographical entity. + */ +- (NBPhoneNumber*)getExampleNumberForNonGeoEntity:(NSNumber *)countryCallingCode error:(NSError *__autoreleasing *)error +{ + NBPhoneNumber *res = nil; + + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForNonGeographicalRegion:countryCallingCode]; + + if (metadata != nil) + { + NBPhoneNumberDesc *desc = metadata.generalDesc; + if ([NBMetadataHelper hasValue:desc.exampleNumber]) + { + NSString *callCode = [NSString stringWithFormat:@"+%@%@", countryCallingCode, desc.exampleNumber]; + return [self parse:callCode defaultRegion:UNKNOWN_REGION_ error:error]; + } + } + + return res; +} + + +/** + * Gets the formatted extension of a phone number, if the phone number had an + * extension specified. If not, it returns an empty string. + * + * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber that might have + * an extension. + * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the + * region that we think this number is from. + * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the + * phone number should be formatted into. + * @return {string} the formatted extension if any. + * @private + */ +- (NSString*)maybeGetFormattedExtension:(NBPhoneNumber*)number metadata:(NBPhoneMetaData*)metadata numberFormat:(NBEPhoneNumberFormat)numberFormat +{ + if ([NBMetadataHelper hasValue:number.extension] == NO) { + return @""; + } else { + if (numberFormat == NBEPhoneNumberFormatRFC3966) + { + return [NSString stringWithFormat:@"%@%@", RFC3966_EXTN_PREFIX, number.extension]; + } + else + { + if ([NBMetadataHelper hasValue:metadata.preferredExtnPrefix]) + { + return [NSString stringWithFormat:@"%@%@", metadata.preferredExtnPrefix, number.extension]; + } + else + { + return [NSString stringWithFormat:@"%@%@", DEFAULT_EXTN_PREFIX, number.extension]; + } + } + } +} + + +/** + * @param {i18n.phonenumbers.PhoneMetadata} metadata + * @param {i18n.phonenumbers.PhoneNumberType} type + * @return {i18n.phonenumbers.PhoneNumberDesc} + * @private + */ +- (NBPhoneNumberDesc*)getNumberDescByType:(NBPhoneMetaData*)metadata type:(NBEPhoneNumberType)type +{ + switch (type) + { + case NBEPhoneNumberTypePREMIUM_RATE: + return metadata.premiumRate; + case NBEPhoneNumberTypeTOLL_FREE: + return metadata.tollFree; + case NBEPhoneNumberTypeMOBILE: + if (metadata.mobile == nil) return metadata.generalDesc; + return metadata.mobile; + case NBEPhoneNumberTypeFIXED_LINE: + case NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE: + if (metadata.fixedLine == nil) return metadata.generalDesc; + return metadata.fixedLine; + case NBEPhoneNumberTypeSHARED_COST: + return metadata.sharedCost; + case NBEPhoneNumberTypeVOIP: + return metadata.voip; + case NBEPhoneNumberTypePERSONAL_NUMBER: + return metadata.personalNumber; + case NBEPhoneNumberTypePAGER: + return metadata.pager; + case NBEPhoneNumberTypeUAN: + return metadata.uan; + case NBEPhoneNumberTypeVOICEMAIL: + return metadata.voicemail; + default: + return metadata.generalDesc; + } +} + +/** + * Gets the type of a phone number. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want + * to know the type. + * @return {i18n.phonenumbers.PhoneNumberType} the type of the phone number. + */ +- (NBEPhoneNumberType)getNumberType:(NBPhoneNumber*)phoneNumber +{ + NSString *regionCode = [self getRegionCodeForNumber:phoneNumber]; + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:phoneNumber.countryCode regionCode:regionCode]; + if (metadata == nil) + { + return NBEPhoneNumberTypeUNKNOWN; + } + + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:phoneNumber]; + return [self getNumberTypeHelper:nationalSignificantNumber metadata:metadata]; +} + + +/** + * @param {string} nationalNumber + * @param {i18n.phonenumbers.PhoneMetadata} metadata + * @return {i18n.phonenumbers.PhoneNumberType} + * @private + */ +- (NBEPhoneNumberType)getNumberTypeHelper:(NSString*)nationalNumber metadata:(NBPhoneMetaData*)metadata +{ + NBPhoneNumberDesc *generalNumberDesc = metadata.generalDesc; + + //NSLog(@"getNumberTypeHelper - UNKNOWN 1"); + if ([NBMetadataHelper hasValue:generalNumberDesc.nationalNumberPattern] == NO || + [self isNumberMatchingDesc:nationalNumber numberDesc:generalNumberDesc] == NO) + { + //NSLog(@"getNumberTypeHelper - UNKNOWN 2"); + return NBEPhoneNumberTypeUNKNOWN; + } + + //NSLog(@"getNumberTypeHelper - PREMIUM_RATE 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.premiumRate]) + { + //NSLog(@"getNumberTypeHelper - PREMIUM_RATE 2"); + return NBEPhoneNumberTypePREMIUM_RATE; + } + + //NSLog(@"getNumberTypeHelper - TOLL_FREE 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.tollFree]) + { + //NSLog(@"getNumberTypeHelper - TOLL_FREE 2"); + return NBEPhoneNumberTypeTOLL_FREE; + } + + //NSLog(@"getNumberTypeHelper - SHARED_COST 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.sharedCost]) + { + //NSLog(@"getNumberTypeHelper - SHARED_COST 2"); + return NBEPhoneNumberTypeSHARED_COST; + } + + //NSLog(@"getNumberTypeHelper - VOIP 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.voip]) + { + //NSLog(@"getNumberTypeHelper - VOIP 2"); + return NBEPhoneNumberTypeVOIP; + } + + //NSLog(@"getNumberTypeHelper - PERSONAL_NUMBER 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.personalNumber]) + { + //NSLog(@"getNumberTypeHelper - PERSONAL_NUMBER 2"); + return NBEPhoneNumberTypePERSONAL_NUMBER; + } + + //NSLog(@"getNumberTypeHelper - PAGER 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.pager]) + { + //NSLog(@"getNumberTypeHelper - PAGER 2"); + return NBEPhoneNumberTypePAGER; + } + + //NSLog(@"getNumberTypeHelper - UAN 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.uan]) + { + //NSLog(@"getNumberTypeHelper - UAN 2"); + return NBEPhoneNumberTypeUAN; + } + + //NSLog(@"getNumberTypeHelper - VOICEMAIL 1"); + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.voicemail]) + { + //NSLog(@"getNumberTypeHelper - VOICEMAIL 2"); + return NBEPhoneNumberTypeVOICEMAIL; + } + + if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.fixedLine]) + { + if (metadata.sameMobileAndFixedLinePattern) + { + //NSLog(@"getNumberTypeHelper - FIXED_LINE_OR_MOBILE"); + return NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE; + } + else if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.mobile]) + { + //NSLog(@"getNumberTypeHelper - FIXED_LINE_OR_MOBILE"); + return NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE; + } + //NSLog(@"getNumberTypeHelper - FIXED_LINE"); + return NBEPhoneNumberTypeFIXED_LINE; + } + + // Otherwise, test to see if the number is mobile. Only do this if certain + // that the patterns for mobile and fixed line aren't the same. + if ([metadata sameMobileAndFixedLinePattern] == NO && [self isNumberMatchingDesc:nationalNumber numberDesc:metadata.mobile]) + { + return NBEPhoneNumberTypeMOBILE; + } + + return NBEPhoneNumberTypeUNKNOWN; +} + + +/** + * @param {string} nationalNumber + * @param {i18n.phonenumbers.PhoneNumberDesc} numberDesc + * @return {boolean} + * @private + */ +- (BOOL)isNumberMatchingDesc:(NSString*)nationalNumber numberDesc:(NBPhoneNumberDesc*)numberDesc +{ + if (numberDesc == nil) + return NO; + + if ([NBMetadataHelper hasValue:numberDesc.possibleNumberPattern] == NO || [numberDesc.possibleNumberPattern isEqual:@"NA"]) + return [self matchesEntirely:numberDesc.nationalNumberPattern string:nationalNumber]; + + if ([NBMetadataHelper hasValue:numberDesc.nationalNumberPattern] == NO || [numberDesc.nationalNumberPattern isEqual:@"NA"]) + return [self matchesEntirely:numberDesc.possibleNumberPattern string:nationalNumber]; + + return [self matchesEntirely:numberDesc.possibleNumberPattern string:nationalNumber] && + [self matchesEntirely:numberDesc.nationalNumberPattern string:nationalNumber]; +} + + +/** + * Tests whether a phone number matches a valid pattern. Note this doesn't + * verify the number is actually in use, which is impossible to tell by just + * looking at a number itself. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want + * to validate. + * @return {boolean} a boolean that indicates whether the number is of a valid + * pattern. + */ +- (BOOL)isValidNumber:(NBPhoneNumber*)number +{ + NSString *regionCode = [self getRegionCodeForNumber:number]; + return [self isValidNumberForRegion:number regionCode:regionCode]; +} + + +/** + * Tests whether a phone number is valid for a certain region. Note this doesn't + * verify the number is actually in use, which is impossible to tell by just + * looking at a number itself. If the country calling code is not the same as + * the country calling code for the region, this immediately exits with NO. + * After this, the specific number pattern rules for the region are examined. + * This is useful for determining for example whether a particular number is + * valid for Canada, rather than just a valid NANPA number. + * Warning: In most cases, you want to use {@link #isValidNumber} instead. For + * example, this method will mark numbers from British Crown dependencies such + * as the Isle of Man as invalid for the region "GB" (United Kingdom), since it + * has its own region code, "IM", which may be undesirable. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want + * to validate. + * @param {?string} regionCode the region that we want to validate the phone + * number for. + * @return {boolean} a boolean that indicates whether the number is of a valid + * pattern. + */ +- (BOOL)isValidNumberForRegion:(NBPhoneNumber*)number regionCode:(NSString*)regionCode +{ + NSNumber *countryCode = [number.countryCode copy]; + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCode regionCode:regionCode]; + if (metadata == nil || + ([NB_REGION_CODE_FOR_NON_GEO_ENTITY isEqualToString:regionCode] == NO && + ![countryCode isEqualToNumber:[self getCountryCodeForValidRegion:regionCode error:nil]])) + { + // Either the region code was invalid, or the country calling code for this + // number does not match that of the region code. + return NO; + } + + NBPhoneNumberDesc *generalNumDesc = metadata.generalDesc; + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; + + // For regions where we don't have metadata for PhoneNumberDesc, we treat any + // number passed in as a valid number if its national significant number is + // between the minimum and maximum lengths defined by ITU for a national + // significant number. + if ([NBMetadataHelper hasValue:generalNumDesc.nationalNumberPattern] == NO) + { + unsigned int numberLength = (unsigned int)nationalSignificantNumber.length; + return numberLength > MIN_LENGTH_FOR_NSN_ && numberLength <= MAX_LENGTH_FOR_NSN_; + } + + return [self getNumberTypeHelper:nationalSignificantNumber metadata:metadata] != NBEPhoneNumberTypeUNKNOWN; +} + + +/** + * Returns the region where a phone number is from. This could be used for + * geocoding at the region level. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone number whose origin + * we want to know. + * @return {?string} the region where the phone number is from, or nil + * if no region matches this calling code. + */ +- (NSString*)getRegionCodeForNumber:(NBPhoneNumber*)phoneNumber +{ + if (phoneNumber == nil) + { + return nil; + } + + NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:phoneNumber.countryCode]; + if (regionCodes == nil || [regionCodes count] <= 0) + { + return nil; + } + + if ([regionCodes count] == 1) + { + return [regionCodes objectAtIndex:0]; + } + else + { + return [self getRegionCodeForNumberFromRegionList:phoneNumber regionCodes:regionCodes]; + } +} + + +/** + * @param {i18n.phonenumbers.PhoneNumber} number + * @param {Array.} regionCodes + * @return {?string} + * @private + + */ +- (NSString*)getRegionCodeForNumberFromRegionList:(NBPhoneNumber*)phoneNumber regionCodes:(NSArray*)regionCodes +{ + NSString *nationalNumber = [self getNationalSignificantNumber:phoneNumber]; + unsigned int regionCodesCount = (unsigned int)[regionCodes count]; + + for (unsigned int i = 0; i} + */ +- (NSArray*)getRegionCodesForCountryCode:(NSNumber *)countryCallingCode +{ + NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; + return regionCodes == nil ? nil : regionCodes; +} + + +/** + * Returns the country calling code for a specific region. For example, this + * would be 1 for the United States, and 64 for New Zealand. + * + * @param {?string} regionCode the region that we want to get the country + * calling code for. + * @return {number} the country calling code for the region denoted by + * regionCode. + */ +- (NSNumber*)getCountryCodeForRegion:(NSString*)regionCode +{ + if ([self isValidRegionCode:regionCode] == NO) + { + return @0; + } + + NSError *error = nil; + NSNumber *res = [self getCountryCodeForValidRegion:regionCode error:&error]; + if (error != nil) + return @0; + return res; +} + + +/** + * Returns the country calling code for a specific region. For example, this + * would be 1 for the United States, and 64 for New Zealand. Assumes the region + * is already valid. + * + * @param {?string} regionCode the region that we want to get the country + * calling code for. + * @return {number} the country calling code for the region denoted by + * regionCode. + * @throws {string} if the region is invalid + * @private + */ +- (NSNumber*)getCountryCodeForValidRegion:(NSString*)regionCode error:(NSError**)error +{ + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; + + if (metadata == nil) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Invalid region code:%@", regionCode] + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) { + (*error) = [NSError errorWithDomain:@"INVALID_REGION_CODE" code:0 userInfo:userInfo]; + } + + return @-1; + } + + return metadata.countryCode; +} + + +/** + * Returns the national dialling prefix for a specific region. For example, this + * would be 1 for the United States, and 0 for New Zealand. Set stripNonDigits + * to NO to strip symbols like '~' (which indicates a wait for a dialling + * tone) from the prefix returned. If no national prefix is present, we return + * nil. + * + *

Warning: Do not use this method for do-your-own formatting - for some + * regions, the national dialling prefix is used only for certain types of + * numbers. Use the library's formatting functions to prefix the national prefix + * when required. + * + * @param {?string} regionCode the region that we want to get the dialling + * prefix for. + * @param {boolean} stripNonDigits NO to strip non-digits from the national + * dialling prefix. + * @return {?string} the dialling prefix for the region denoted by + * regionCode. + */ +- (NSString*)getNddPrefixForRegion:(NSString*)regionCode stripNonDigits:(BOOL)stripNonDigits +{ + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; + if (metadata == nil) { + return nil; + } + + NSString *nationalPrefix = metadata.nationalPrefix; + // If no national prefix was found, we return nil. + if (nationalPrefix.length == 0) { + return nil; + } + + if (stripNonDigits) { + // Note: if any other non-numeric symbols are ever used in national + // prefixes, these would have to be removed here as well. + nationalPrefix = [nationalPrefix stringByReplacingOccurrencesOfString:@"~" withString:@""]; + } + return nationalPrefix; +} + + +/** + * Checks if this is a region under the North American Numbering Plan + * Administration (NANPA). + * + * @param {?string} regionCode the ISO 3166-1 two-letter region code. + * @return {boolean} NO if regionCode is one of the regions under NANPA. + */ +- (BOOL)isNANPACountry:(NSString*)regionCode +{ + BOOL isExists = NO; + + NSArray *res = [NBMetadataHelper regionCodeFromCountryCode:[NSNumber numberWithUnsignedInteger:NANPA_COUNTRY_CODE_]]; + for (NSString *inRegionCode in res) + { + if ([inRegionCode isEqualToString:regionCode.uppercaseString]) { + isExists = YES; + } + } + + return regionCode != nil && isExists; +} + + +/** + * Checks whether countryCode represents the country calling code from a region + * whose national significant number could contain a leading zero. An example of + * such a region is Italy. Returns NO if no metadata for the country is + * found. + * + * @param {number} countryCallingCode the country calling code. + * @return {boolean} + */ +- (BOOL)isLeadingZeroPossible:(NSNumber *)countryCallingCode +{ + NBPhoneMetaData *mainMetadataForCallingCode = [self getMetadataForRegionOrCallingCode:countryCallingCode + regionCode:[self getRegionCodeForCountryCode:countryCallingCode]]; + + return mainMetadataForCallingCode != nil && mainMetadataForCallingCode.leadingZeroPossible; +} + + +/** + * Checks if the number is a valid vanity (alpha) number such as 800 MICROSOFT. + * A valid vanity number will start with at least 3 digits and will have three + * or more alpha characters. This does not do region-specific checks - to work + * out if this number is actually valid for a region, it should be parsed and + * methods such as {@link #isPossibleNumberWithReason} and + * {@link #isValidNumber} should be used. + * + * @param {string} number the number that needs to be checked. + * @return {boolean} NO if the number is a valid vanity number. + */ +- (BOOL)isAlphaNumber:(NSString*)number +{ + if ([self isViablePhoneNumber:number] == NO) { + // Number is too short, or doesn't match the basic phone number pattern. + return NO; + } + + number = [NBMetadataHelper normalizeNonBreakingSpace:number]; + + /** @type {!goog.string.StringBuffer} */ + NSString *strippedNumber = [number copy]; + [self maybeStripExtension:&strippedNumber]; + + return [self matchesEntirely:VALID_ALPHA_PHONE_PATTERN_STRING string:strippedNumber]; +} + + +/** + * Convenience wrapper around {@link #isPossibleNumberWithReason}. Instead of + * returning the reason for failure, this method returns a boolean value. + * + * @param {i18n.phonenumbers.PhoneNumber} number the number that needs to be + * checked. + * @return {boolean} NO if the number is possible. + */ +- (BOOL)isPossibleNumber:(NBPhoneNumber*)number error:(NSError**)error +{ + BOOL res = NO; + @try { + res = [self isPossibleNumber:number]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + + +- (BOOL)isPossibleNumber:(NBPhoneNumber*)number +{ + return [self isPossibleNumberWithReason:number] == NBEValidationResultIS_POSSIBLE; +} + + +/** + * Helper method to check a number against a particular pattern and determine + * whether it matches, or is too short or too long. Currently, if a number + * pattern suggests that numbers of length 7 and 10 are possible, and a number + * in between these possible lengths is entered, such as of length 8, this will + * return TOO_LONG. + * + * @param {string} numberPattern + * @param {string} number + * @return {ValidationResult} + * @private + */ +- (NBEValidationResult)testNumberLengthAgainstPattern:(NSString*)numberPattern number:(NSString*)number +{ + if ([self matchesEntirely:numberPattern string:number]) { + return NBEValidationResultIS_POSSIBLE; + } + + if ([self stringPositionByRegex:number regex:numberPattern] == 0) { + return NBEValidationResultTOO_LONG; + } else { + return NBEValidationResultTOO_SHORT; + } +} + + +/** + * Check whether a phone number is a possible number. It provides a more lenient + * check than {@link #isValidNumber} in the following sense: + *

    + *
  1. It only checks the length of phone numbers. In particular, it doesn't + * check starting digits of the number. + *
  2. It doesn't attempt to figure out the type of the number, but uses general + * rules which applies to all types of phone numbers in a region. Therefore, it + * is much faster than isValidNumber. + *
  3. For fixed line numbers, many regions have the concept of area code, which + * together with subscriber number constitute the national significant number. + * It is sometimes okay to dial the subscriber number only when dialing in the + * same area. This function will return NO if the subscriber-number-only + * version is passed in. On the other hand, because isValidNumber validates + * using information on both starting digits (for fixed line numbers, that would + * most likely be area codes) and length (obviously includes the length of area + * codes for fixed line numbers), it will return NO for the + * subscriber-number-only version. + *
+ * + * @param {i18n.phonenumbers.PhoneNumber} number the number that needs to be + * checked. + * @return {ValidationResult} a + * ValidationResult object which indicates whether the number is possible. + */ +- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber*)number error:(NSError *__autoreleasing *)error +{ + NBEValidationResult res = NBEValidationResultUNKNOWN; + @try { + res = [self isPossibleNumberWithReason:number]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + + return res; +} + + +- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber*)number +{ + NSString *nationalNumber = [self getNationalSignificantNumber:number]; + NSNumber *countryCode = number.countryCode; + // Note: For Russian Fed and NANPA numbers, we just use the rules from the + // default region (US or Russia) since the getRegionCodeForNumber will not + // work if the number is possible but not valid. This would need to be + // revisited if the possible number pattern ever differed between various + // regions within those plans. + if ([self hasValidCountryCallingCode:countryCode] == NO) { + return NBEValidationResultINVALID_COUNTRY_CODE; + } + + NSString *regionCode = [self getRegionCodeForCountryCode:countryCode]; + // Metadata cannot be nil because the country calling code is valid. + NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCode regionCode:regionCode]; + NBPhoneNumberDesc *generalNumDesc = metadata.generalDesc; + + // Handling case of numbers with no metadata. + if ([NBMetadataHelper hasValue:generalNumDesc.nationalNumberPattern] == NO) { + unsigned int numberLength = (unsigned int)nationalNumber.length; + + if (numberLength < MIN_LENGTH_FOR_NSN_) { + return NBEValidationResultTOO_SHORT; + } else if (numberLength > MAX_LENGTH_FOR_NSN_) { + return NBEValidationResultTOO_LONG; + } else { + return NBEValidationResultIS_POSSIBLE; + } + } + + NSString *possibleNumberPattern = generalNumDesc.possibleNumberPattern; + return [self testNumberLengthAgainstPattern:possibleNumberPattern number:nationalNumber]; +} + + +/** + * Check whether a phone number is a possible number given a number in the form + * of a string, and the region where the number could be dialed from. It + * provides a more lenient check than {@link #isValidNumber}. See + * {@link #isPossibleNumber} for details. + * + *

This method first parses the number, then invokes + * {@link #isPossibleNumber} with the resultant PhoneNumber object. + * + * @param {string} number the number that needs to be checked, in the form of a + * string. + * @param {string} regionDialingFrom the region that we are expecting the number + * to be dialed from. + * Note this is different from the region where the number belongs. + * For example, the number +1 650 253 0000 is a number that belongs to US. + * When written in this form, it can be dialed from any region. When it is + * written as 00 1 650 253 0000, it can be dialed from any region which uses + * an international dialling prefix of 00. When it is written as + * 650 253 0000, it can only be dialed from within the US, and when written + * as 253 0000, it can only be dialed from within a smaller area in the US + * (Mountain View, CA, to be more specific). + * @return {boolean} NO if the number is possible. + */ +- (BOOL)isPossibleNumberString:(NSString*)number regionDialingFrom:(NSString*)regionDialingFrom error:(NSError**)error +{ + number = [NBMetadataHelper normalizeNonBreakingSpace:number]; + + BOOL res = [self isPossibleNumber:[self parse:number defaultRegion:regionDialingFrom error:error]]; + return res; +} + +/** + * Attempts to extract a valid number from a phone number that is too long to be + * valid, and resets the PhoneNumber object passed in to that valid version. If + * no valid number could be extracted, the PhoneNumber object passed in will not + * be modified. + * @param {i18n.phonenumbers.PhoneNumber} number a PhoneNumber object which + * contains a number that is too long to be valid. + * @return {boolean} NO if a valid phone number can be successfully extracted. + */ + +- (BOOL)truncateTooLongNumber:(NBPhoneNumber*)number +{ + if ([self isValidNumber:number]) { + return YES; + } + + NBPhoneNumber *numberCopy = [number copy]; + NSNumber *nationalNumber = number.nationalNumber; + do { + nationalNumber = [NSNumber numberWithLongLong:(long long)floor(nationalNumber.unsignedLongLongValue / 10)]; + numberCopy.nationalNumber = [nationalNumber copy]; + if ([nationalNumber isEqualToNumber:@0] || [self isPossibleNumberWithReason:numberCopy] == NBEValidationResultTOO_SHORT) { + return NO; + } + } + while ([self isValidNumber:numberCopy] == NO); + + number.nationalNumber = nationalNumber; + return YES; +} + + +/** + * Extracts country calling code from fullNumber, returns it and places the + * remaining number in nationalNumber. It assumes that the leading plus sign or + * IDD has already been removed. Returns 0 if fullNumber doesn't start with a + * valid country calling code, and leaves nationalNumber unmodified. + * + * @param {!goog.string.StringBuffer} fullNumber + * @param {!goog.string.StringBuffer} nationalNumber + * @return {number} + */ +- (NSNumber *)extractCountryCode:(NSString *)fullNumber nationalNumber:(NSString **)nationalNumber +{ + fullNumber = [NBMetadataHelper normalizeNonBreakingSpace:fullNumber]; + + if ((fullNumber.length == 0) || ([[fullNumber substringToIndex:1] isEqualToString:@"0"])) { + // Country codes do not begin with a '0'. + return @0; + } + + unsigned int numberLength = (unsigned int)fullNumber.length; + + for (unsigned int i = 1; i <= MAX_LENGTH_COUNTRY_CODE_ && i <= numberLength; ++i) { + NSString *subNumber = [fullNumber substringWithRange:NSMakeRange(0, i)]; + NSNumber *potentialCountryCode = [NSNumber numberWithInteger:[subNumber integerValue]]; + + NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:potentialCountryCode]; + if (regionCodes != nil && regionCodes.count > 0) { + if (nationalNumber != NULL) { + if ((*nationalNumber) == nil) { + (*nationalNumber) = [NSString stringWithFormat:@"%@", [fullNumber substringFromIndex:i]]; + } else { + (*nationalNumber) = [NSString stringWithFormat:@"%@%@", (*nationalNumber), [fullNumber substringFromIndex:i]]; + } + } + return potentialCountryCode; + } + } + + return @0; +} + + +/** + * Tries to extract a country calling code from a number. This method will + * return zero if no country calling code is considered to be present. Country + * calling codes are extracted in the following ways: + *

    + *
  • by stripping the international dialing prefix of the region the person is + * dialing from, if this is present in the number, and looking at the next + * digits + *
  • by stripping the '+' sign if present and then looking at the next digits + *
  • by comparing the start of the number and the country calling code of the + * default region. If the number is not considered possible for the numbering + * plan of the default region initially, but starts with the country calling + * code of this region, validation will be reattempted after stripping this + * country calling code. If this number is considered a possible number, then + * the first digits will be considered the country calling code and removed as + * such. + *
+ * + * It will throw a i18n.phonenumbers.Error if the number starts with a '+' but + * the country calling code supplied after this does not match that of any known + * region. + * + * @param {string} number non-normalized telephone number that we wish to + * extract a country calling code from - may begin with '+'. + * @param {i18n.phonenumbers.PhoneMetadata} defaultRegionMetadata metadata + * about the region this number may be from. + * @param {!goog.string.StringBuffer} nationalNumber a string buffer to store + * the national significant number in, in the case that a country calling + * code was extracted. The number is appended to any existing contents. If + * no country calling code was extracted, this will be left unchanged. + * @param {boolean} keepRawInput NO if the country_code_source and + * preferred_carrier_code fields of phoneNumber should be populated. + * @param {i18n.phonenumbers.PhoneNumber} phoneNumber the PhoneNumber object + * where the country_code and country_code_source need to be populated. + * Note the country_code is always populated, whereas country_code_source is + * only populated when keepCountryCodeSource is NO. + * @return {number} the country calling code extracted or 0 if none could be + * extracted. + * @throws {i18n.phonenumbers.Error} + */ +- (NSNumber *)maybeExtractCountryCode:(NSString*)number metadata:(NBPhoneMetaData*)defaultRegionMetadata + nationalNumber:(NSString**)nationalNumber keepRawInput:(BOOL)keepRawInput + phoneNumber:(NBPhoneNumber**)phoneNumber error:(NSError**)error +{ + if (nationalNumber == NULL || phoneNumber == NULL || number.length <= 0) { + return @0; + } + + NSString *fullNumber = [number copy]; + // Set the default prefix to be something that will never match. + NSString *possibleCountryIddPrefix = @""; + if (defaultRegionMetadata != nil) { + possibleCountryIddPrefix = defaultRegionMetadata.internationalPrefix; + } + + if (possibleCountryIddPrefix == nil) { + possibleCountryIddPrefix = @"NonMatch"; + } + + /** @type {i18n.phonenumbers.PhoneNumber.CountryCodeSource} */ + NBECountryCodeSource countryCodeSource = [self maybeStripInternationalPrefixAndNormalize:&fullNumber + possibleIddPrefix:possibleCountryIddPrefix]; + if (keepRawInput) { + (*phoneNumber).countryCodeSource = [NSNumber numberWithInt:countryCodeSource]; + } + + if (countryCodeSource != NBECountryCodeSourceFROM_DEFAULT_COUNTRY) { + if (fullNumber.length <= MIN_LENGTH_FOR_NSN_) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"TOO_SHORT_AFTER_IDD:%@", fullNumber] + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) { + (*error) = [NSError errorWithDomain:@"TOO_SHORT_AFTER_IDD" code:0 userInfo:userInfo]; + } + return @0; + } + + NSNumber *potentialCountryCode = [self extractCountryCode:fullNumber nationalNumber:nationalNumber]; + + if (![potentialCountryCode isEqualToNumber:@0]) { + (*phoneNumber).countryCode = potentialCountryCode; + return potentialCountryCode; + } + + // If this fails, they must be using a strange country calling code that we + // don't recognize, or that doesn't exist. + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"INVALID_COUNTRY_CODE:%@", potentialCountryCode] + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) { + (*error) = [NSError errorWithDomain:@"INVALID_COUNTRY_CODE" code:0 userInfo:userInfo]; + } + + return @0; + } else if (defaultRegionMetadata != nil) { + // Check to see if the number starts with the country calling code for the + // default region. If so, we remove the country calling code, and do some + // checks on the validity of the number before and after. + NSNumber *defaultCountryCode = defaultRegionMetadata.countryCode; + NSString *defaultCountryCodeString = [NSString stringWithFormat:@"%@", defaultCountryCode]; + NSString *normalizedNumber = [fullNumber copy]; + + if ([normalizedNumber hasPrefix:defaultCountryCodeString]) { + NSString *potentialNationalNumber = [normalizedNumber substringFromIndex:defaultCountryCodeString.length]; + NBPhoneNumberDesc *generalDesc = defaultRegionMetadata.generalDesc; + + NSString *validNumberPattern = generalDesc.nationalNumberPattern; + // Passing null since we don't need the carrier code. + [self maybeStripNationalPrefixAndCarrierCode:&potentialNationalNumber metadata:defaultRegionMetadata carrierCode:nil]; + + NSString *potentialNationalNumberStr = [potentialNationalNumber copy]; + NSString *possibleNumberPattern = generalDesc.possibleNumberPattern; + // If the number was not valid before but is valid now, or if it was too + // long before, we consider the number with the country calling code + // stripped to be a better result and keep that instead. + if ((![self matchesEntirely:validNumberPattern string:fullNumber] && + [self matchesEntirely:validNumberPattern string:potentialNationalNumberStr]) || + [self testNumberLengthAgainstPattern:possibleNumberPattern number:fullNumber] == NBEValidationResultTOO_LONG) { + (*nationalNumber) = [(*nationalNumber) stringByAppendingString:potentialNationalNumberStr]; + if (keepRawInput) { + (*phoneNumber).countryCodeSource = [NSNumber numberWithInt:NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN]; + } + (*phoneNumber).countryCode = defaultCountryCode; + return defaultCountryCode; + } + } + } + // No country calling code present. + (*phoneNumber).countryCode = @0; + return @0; +} + + +/** + * Strips the IDD from the start of the number if present. Helper function used + * by maybeStripInternationalPrefixAndNormalize. + * + * @param {!RegExp} iddPattern the regular expression for the international + * prefix. + * @param {!goog.string.StringBuffer} number the phone number that we wish to + * strip any international dialing prefix from. + * @return {boolean} NO if an international prefix was present. + * @private + */ +- (BOOL)parsePrefixAsIdd:(NSString*)iddPattern sourceString:(NSString**)number +{ + if (number == NULL) { + return NO; + } + + NSString *numberStr = [(*number) copy]; + + if ([self stringPositionByRegex:numberStr regex:iddPattern] == 0) { + NSTextCheckingResult *matched = [[self matchesByRegex:numberStr regex:iddPattern] objectAtIndex:0]; + NSString *matchedString = [numberStr substringWithRange:matched.range]; + unsigned int matchEnd = (unsigned int)matchedString.length; + NSString *remainString = [numberStr substringFromIndex:matchEnd]; + + NSRegularExpression *currentPattern = CAPTURING_DIGIT_PATTERN; + NSArray *matchedGroups = [currentPattern matchesInString:remainString options:0 range:NSMakeRange(0, remainString.length)]; + + if (matchedGroups && [matchedGroups count] > 0 && [matchedGroups objectAtIndex:0] != nil) { + NSString *digitMatched = [remainString substringWithRange:((NSTextCheckingResult*)[matchedGroups objectAtIndex:0]).range]; + if (digitMatched.length > 0) { + NSString *normalizedGroup = [self normalizeDigitsOnly:digitMatched]; + if ([normalizedGroup isEqualToString:@"0"]) { + return NO; + } + } + } + + (*number) = [remainString copy]; + return YES; + } + + return NO; +} + + +/** + * Strips any international prefix (such as +, 00, 011) present in the number + * provided, normalizes the resulting number, and indicates if an international + * prefix was present. + * + * @param {!goog.string.StringBuffer} number the non-normalized telephone number + * that we wish to strip any international dialing prefix from. + * @param {string} possibleIddPrefix the international direct dialing prefix + * from the region we think this number may be dialed in. + * @return {CountryCodeSource} the corresponding + * CountryCodeSource if an international dialing prefix could be removed + * from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if + * the number did not seem to be in international format. + */ +- (NBECountryCodeSource)maybeStripInternationalPrefixAndNormalize:(NSString**)numberStr possibleIddPrefix:(NSString*)possibleIddPrefix +{ + if (numberStr == NULL || (*numberStr).length == 0) { + return NBECountryCodeSourceFROM_DEFAULT_COUNTRY; + } + + // Check to see if the number begins with one or more plus signs. + if ([self isStartingStringByRegex:(*numberStr) regex:LEADING_PLUS_CHARS_PATTERN]) { + (*numberStr) = [self replaceStringByRegex:(*numberStr) regex:LEADING_PLUS_CHARS_PATTERN withTemplate:@""]; + // Can now normalize the rest of the number since we've consumed the '+' + // sign at the start. + (*numberStr) = [self normalizePhoneNumber:(*numberStr)]; + return NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN; + } + + // Attempt to parse the first digits as an international prefix. + NSString *iddPattern = [possibleIddPrefix copy]; + [self normalizeSB:numberStr]; + + return [self parsePrefixAsIdd:iddPattern sourceString:numberStr] ? NBECountryCodeSourceFROM_NUMBER_WITH_IDD : NBECountryCodeSourceFROM_DEFAULT_COUNTRY; +} + + +/** + * Strips any national prefix (such as 0, 1) present in the number provided. + * + * @param {!goog.string.StringBuffer} number the normalized telephone number + * that we wish to strip any national dialing prefix from. + * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the + * region that we think this number is from. + * @param {goog.string.StringBuffer} carrierCode a place to insert the carrier + * code if one is extracted. + * @return {boolean} NO if a national prefix or carrier code (or both) could + * be extracted. + */ +- (BOOL)maybeStripNationalPrefixAndCarrierCode:(NSString**)number metadata:(NBPhoneMetaData*)metadata carrierCode:(NSString**)carrierCode +{ + if (number == NULL) { + return NO; + } + + NSString *numberStr = [(*number) copy]; + unsigned int numberLength = (unsigned int)numberStr.length; + NSString *possibleNationalPrefix = metadata.nationalPrefixForParsing; + + if (numberLength == 0 || [NBMetadataHelper hasValue:possibleNationalPrefix] == NO) { + // Early return for numbers of zero length. + return NO; + } + + // Attempt to parse the first digits as a national prefix. + NSString *prefixPattern = [NSString stringWithFormat:@"^(?:%@)", possibleNationalPrefix]; + NSError *error = nil; + NSRegularExpression *currentPattern = [self regularExpressionWithPattern:prefixPattern options:0 error:&error]; + + NSArray *prefixMatcher = [currentPattern matchesInString:numberStr options:0 range:NSMakeRange(0, numberLength)]; + if (prefixMatcher && [prefixMatcher count] > 0) + { + NSString *nationalNumberRule = metadata.generalDesc.nationalNumberPattern; + NSTextCheckingResult *firstMatch = [prefixMatcher objectAtIndex:0]; + NSString *firstMatchString = [numberStr substringWithRange:firstMatch.range]; + + // prefixMatcher[numOfGroups] == null implies nothing was captured by the + // capturing groups in possibleNationalPrefix; therefore, no transformation + // is necessary, and we just remove the national prefix. + unsigned int numOfGroups = (unsigned int)firstMatch.numberOfRanges - 1; + NSString *transformRule = metadata.nationalPrefixTransformRule; + NSString *transformedNumber = @""; + NSRange firstRange = [firstMatch rangeAtIndex:numOfGroups]; + NSString *firstMatchStringWithGroup = (firstRange.location != NSNotFound && firstRange.location < numberStr.length) ? [numberStr substringWithRange:firstRange] : nil; + BOOL noTransform = (transformRule == nil || transformRule.length == 0 || [NBMetadataHelper hasValue:firstMatchStringWithGroup] == NO); + + if (noTransform) { + transformedNumber = [numberStr substringFromIndex:firstMatchString.length]; + } else { + transformedNumber = [self replaceFirstStringByRegex:numberStr regex:prefixPattern withTemplate:transformRule]; + } + // If the original number was viable, and the resultant number is not, + // we return. + if ([NBMetadataHelper hasValue:nationalNumberRule ] && [self matchesEntirely:nationalNumberRule string:numberStr] && + [self matchesEntirely:nationalNumberRule string:transformedNumber] == NO) { + return NO; + } + + if ((noTransform && numOfGroups > 0 && [NBMetadataHelper hasValue:firstMatchStringWithGroup]) || (!noTransform && numOfGroups > 1)) { + if (carrierCode != NULL && (*carrierCode) != nil) { + (*carrierCode) = [(*carrierCode) stringByAppendingString:firstMatchStringWithGroup]; + } + } + else if ((noTransform && numOfGroups > 0 && [NBMetadataHelper hasValue:firstMatchString]) || (!noTransform && numOfGroups > 1)) { + if (carrierCode != NULL && (*carrierCode) != nil) { + (*carrierCode) = [(*carrierCode) stringByAppendingString:firstMatchString]; + } + } + + (*number) = transformedNumber; + return YES; + } + return NO; +} + + +/** + * Strips any extension (as in, the part of the number dialled after the call is + * connected, usually indicated with extn, ext, x or similar) from the end of + * the number, and returns it. + * + * @param {!goog.string.StringBuffer} number the non-normalized telephone number + * that we wish to strip the extension from. + * @return {string} the phone extension. + */ +- (NSString*)maybeStripExtension:(NSString**)number +{ + if (number == NULL) { + return @""; + } + + NSString *numberStr = [(*number) copy]; + int mStart = [self stringPositionByRegex:numberStr regex:EXTN_PATTERN]; + + // If we find a potential extension, and the number preceding this is a viable + // number, we assume it is an extension. + if (mStart >= 0 && [self isViablePhoneNumber:[numberStr substringWithRange:NSMakeRange(0, mStart)]]) { + // The numbers are captured into groups in the regular expression. + NSTextCheckingResult *firstMatch = [self matcheFirstByRegex:numberStr regex:EXTN_PATTERN]; + unsigned int matchedGroupsLength = (unsigned int)[firstMatch numberOfRanges]; + for (unsigned int i=1; i 0 && [self isStartingStringByRegex:numberToParse regex:LEADING_PLUS_CHARS_PATTERN]); +} + + +/** + * Parses a string and returns it in proto buffer format. This method will throw + * a {@link i18n.phonenumbers.Error} if the number is not considered to be a + * possible number. Note that validation of whether the number is actually a + * valid number for a particular region is not performed. This can be done + * separately with {@link #isValidNumber}. + * + * @param {?string} numberToParse number that we are attempting to parse. This + * can contain formatting such as +, ( and -, as well as a phone number + * extension. It can also be provided in RFC3966 format. + * @param {?string} defaultRegion region that we are expecting the number to be + * from. This is only used if the number being parsed is not written in + * international format. The country_code for the number in this case would + * be stored as that of the default region supplied. If the number is + * guaranteed to start with a '+' followed by the country calling code, then + * 'ZZ' or nil can be supplied. + * @return {i18n.phonenumbers.PhoneNumber} a phone number proto buffer filled + * with the parsed number. + * @throws {i18n.phonenumbers.Error} if the string is not considered to be a + * viable phone number or if no default region was supplied and the number + * is not in international format (does not start with +). + */ +- (NBPhoneNumber*)parse:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error +{ + NSError *anError = nil; + NBPhoneNumber *phoneNumber = [self parseHelper:numberToParse defaultRegion:defaultRegion keepRawInput:NO checkRegion:YES error:&anError]; + + if (anError != nil) { + if (error != NULL) { + (*error) = [self errorWithObject:anError.description withDomain:anError.domain]; + } + } + return phoneNumber; +} + +/** + * Parses a string using the phone's carrier region (when available, ZZ otherwise). + * This uses the country the sim card in the phone is registered with. + * For example if you have an AT&T sim card but are in Europe, this will parse the + * number using +1 (AT&T is a US Carrier) as the default country code. + * This also works for CDMA phones which don't have a sim card. + */ +- (NBPhoneNumber*)parseWithPhoneCarrierRegion:(NSString*)numberToParse error:(NSError**)error +{ + numberToParse = [NBMetadataHelper normalizeNonBreakingSpace:numberToParse]; + + NSString *defaultRegion = nil; +#if TARGET_OS_IPHONE + defaultRegion = [self countryCodeByCarrier]; +#else + defaultRegion = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]; +#endif + if ([UNKNOWN_REGION_ isEqualToString:defaultRegion]) { + // get region from device as a failover (e.g. iPad) + NSLocale *currentLocale = [NSLocale currentLocale]; + defaultRegion = [currentLocale objectForKey:NSLocaleCountryCode]; + } + + return [self parse:numberToParse defaultRegion:defaultRegion error:error]; +} + +#if TARGET_OS_IPHONE + +- (NSString *)countryCodeByCarrier +{ + // cache telephony network info; + // CTTelephonyNetworkInfo objects are unnecessarily created for every call to parseWithPhoneCarrierRegion:error: + // when in reality this information not change while an app lives in memory + // real-world performance test while parsing 93 phone numbers: + // before change: 126ms + // after change: 32ms + if (!self.telephonyNetworkInfo) { + self.telephonyNetworkInfo = [[CTTelephonyNetworkInfo alloc] init]; + } + + NSString *isoCode = [[self.telephonyNetworkInfo subscriberCellularProvider] isoCountryCode]; + + // The 2nd part of the if is working around an iOS 7 bug + // If the SIM card is missing, iOS 7 returns an empty string instead of nil + if (!isoCode || [isoCode isEqualToString:@""]) { + isoCode = UNKNOWN_REGION_; + } + + return isoCode; +} + +#endif + + +/** + * Parses a string and returns it in proto buffer format. This method differs + * from {@link #parse} in that it always populates the raw_input field of the + * protocol buffer with numberToParse as well as the country_code_source field. + * + * @param {string} numberToParse number that we are attempting to parse. This + * can contain formatting such as +, ( and -, as well as a phone number + * extension. + * @param {?string} defaultRegion region that we are expecting the number to be + * from. This is only used if the number being parsed is not written in + * international format. The country calling code for the number in this + * case would be stored as that of the default region supplied. + * @return {i18n.phonenumbers.PhoneNumber} a phone number proto buffer filled + * with the parsed number. + * @throws {i18n.phonenumbers.Error} if the string is not considered to be a + * viable phone number or if no default region was supplied. + */ +- (NBPhoneNumber*)parseAndKeepRawInput:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error +{ + if ([self isValidRegionCode:defaultRegion] == NO) { + if (numberToParse.length > 0 && [numberToParse hasPrefix:@"+"] == NO) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Invalid country code:%@", numberToParse] + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) { + (*error) = [NSError errorWithDomain:@"INVALID_COUNTRY_CODE" code:0 userInfo:userInfo]; + } + } + } + return [self parseHelper:numberToParse defaultRegion:defaultRegion keepRawInput:YES checkRegion:YES error:error]; +} + + +/** + * Parses a string and returns it in proto buffer format. This method is the + * same as the public {@link #parse} method, with the exception that it allows + * the default region to be nil, for use by {@link #isNumberMatch}. + * + * @param {?string} numberToParse number that we are attempting to parse. This + * can contain formatting such as +, ( and -, as well as a phone number + * extension. + * @param {?string} defaultRegion region that we are expecting the number to be + * from. This is only used if the number being parsed is not written in + * international format. The country calling code for the number in this + * case would be stored as that of the default region supplied. + * @param {boolean} keepRawInput whether to populate the raw_input field of the + * phoneNumber with numberToParse. + * @param {boolean} checkRegion should be set to NO if it is permitted for + * the default coregion to be nil or unknown ('ZZ'). + * @return {i18n.phonenumbers.PhoneNumber} a phone number proto buffer filled + * with the parsed number. + * @throws {i18n.phonenumbers.Error} + * @private + */ +- (NBPhoneNumber*)parseHelper:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion + keepRawInput:(BOOL)keepRawInput checkRegion:(BOOL)checkRegion error:(NSError**)error +{ + numberToParse = [NBMetadataHelper normalizeNonBreakingSpace:numberToParse]; + + if (numberToParse == nil) { + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"NOT_A_NUMBER:%@", numberToParse] withDomain:@"NOT_A_NUMBER"]; + } + + return nil; + } else if (numberToParse.length > MAX_INPUT_STRING_LENGTH_) { + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_LONG:%@", numberToParse] withDomain:@"TOO_LONG"]; + } + + return nil; + } + + NSString *nationalNumber = @""; + [self buildNationalNumberForParsing:numberToParse nationalNumber:&nationalNumber]; + + if ([self isViablePhoneNumber:nationalNumber] == NO) { + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"NOT_A_NUMBER:%@", nationalNumber] withDomain:@"NOT_A_NUMBER"]; + } + + return nil; + } + + // Check the region supplied is valid, or that the extracted number starts + // with some sort of + sign so the number's region can be determined. + if (checkRegion && [self checkRegionForParsing:nationalNumber defaultRegion:defaultRegion] == NO) { + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"INVALID_COUNTRY_CODE:%@", defaultRegion] + withDomain:@"INVALID_COUNTRY_CODE"]; + } + + return nil; + } + + NBPhoneNumber *phoneNumber = [[NBPhoneNumber alloc] init]; + if (keepRawInput) { + phoneNumber.rawInput = [numberToParse copy]; + } + + // Attempt to parse extension first, since it doesn't require region-specific + // data and we want to have the non-normalised number here. + NSString *extension = [self maybeStripExtension:&nationalNumber]; + if (extension.length > 0) { + phoneNumber.extension = [extension copy]; + } + + NBPhoneMetaData *regionMetadata = [NBMetadataHelper getMetadataForRegion:defaultRegion]; + // Check to see if the number is given in international format so we know + // whether this number is from the default region or not. + NSString *normalizedNationalNumber = @""; + NSNumber *countryCode = nil; + NSString *nationalNumberStr = [nationalNumber copy]; + + { + NSError *anError = nil; + countryCode = [self maybeExtractCountryCode:nationalNumberStr + metadata:regionMetadata + nationalNumber:&normalizedNationalNumber + keepRawInput:keepRawInput + phoneNumber:&phoneNumber error:&anError]; + + if (anError != nil) { + if ([anError.domain isEqualToString:@"INVALID_COUNTRY_CODE"] && [self stringPositionByRegex:nationalNumberStr + regex:LEADING_PLUS_CHARS_PATTERN] >= 0) + { + // Strip the plus-char, and try again. + NSError *aNestedError = nil; + nationalNumberStr = [self replaceStringByRegex:nationalNumberStr regex:LEADING_PLUS_CHARS_PATTERN withTemplate:@""]; + countryCode = [self maybeExtractCountryCode:nationalNumberStr + metadata:regionMetadata + nationalNumber:&normalizedNationalNumber + keepRawInput:keepRawInput + phoneNumber:&phoneNumber error:&aNestedError]; + if ([countryCode isEqualToNumber:@0]) { + if (error != NULL) + (*error) = [self errorWithObject:anError.description withDomain:anError.domain]; + + return nil; + } + } else { + if (error != NULL) + (*error) = [self errorWithObject:anError.description withDomain:anError.domain]; + + return nil; + } + } + } + + if (![countryCode isEqualToNumber:@0]) { + NSString *phoneNumberRegion = [self getRegionCodeForCountryCode:countryCode]; + if (phoneNumberRegion != defaultRegion) { + // Metadata cannot be nil because the country calling code is valid. + regionMetadata = [self getMetadataForRegionOrCallingCode:countryCode regionCode:phoneNumberRegion]; + } + } else { + // If no extracted country calling code, use the region supplied instead. + // The national number is just the normalized version of the number we were + // given to parse. + [self normalizeSB:&nationalNumber]; + normalizedNationalNumber = [normalizedNationalNumber stringByAppendingString:nationalNumber]; + + if (defaultRegion != nil) { + countryCode = regionMetadata.countryCode; + phoneNumber.countryCode = countryCode; + } else if (keepRawInput) { + [phoneNumber clearCountryCodeSource]; + } + } + + if (normalizedNationalNumber.length < MIN_LENGTH_FOR_NSN_){ + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_SHORT_NSN:%@", normalizedNationalNumber] withDomain:@"TOO_SHORT_NSN"]; + } + + return nil; + } + + if (regionMetadata != nil) { + NSString *carrierCode = @""; + [self maybeStripNationalPrefixAndCarrierCode:&normalizedNationalNumber metadata:regionMetadata carrierCode:&carrierCode]; + + if (keepRawInput) { + phoneNumber.PreferredDomesticCarrierCode = [carrierCode copy]; + } + } + + NSString *normalizedNationalNumberStr = [normalizedNationalNumber copy]; + + unsigned int lengthOfNationalNumber = (unsigned int)normalizedNationalNumberStr.length; + if (lengthOfNationalNumber < MIN_LENGTH_FOR_NSN_) { + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_SHORT_NSN:%@", normalizedNationalNumber] withDomain:@"TOO_SHORT_NSN"]; + } + + return nil; + } + + if (lengthOfNationalNumber > MAX_LENGTH_FOR_NSN_) { + if (error != NULL) { + (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_LONG:%@", normalizedNationalNumber] withDomain:@"TOO_LONG"]; + } + + return nil; + } + + if ([normalizedNationalNumberStr hasPrefix:@"0"]) { + phoneNumber.italianLeadingZero = YES; + } + + phoneNumber.nationalNumber = [NSNumber numberWithLongLong:[normalizedNationalNumberStr longLongValue]]; + return phoneNumber; +} + + +/** + * Converts numberToParse to a form that we can parse and write it to + * nationalNumber if it is written in RFC3966; otherwise extract a possible + * number out of it and write to nationalNumber. + * + * @param {?string} numberToParse number that we are attempting to parse. This + * can contain formatting such as +, ( and -, as well as a phone number + * extension. + * @param {!goog.string.StringBuffer} nationalNumber a string buffer for storing + * the national significant number. + * @private + */ +- (void)buildNationalNumberForParsing:(NSString*)numberToParse nationalNumber:(NSString**)nationalNumber +{ + if (nationalNumber == NULL) + return; + + int indexOfPhoneContext = [self indexOfStringByString:numberToParse target:RFC3966_PHONE_CONTEXT]; + if (indexOfPhoneContext > 0) + { + unsigned int phoneContextStart = indexOfPhoneContext + (unsigned int)RFC3966_PHONE_CONTEXT.length; + // If the phone context contains a phone number prefix, we need to capture + // it, whereas domains will be ignored. + if ([numberToParse characterAtIndex:phoneContextStart] == '+') + { + // Additional parameters might follow the phone context. If so, we will + // remove them here because the parameters after phone context are not + // important for parsing the phone number. + NSRange foundRange = [numberToParse rangeOfString:@";" options:NSLiteralSearch range:NSMakeRange(phoneContextStart, numberToParse.length - phoneContextStart)]; + if (foundRange.location != NSNotFound) + { + NSRange subRange = NSMakeRange(phoneContextStart, foundRange.location - phoneContextStart); + (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[numberToParse substringWithRange:subRange]]; + } + else + { + (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[numberToParse substringFromIndex:phoneContextStart]]; + } + } + + // Now append everything between the "tel:" prefix and the phone-context. + // This should include the national number, an optional extension or + // isdn-subaddress component. + unsigned int rfc3966Start = [self indexOfStringByString:numberToParse target:RFC3966_PREFIX] + (unsigned int)RFC3966_PREFIX.length; + NSString *subString = [numberToParse substringWithRange:NSMakeRange(rfc3966Start, indexOfPhoneContext - rfc3966Start)]; + (*nationalNumber) = [(*nationalNumber) stringByAppendingString:subString]; + } + else + { + // Extract a possible number from the string passed in (this strips leading + // characters that could not be the start of a phone number.) + (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[self extractPossibleNumber:numberToParse]]; + } + + // Delete the isdn-subaddress and everything after it if it is present. + // Note extension won't appear at the same time with isdn-subaddress + // according to paragraph 5.3 of the RFC3966 spec, + NSString *nationalNumberStr = [(*nationalNumber) copy]; + int indexOfIsdn = [self indexOfStringByString:nationalNumberStr target:RFC3966_ISDN_SUBADDRESS]; + if (indexOfIsdn > 0) + { + (*nationalNumber) = @""; + (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[nationalNumberStr substringWithRange:NSMakeRange(0, indexOfIsdn)]]; + } + // If both phone context and isdn-subaddress are absent but other + // parameters are present, the parameters are left in nationalNumber. This + // is because we are concerned about deleting content from a potential + // number string when there is no strong evidence that the number is + // actually written in RFC3966. +} + + +/** + * Takes two phone numbers and compares them for equality. + * + *

Returns EXACT_MATCH if the country_code, NSN, presence of a leading zero + * for Italian numbers and any extension present are the same. Returns NSN_MATCH + * if either or both has no region specified, and the NSNs and extensions are + * the same. Returns SHORT_NSN_MATCH if either or both has no region specified, + * or the region specified is the same, and one NSN could be a shorter version + * of the other number. This includes the case where one has an extension + * specified, and the other does not. Returns NO_MATCH otherwise. For example, + * the numbers +1 345 657 1234 and 657 1234 are a SHORT_NSN_MATCH. The numbers + * +1 345 657 1234 and 345 657 are a NO_MATCH. + * + * @param {i18n.phonenumbers.PhoneNumber|string} firstNumberIn first number to + * compare. If it is a string it can contain formatting, and can have + * country calling code specified with + at the start. + * @param {i18n.phonenumbers.PhoneNumber|string} secondNumberIn second number to + * compare. If it is a string it can contain formatting, and can have + * country calling code specified with + at the start. + * @return {MatchType} NOT_A_NUMBER, NO_MATCH, + * SHORT_NSN_MATCH, NSN_MATCH or EXACT_MATCH depending on the level of + * equality of the two numbers, described in the method definition. + */ +- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn error:(NSError**)error +{ + NBEMatchType res = 0; + @try { + res = [self isNumberMatch:firstNumberIn second:secondNumberIn]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + +- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn +{ + // If the input arguements are strings parse them to a proto buffer format. + // Else make copies of the phone numbers so that the numbers passed in are not + // edited. + /** @type {i18n.phonenumbers.PhoneNumber} */ + NBPhoneNumber *firstNumber = nil, *secondNumber = nil; + if ([firstNumberIn isKindOfClass:[NSString class]]) + { + // First see if the first number has an implicit country calling code, by + // attempting to parse it. + NSError *anError; + firstNumber = [self parse:firstNumberIn defaultRegion:UNKNOWN_REGION_ error:&anError]; + if (anError != nil) { + if ([anError.domain isEqualToString:@"INVALID_COUNTRY_CODE"] == NO) + { + return NBEMatchTypeNOT_A_NUMBER; + } + // The first number has no country calling code. EXACT_MATCH is no longer + // possible. We parse it as if the region was the same as that for the + // second number, and if EXACT_MATCH is returned, we replace this with + // NSN_MATCH. + if ([secondNumberIn isKindOfClass:[NSString class]] == NO) + { + NSString *secondNumberRegion = [self getRegionCodeForCountryCode:((NBPhoneNumber*)secondNumberIn).countryCode]; + if (secondNumberRegion != UNKNOWN_REGION_) + { + NSError *aNestedError; + firstNumber = [self parse:firstNumberIn defaultRegion:secondNumberRegion error:&aNestedError]; + if (aNestedError != nil) + return NBEMatchTypeNOT_A_NUMBER; + + NBEMatchType match = [self isNumberMatch:firstNumber second:secondNumberIn]; + if (match == NBEMatchTypeEXACT_MATCH) + { + return NBEMatchTypeNSN_MATCH; + } + return match; + } + } + // If the second number is a string or doesn't have a valid country + // calling code, we parse the first number without country calling code. + NSError *aNestedError; + firstNumber = [self parseHelper:firstNumberIn defaultRegion:nil keepRawInput:NO checkRegion:NO error:&aNestedError]; + if (aNestedError != nil) { + return NBEMatchTypeNOT_A_NUMBER; + } + } + } else { + firstNumber = [firstNumberIn copy]; + } + + if ([secondNumberIn isKindOfClass:[NSString class]]) { + NSError *parseError; + secondNumber = [self parse:secondNumberIn defaultRegion:UNKNOWN_REGION_ error:&parseError]; + if (parseError != nil) { + if ([parseError.domain isEqualToString:@"INVALID_COUNTRY_CODE"] == NO) { + return NBEMatchTypeNOT_A_NUMBER; + } + return [self isNumberMatch:secondNumberIn second:firstNumber]; + } else { + return [self isNumberMatch:firstNumberIn second:secondNumber]; + } + } + else { + secondNumber = [secondNumberIn copy]; + } + + // First clear raw_input, country_code_source and + // preferred_domestic_carrier_code fields and any empty-string extensions so + // that we can use the proto-buffer equality method. + firstNumber.rawInput = @""; + [firstNumber clearCountryCodeSource]; + firstNumber.PreferredDomesticCarrierCode = @""; + + secondNumber.rawInput = @""; + [secondNumber clearCountryCodeSource]; + secondNumber.PreferredDomesticCarrierCode = @""; + + if (firstNumber.extension != nil && firstNumber.extension.length == 0) { + firstNumber.extension = nil; + } + + if (secondNumber.extension != nil && secondNumber.extension.length == 0) { + secondNumber.extension = nil; + } + + // Early exit if both had extensions and these are different. + if ([NBMetadataHelper hasValue:firstNumber.extension] && [NBMetadataHelper hasValue:secondNumber.extension] && + [firstNumber.extension isEqualToString:secondNumber.extension] == NO) { + return NBEMatchTypeNO_MATCH; + } + + NSNumber *firstNumberCountryCode = firstNumber.countryCode; + NSNumber *secondNumberCountryCode = secondNumber.countryCode; + + // Both had country_code specified. + if (![firstNumberCountryCode isEqualToNumber:@0] && ![secondNumberCountryCode isEqualToNumber:@0]) { + if ([firstNumber isEqual:secondNumber]) { + return NBEMatchTypeEXACT_MATCH; + } + else if ([firstNumberCountryCode isEqualToNumber:secondNumberCountryCode] && [self isNationalNumberSuffixOfTheOther:firstNumber second:secondNumber]) + { + // A SHORT_NSN_MATCH occurs if there is a difference because of the + // presence or absence of an 'Italian leading zero', the presence or + // absence of an extension, or one NSN being a shorter variant of the + // other. + return NBEMatchTypeSHORT_NSN_MATCH; + } + // This is not a match. + return NBEMatchTypeNO_MATCH; + } + // Checks cases where one or both country_code fields were not specified. To + // make equality checks easier, we first set the country_code fields to be + // equal. + firstNumber.countryCode = @0; + secondNumber.countryCode = @0; + // If all else was the same, then this is an NSN_MATCH. + if ([firstNumber isEqual:secondNumber]) { + return NBEMatchTypeNSN_MATCH; + } + + if ([self isNationalNumberSuffixOfTheOther:firstNumber second:secondNumber]) { + return NBEMatchTypeSHORT_NSN_MATCH; + } + return NBEMatchTypeNO_MATCH; +} + + +/** + * Returns NO when one national number is the suffix of the other or both are + * the same. + * + * @param {i18n.phonenumbers.PhoneNumber} firstNumber the first PhoneNumber + * object. + * @param {i18n.phonenumbers.PhoneNumber} secondNumber the second PhoneNumber + * object. + * @return {boolean} NO if one PhoneNumber is the suffix of the other one. + * @private + */ +- (BOOL)isNationalNumberSuffixOfTheOther:(NBPhoneNumber*)firstNumber second:(NBPhoneNumber*)secondNumber +{ + NSString *firstNumberNationalNumber = [NSString stringWithFormat:@"%@", firstNumber.nationalNumber]; + NSString *secondNumberNationalNumber = [NSString stringWithFormat:@"%@", secondNumber.nationalNumber]; + + // Note that endsWith returns NO if the numbers are equal. + return [firstNumberNationalNumber hasSuffix:secondNumberNationalNumber] || + [secondNumberNationalNumber hasSuffix:firstNumberNationalNumber]; +} + + +/** + * Returns NO if the number can be dialled from outside the region, or + * unknown. If the number can only be dialled from within the region, returns + * NO. Does not check the number is a valid number. + * TODO: Make this method public when we have enough metadata to make it + * worthwhile. Currently visible for testing purposes only. + * + * @param {i18n.phonenumbers.PhoneNumber} number the phone-number for which we + * want to know whether it is diallable from outside the region. + * @return {boolean} NO if the number can only be dialled from within the + * country. + */ +- (BOOL)canBeInternationallyDialled:(NBPhoneNumber*)number error:(NSError**)error +{ + BOOL res = NO; + @try { + res = [self canBeInternationallyDialled:number]; + } + @catch (NSException *exception) { + NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason + forKey:NSLocalizedDescriptionKey]; + if (error != NULL) + (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; + } + return res; +} + +- (BOOL)canBeInternationallyDialled:(NBPhoneNumber*)number +{ + NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:[self getRegionCodeForNumber:number]]; + if (metadata == nil) { + // Note numbers belonging to non-geographical entities (e.g. +800 numbers) + // are always internationally diallable, and will be caught here. + return YES; + } + NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; + return [self isNumberMatchingDesc:nationalSignificantNumber numberDesc:metadata.noInternationalDialling] == NO; +} + + +/** + * Check whether the entire input sequence can be matched against the regular + * expression. + * + * @param {!RegExp|string} regex the regular expression to match against. + * @param {string} str the string to test. + * @return {boolean} NO if str can be matched entirely against regex. + * @private + */ +- (BOOL)matchesEntirely:(NSString*)regex string:(NSString*)str +{ + if ([regex isEqualToString:@"NA"]) + { + return NO; + } + + NSError *error = nil; + NSRegularExpression *currentPattern = [self entireRegularExpressionWithPattern:regex options:0 error:&error]; + NSRange stringRange = NSMakeRange(0, str.length); + NSTextCheckingResult *matchResult = [currentPattern firstMatchInString:str options:NSMatchingAnchored range:stringRange]; + + if (matchResult != nil) { + BOOL matchIsEntireString = NSEqualRanges(matchResult.range, stringRange); + if (matchIsEntireString) + { + return YES; + } + } + + return NO; +} + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h new file mode 100755 index 0000000..cf286ee --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h @@ -0,0 +1,15 @@ +// +// NSArray+NBAdditions.h +// libPhoneNumber +// +// Created by Frane Bandov on 04.10.13. +// + +#import + + +@interface NSArray (NBAdditions) + +- (id)safeObjectAtIndex:(NSUInteger)index; + +@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m new file mode 100755 index 0000000..3332973 --- /dev/null +++ b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m @@ -0,0 +1,28 @@ +// +// NSArray+NBAdditions.m +// libPhoneNumber +// +// Created by Frane Bandov on 04.10.13. +// + +#import "NSArray+NBAdditions.h" + + +@implementation NSArray (NBAdditions) + +- (id)safeObjectAtIndex:(NSUInteger)index +{ + @synchronized(self) + { + if(index >= [self count]) return nil; + + id res = [self objectAtIndex:index]; + + if (res == nil || (NSNull*)res == [NSNull null]) + return nil; + + return res; + } +} + +@end diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2f734de --- /dev/null +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -0,0 +1,468 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; + 4071D1FE6353F5B506D54D99 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E66142C8499E549773BADCEB /* Pods_iosApp.framework */; }; + 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; + 7555FF7B242A565900829871 /* MultiplatformContacts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultiplatformContacts.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 830A709ECA7F2897A3888F33 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; + B76157FDA6118F9A8C70581B /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + E66142C8499E549773BADCEB /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B92378962B6B1156000C7307 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4071D1FE6353F5B506D54D99 /* Pods_iosApp.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 058557D7273AAEEB004C7B11 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 42799AB246E5F90AF97AA0EF /* Frameworks */ = { + isa = PBXGroup; + children = ( + E66142C8499E549773BADCEB /* Pods_iosApp.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 7555FF72242A565900829871 = { + isa = PBXGroup; + children = ( + AB1DB47929225F7C00F7AF9C /* Configuration */, + 7555FF7D242A565900829871 /* iosApp */, + 7555FF7C242A565900829871 /* Products */, + 42799AB246E5F90AF97AA0EF /* Frameworks */, + A708DA789548C737BF479F0D /* Pods */, + ); + sourceTree = ""; + }; + 7555FF7C242A565900829871 /* Products */ = { + isa = PBXGroup; + children = ( + 7555FF7B242A565900829871 /* MultiplatformContacts.app */, + ); + name = Products; + sourceTree = ""; + }; + 7555FF7D242A565900829871 /* iosApp */ = { + isa = PBXGroup; + children = ( + 058557BA273AAA24004C7B11 /* Assets.xcassets */, + 7555FF82242A565900829871 /* ContentView.swift */, + 7555FF8C242A565B00829871 /* Info.plist */, + 2152FB032600AC8F00CF470E /* iOSApp.swift */, + 058557D7273AAEEB004C7B11 /* Preview Content */, + ); + path = iosApp; + sourceTree = ""; + }; + A708DA789548C737BF479F0D /* Pods */ = { + isa = PBXGroup; + children = ( + B76157FDA6118F9A8C70581B /* Pods-iosApp.debug.xcconfig */, + 830A709ECA7F2897A3888F33 /* Pods-iosApp.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + AB1DB47929225F7C00F7AF9C /* Configuration */ = { + isa = PBXGroup; + children = ( + AB3632DC29227652001CCB65 /* Config.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7555FF7A242A565900829871 /* iosApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; + buildPhases = ( + 26EA925303D4DBD782076D33 /* [CP] Check Pods Manifest.lock */, + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, + 7555FF77242A565900829871 /* Sources */, + B92378962B6B1156000C7307 /* Frameworks */, + 7555FF79242A565900829871 /* Resources */, + FA02B83A9BED9D02AD0EE4A1 /* [CP] Embed Pods Frameworks */, + 11EA29C7CF484DD5F52358BB /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iosApp; + productName = iosApp; + productReference = 7555FF7B242A565900829871 /* MultiplatformContacts.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7555FF73242A565900829871 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = orgName; + TargetAttributes = { + 7555FF7A242A565900829871 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7555FF72242A565900829871; + productRefGroup = 7555FF7C242A565900829871 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7555FF7A242A565900829871 /* iosApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7555FF79242A565900829871 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 11EA29C7CF484DD5F52358BB /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 26EA925303D4DBD782076D33 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Compile Kotlin Framework"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :sample:common:embedAndSignAppleFrameworkForXcode\n"; + }; + FA02B83A9BED9D02AD0EE4A1 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7555FF77242A565900829871 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, + 7555FF83242A565900829871 /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7555FFA3242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7555FFA4242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7555FFA6242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B76157FDA6118F9A8C70581B /* Pods-iosApp.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = 9Z5F72MRRD; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + common, + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7555FFA7242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 830A709ECA7F2897A3888F33 /* Pods-iosApp.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + common, + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA3242A565B00829871 /* Debug */, + 7555FFA4242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA6242A565B00829871 /* Debug */, + 7555FFA7242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7555FF73242A565900829871 /* Project object */; +} diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/iosApp/iosApp.xcworkspace/contents.xcworkspacedata b/iosApp/iosApp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..c009e7d --- /dev/null +++ b/iosApp/iosApp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..ee7e3ca --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8edf56e --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "app-icon-1024.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..53fc536fb9ac5c1dbb27c7e1da13db3760070a11 GIT binary patch literal 67285 zcmeFZcOaGT{|9`Wj$QUBI}*w$dt??uHYvwQvK>VBJV}y7GAcwFB{SpLdzOqi=5Y|& zGkc%sy7l?}zMtRo{Qvy*{X-w8PwxA=uj@Ttuh;u^i_p_iKSRMn0fWKLXxzME0D~dG zw+I*+3HVPi`{hvZfy&|fbv>u+>epSJUEK}ctgLO+ZCq^J9jp!1RbVjbs3>D|dp2VR zg`|q&%NM#ru~}KMRL2r=CC&yvpNz~M+Z3Zl1z$UtD93zT!lyV~6q`ECa1c;nP^M}4 zJn?#hfNbD9@0hb3DfF>K?;|3Vf465}{X;J^`C^4wan;rny=6QA1$QnZO>Q%P-?E#a|?1oocKbSzhI89UI&(+acI3 z=If~wJ;R3$+Q|p+?~*smIVW>X(lwRBOwPWiUMuQ;`%3hg zrK%wRmlwy)xM!rZJlm!SQjay<%WD#!^8~m%RKH2)ywl<7s|h^_#;D?*nsK4J(ZyE+ z8OBeQZzo=IPxuv1lWP2X^wF~dVTa-t8iGxQ1Nk2wn0Zxom^;NEg=TAG|7y0mN7-Mb ze%4?9gnesAGal;W*>LT9>&lJ8(yNxq6rMo_$){(iIbai$mxK!ac6c}nwH+=!>xeS3 zmuy>qwp%{KWD5^m5wdfT9qf_Gw0*8DxDq+FPJ8>4LbFNs`$Ux^OQAA`R$lq17Rjd{ zwO{c(+}igtNqI{)87sp~$?}3%7OWA=IlSrW!it(?Vng0Zxq-&hLssP z9=9*f{k)=*Mc`TM`O>&*Z_HDDI>^^P$Fqmr){O^yRYOE0HguPb`}OZD=gy~d#qxbK zeDLDIPgzYWiM9l8j|UqSKe4_ zv5*aPF^Q~FyPaA!;4%N`f*p&a(4+PdY>Im~q0w@7u+VZ=%JlRxY0#>(j)g7_EtKv>81?gWYW*idrM^jZyhlH;2KM0d= zY-)Uy?E+~R>>ibiS)Bzyr`Q>$X9 zbX=yM@MtKW;|@br`8`?Q%JK@*k{>BRw|e|>zD9gMz%oEwfkCm+E%e-YWUc+d%`S-4ybBrlMlUopH5y zi;daHxI$p?fB!)vh)&RMWEm3rqDLSMz4i=FKL}?9C?N4x9`=T24ub=pP0WM?+ObJ64P5b}49$6ZUCX$ynw8-bd-bKk%OPYcu{E8vjnn|AxkYL*u`-^*>$ZzxnXreE4rZ{5K!|iz@#YxBveErPBltNUy2= zgW(C}ad&Ul+4L1sIowtkqNd2!XexZiMq?m$P@vHiv(VD`e7Gz~kh_KFe0={aItPKb z-}&`z2s$qP`xFja`!8<0w%d2^=b73Ngpesed*h8w>jb7088lz~!#Cu}X<$PUp`?G= zOSuTmSJ%}hWa9kL^(I-2IXnAL(cJ4v1H)d1malsg)ic-a=T=3&KC8EQxr%wPIV@$o z|7iGj;F@Z@f~i4v|2Q4P5aqeLzx1PC2CX-X6vB3+|G8Bc#gk=@qjrqV!pPTKiq4km zZKc^fB4m0?)?wx<)jPhKw!sG3-U|8HGD(k+Q~&JvC?gka!Ud-%3gI*~9n)IY0-@0Q zhTV`h;qCS~ddvF-wklGT&~ZsS)iV1oXIANhz1!ZDn&18wZhn0tIE;5>&4?AcT)jNe zDidL@sRO(E`)YbL{ID>xz9FHMpl;V9z83e)W@dbP5Pi_lIBmR--;B$`<%T@6nfRg}_IK%S z79p^Z4ec95CoJ#rMYp*IEAw%=e2hp+t;X7qJ}9e#2|=xY=-uy!6{ z*AoV-Hv%8)Jg)CcudML?F?jBXvj6$2P=4>TuZ*T8ar3Y+(b;P!%gW?cf~A#=B#oTh zjp615*8016z`cqQaiJFD<5Kl)FY>boUZ&AHn)Z0L?bDxYE)?82Nr-zU;OVN~t5 zc^h?0kF?g>(t^8Wn@n=VSgtC3C{uh;6_Wg6UF~F*yqCc$A0)khei9D9Rni0nw^o_@ zg#xV|?{uXE3*YkI;cyK$&3 zKVR&nZAx%HDrX~z^^zzCbHDS{IF)$_PUH)>%!=qmf2 zRL|pl&u}QX=N^&=*1VgC<(HnBR)!A3O$&r4a#`8o2KnFu3<=dBz8ntN{~e z<6f^mtt_!GMGfnBE<7M;JOst=$c@WZDi;^`^K%5bc1p^??Mc`n@83Kvd=0iNMcU_Y z(k{R~t$IsESc`Bb*XeWDbKXpJtramb8i`|*vNx(8#x{#OVbk4 zg;qC(sJ^6obvDVCsNPZMU>kV2{N2b!8Lr4qnP5Es{-H*v<&7YiVkxVQD)jK}1>k;% z`|B$w`>sGsHr#t`@#)4Re?s{?@wGNt0;A*?#lWDC|glm zE1O%Di)-)*y>lH}_gXZJ2u3Jj`}`j2m~xK9 zc_q47v0^Fbm*~0o^~;`(l)1}=6n(e7`GPIAXLF}l=UnCJ4nONj&=i6qhscr7K6CO( z0x|hBMi?V;JUDDh_}nCOJmC6muHvpkRBHSW+~%>PoAIK+*vAO^Xu-benUPLg((-^G zNP|pT>(~36TI;9EM|I-PK!t^C2dYP|-{np!g!H8ee8ziEgB#vd&vIIbR`NH-liTOM z4I223VM;fq;a%8ea zsJBngyv#O~^Zu0WZ+MjY_EoPKCh>@*V{~M)zV4tJPl5ahLYv;LvkU@n*Qng1Le*^!{$~Mye8Fl zDk`pBT7%^;L3W=UavfOEnwFNn4)h7lLhj>q5T4A~f2L;gQuM%FCUM|;BO}K0=uO7V z$n79yh3b@3`Gv`pCU;(jJga(rWwUEGo<-*3hZal|{GU`-2H8(j!j!3SvZ{pvfsem1 zU3Kv`d)`~SU37=?;xgG0u31LLDm(9llAd@bm1;*%jdoJUeC=lr4!WGzW}#_+bdey^ z;ikGS^%GTGWp2>$-2 z4(clbH*YN?%jMYbz2>#vd@N3Hn`z{*cTW1GM9{2Nf#9nv)crwl=y<&Z+Udj+#Big?GiHUsxUwYRNJCaHR6na zF$UQ)kcT1S7y6-^r>URzgCv?Xg`;1)#`+7h_YTQAWfhuDMj=}!VJ_O*1ikOI5v;vh zE-Wwqv9PN1Cd_UyYl`o027|4eC?-iSKly|s){$?`ilG)XNy=IoyXunLK4+D*(9N*E zur(qn)L3bK&kP^!?oS?GW;|tRsOe9xzGWI`cd}#U7nNZ3rA#0GHaUMrdnc)gljd~O z+m%j(yKL~{=&VT1L|38mv?Hz=Kk+iL`42imqh`~~f%oC4-P9k%No;%~CWA@iuQ5i)=smbrWIle6`!n@e>cx8;)v8z!t>TFU^>~!wN_)o9WJpy}&oJ+|x`xd*!*jKl` z?L(OIcJVIu!1fT!F=tOq7n~?xd&iW599VFN4jVM97e8nx~i+i4@fNymoB6t7?+2@a3sn+yaQeW!uZ4 z`P$LM3wrL##mD8Q?7vr>VmX_e^%$bT5*JQ4;L7odT4vCjp9bWpo+Efz&AgUu z5%6K+nNs9ME4-sqg+IsYifnMS{QCF*ddE}ih*0T?MdMEM7 zo9P?HqWYK%t=JpYBAnOn@RMBF1MoY>(sGO)ibO80G#9~)4(H`@-mhu-zKH|lbG z3s6Vfd|G$vQu?3hC<;cqtXi7*A9eg1>OHVDa%eugep4F%mY)r*h(-xOHzH@FFHb;i zDd(ptQXYQKha=0&8+Pff$J37VTab9O{zo=uaI2HmHPxy&=XI4n%vI;x zP+6bfBRV+^qXJ`JCa5IU9|Pz)WT|X%(k2Ua(J#YMmb2quORKIQ3$V_Oe+~CneLjDD z;B1t7?N>Puz=acUUdj&PYs+|f<*&(ncqnG5DfX+GPd@TKbehKuAWgcx(y`#uAtH!( zBNodR3EQ=Nl_{Bl3)PzP_tK9q4;JO6ipbtRLwOEE&KFpD!!v1F^k@4o^NY2nPJ2YH zyqg07qS^z65x%m}0+l2{A{)^^|8!Cuj4Zia77In@Y5Pm%??11UJB6f77*<%GihWo2 z%xZ9MEHAie|UiDKzgwV`6 zerr(!$x>(~mLl$&f|i1~rsgeB>?0(k`yp(w&g+&@#$1(Gx`OS(f9QV{zxm@uT#%wf zb|>Sg(R7Z;?sT9Wr%i~SCxTSiyc(PaN-Q7 zLGY}FD_OJ7*L?^!J0;ju*U`2~eOY2;+tRZ3T@`;KF1yF(GNsn6cl5%H!c~b9UU)u7 zq=}1V{`v|$A*XyqEshepL@0Q0#S%Ij2pF?5tPN~a%Uu4#>eph-;aM0GEYjP^=rtvN zF}nhj|Lzo8o?JYaxwkZMs&cpFS+&q*knFqm{#=WT#)u*_6wmiCCQ;0&F3 zIvg*jD*j_&udGOrkk2uW`Zjmobzw6}!1!UoZ$~j1lYFnd#!4qWGjrMUB+j(ngraMm z228X2RKyV9J>&wHqRzW<4tj9)lU8}9N@l^?Kc~viN8{*y=@B;dZ>yY8N|S_tVrTwo zp1@zIZS5UuwkT;M?#KO2(5bJsngl#3zcEOZ%#n30#9BY20TIJ}QnwuH&r%{&AU{e`mxBpM093Vs*8?!)-5~Bci&WzHBsF1b0>_+0Ja&}mfY=HrF zbxhCqQbfHwp43MXDg^wX&^+#q#X>B-{i{-R zccPUPh(|c@Yu$Sqx7d6gkC(h+bG4AqQfofC;G*%X`{cJ24otJ zaYq%Ef|?|z;Pd$yx@qX4DMUc6UYkj#1*>#3sK=2kFDN`TAL(31^~?z7mTYyA3*GG! zx8svDh+w$H^h#KUFUzSbO2CESwY7^&OyI1?G#vicN@)9^0OZdA{Yk~qLl|s9y)wF} z5L@SORJIwBZBIZQ`akpG0jU(#c(qP3m?$CE?zA0 zlHVXQbK(0A2?W0(ZM8PcHyFB}6}n43-eEWG4VBZ%%DWjMfq5xII+hJJO$U;z>?_)t z<|Qw~;~j=T1(RvU*JV;frpU`md{ETY6;Nf%E0Gf{RfnNtLABN^($;OERZ5E^HkG1W ze5w2}B_o$j8cQD zWUlWGqQl-Yem)Q^F_%FsR>b}egpdR$88(NtSJ$uQQ3Yyw7WHR#;m_E8+<>cd7?ZF~ zN?i`>M#Z+Eo)l9rqr7$H)J1dEZ>2CU*}22(sJ$2CU%8 z@0Gzl!N#o`rb~*R>qBqh+20=8nyc-MD9nhB@p_1eD6r2-(sy&*SU&7kYZ}A8xv$*6A^>dmaV6 zcaxUVYgP4g_}o;&mn$RztJ!gNGvrPWx72Yw{1JC4=ZlHRd#EySO(=rv9XpAg2xUfE zX<<_PKFVgZpq0+0o4ks^=9<*e~h>D@(RmT+?h?qEkDif+E^pi=Sk%1 zRdg+v3hM>fJH(yu-CBNEaZq-UffD9AsU=FM_8OSiFu&RCksf1Mxvc$%-gc{k zW)_+Lt-KODVhPKLIunEI2pY04ARp5(f?Fyuv=U`=`g!wSo-a=R%?zI2Bwv{XaY0R2 zf@!5rqgP^#g!$m4Lrf`yJCTcx!nD3xerEDnfqK~od>1x5S>S&87}}GHv3&uk6S|^@ zY*59}tFPjdUd(v5Qc}}`WSdxFZybp_hj%r6`ss(xH>COx04e*KrI#iOpHf9EK0uC4 zExf|y!3p=Y{EopF=E5G2cWDYgGjupYp!y=8wEb-}>X_2fMnKH~`5dJ1mm=2HElYZA z@_NLqK^vWJ9&vx~Mw0ru-B5dQ@uIjVm4>|eKaDHE5~wyi61!4R zq^AA9J8PLMD<(jq@3A?kGczJYt`Xg;n9SKN`Ke3MmB{Vr>S+b**nRt}9f6}LUQMVF z-9*6Vi2p7wsAA2s{Qg0hVnhSm@=b=zG;j;9H8o0v#e@&nTINolU;Fy0+~b$$l+bfN zMnD0C^MOZm)7Av4B^Mby=*@n|z&+(T2W*2YJm?NZ+)XXrAR4UWRY?6wuVM;oPcf-O& zWoP(J3UpSw*w$@fw+d6>LDq640afTdn2dwZ7y>;0=P(enrfGlZKpt>0!_8lQ6{;m^ z?a%t#Ixp8jm8cQGC{&~(5QE%IChj0*#RK$ish4_r=k)xmD@;bLcwK}}4-HmIGnAEi zAB4geB^;C08Fn_4L>_jIykeqC#k%+bYZ2a(Ao_IA{B7RvVM-XKp~;BZ6qbJWBWp*a zas0$&QR%s;!b4c_UWg!i7}ahKtt=HZ`1R}#f2bLc)7#$>$;dfq_H>X!&aSR_R@esL z&VDsTXIhlJRXOgYa2yd*fLMqRe`HheCdgUqMRlfHK1aY<`G_cl+a5#E$6pSbfHi5r;qB->T5r%qM1=z2xU$G7z{(c=mE&Et8q zI0hm_053piCY`EQv`Y0N@Vq1xr>ESMeYiUQv`4bd^zm{ec^%rW6WGBp?(A-Q2+^O|1J-o!<1?&&mT1p;4OkGaf>eF$m&4L6;-WswmGU| z8+3>Op^3zR3u0iLVc(%%iDlMb3ov3-G za52~5V&Qau%bWJC2M$+fRtLw_DrnoILO8uH{K0Sr+S+Q?CB@>(5S=-m@f9Pz^x|LUs6!YeWNbiVVW+3GQSHvzt{EzEm&-!Iy%Pu%#JMYN8CYMf3t9`xjZ!biZef}>pwWK zCpNe0D5furNM@3rj46D2MtD#oyn=Q57Seg+8_*&K5~PeXb_+c!uj@;LtWyIeN=#c> z8APlNAeA^-Lc>*0(EnQ8zE_nGa~m>>bfh> zwy4&7!?m56>V+g(>$gJYA`^But>{ws^Mm#80WR?Z)SE_W4<-<85g}6FwsK!{S9&O! z2~oLue_sR*O@5aSd4DehsecOr=XEox62%8v-D+c-T#4m(UF>Viy11p-H@q*dmlFLQ zJXH`SVBD@MV;~tGbGtpjiE8;V8h-LxvA|~KWZ2neZ2DIf;?0zMbJ8~D7tkT&i0X{b z^13hQs6+%DuX~4Pb`08xyQ`>(&6?i$JK|FUtp@=TdL15x${>*7wjD!kcD?s}rqVT| zSQ2~I`xBguu`1BtI$6vZ+%k+)kQ0V*yQ9EO1-YT-EyE?ez+r-`Jce~-*t zJsUGpkL9$>+G_3~M-_3M=*$y*Xj!Xl%fZhs^YjoZK2sD_aWUP$^|t*>p@K=Mm1;up zFS|s1>qc5LF^dG*{7CIX^C1atZxQv(yPPJDo4ZeHO~1tiM|j`;5*@NiywHDUeqrN& zWr@F$&590L4>I+(`Kxm5jNpL-Awh+YRu^1ekQ5PxZxfwD4z7{QP^%}tb7vdyp98@7_X zId&fY%vtP=U6i^y!ceYr6Ce^mEyi+li7*%Hlj8f+M)4DZRRv3!z1{P0GK3P?JQ&NX zOCYGd&`-CVYaCL`g_ms?5AikmSZ7?9>+kX>34(S$5w!pZX9~E5@RC+{trwa7p0;_o zyRpATec3a0+U9QUyY9u_rEDwvg{F9WRh3_e!d zYqI@fzRj+@reM=Q64D^Tn1pQb_Ow-$pTJEyDcG=AGLpKY7Y|)}UHKi` z(|`M;8Q3FIG!?3mMIpm1Wu&62`LfMx7)RMCtXo@4;MJtzIQ7wUQEt5juuRPwQoUeA z09Vhq*z0FFPjb`(ar=%%9iK&MWIa$Mt+ zdO*$4KH?c#-BI)JJU*_w6PNq_02P<0)o8A`;Lh>1BP-}j|C#uOgr1BqK_C_sJ?uMfgI_1EkCpYvUdIp# z^)F9C3V{5!Te-)74c%G4PP~6eel&fGu9=~<$;};9YoMiv zygd2WYgry+&OFC~x-S??*$!m)u)gt?!75?5zvBC9KktH$$fc);_M67YI~TkWE?c%T zw~&;yv&uwKLsO97r2O`zzko^OUvuCvx-~l4fB0as&Rog8x4e&760wJ>KgI=(#wVZw zjS>oBDsg793rHlxKYtyD42L zg9kKd@iO(xLMa0-Kjs<|W8WQmX(B7sa;z?IJc7ur51fzVZkAO7XIdbo_r@t_Fg^mU zqGrujGv2tRc=88$6h9~)3p%r}!d2;|iLeB)a|6K6 zFQg$4C@`1f&cXGr7Yk1xqS4)Qq<&{_iIpmT@4IGx@W2c?9Ozvo)4)ffL66@NpTEPtb#@wYNmpe z9^6U5_vM|^1$Aqau@}|uy8m3NJ}IWGXi=@}VndkI)qkqrEVSUyAOiNcz^E*^ zc=;3{n=rH)G}Vf~uo?<%5aNzBy`F(nEWJ=W{giPx*wSu~aZymKy3HUEfGSU-RsY5P zpoeExCbxG6E(Zhgf}YOwYeKeT=9pc!B3Ka^n^3Bboq`-oY6c`HLrFY`#vf6kXtq>r za`agZfnO_{{eKI0^;@T=@VLc{CbqE;t+kc!1LQO9EVaLIYXpUuv%KO2hgJ&B5t5$s zafbl@cA~cCWjgm^@mGUg3#K8p^~v3((qw$lUoX#Yc>Os()1VMaL2qpy@4CJL=k~cV zX1aIVE~e)uVFdeY#{jMLgCVva>eBmXFt{9Ie znHIlP+TnN?%gGa>lmHNuAPon1NPRxs#wt5_2f{;!P43>ShlzQeL$ZV?V~1QdPQ1J1 zphkdFBEhh$3^1&`be1))63Fz8wd)+gyxEF1?~R@p)UjZ$=&Gk}f+iDZkz{C%aJVB3m-APx|Av@{Jb%Q!zj54F1gH zVC!O-+K3Agz_CFgH6{_`;9$rBG~xf%`e}h|NjuH6xNzkx!{9mf#N}lN)uR+|w3wBS zX>|3Qp2{e*6^7EQ($FY}#tprG=Vl_(B_yZo`K8Gflk_p98Bn>5<~D2uLn(a{GyKS~ zngFQe4f)W*8yG*ENM)pMKA(5TjdbHCyZf7}>d#%ps6-~XqyMHZNStSIA(n7YTu6DB z{20_2=r|8Byp5%YFhqOk5M?$!yp$OnyuX}9gi;z}0c_xy`Nzr{*IT3m-u}k`pz;T<&9qNDyx=%)29}g|wWGm&yOiL2ay*O>4-XKW5K683 zp3rSRv%6kVrkGbU?Li(``gqzyVa0`k9eqRxV$m|7`Ycf}1-A5tnj+?gn#p@q#EVh( z&B5{7O)%`<`bKAPa8Ue7-w~?WC5XcqCGVV;UV^k(9v^BaIVy=fH}N)gCgvY)EG{Ob zEM8yN^>X^glp~l{dLBa)hY_{IPs8oOPn}-VEqpi`<&r(E|Aq>32b3Rx&+7Z}3K9kVtDg(8Qof?SLq1FpSBlz=#|D&wR5x6$x7NFRR`w~+2 zx+`Qw9}k33lIax^Jab+l>J$otKfqjrDAZ#xK}Cx;3E}qZuKrPpiJ52mfuGl(Ai`HEt?uA@^b)-|AB(eFO{cCgIG{6wAGH$L0#vTVd&_z+dhI%$1|J{#ugKl;ETi zr{~oUj%z0vI;i#1JO*aOA@`OtE+zb$eCbaxeJF>Nro8PmaWd>psChCElQlxhtG5rr z>O-QH&n*KFMQg+dwKG3ngW?ZJoJ!jDq{7aL%Y)?Mm2#ooxa`?K4jS@OLYWA;t+*R? z8LEFg#E&mi)W-`hQzHnz3=5&HC3tf?oX05jKD5lA- zW&eemHUwH7UNyF%UtXuB`TPM?QlIE2 zs4Pz1=UG|wnnJ31HQ$eYp95J!!EMpsmesc>0PF$b9K>wzD0b*l`ZlNr)tcJT_Qbo_ z?{~|STD(&I_z6H+0*$lq`eTARKnbEqD(T%9pIxqr0HdzA>rveuH!7%WHjL?!QNL$)MLY>!P@=pQc4V>_kBYT22+}`ZpTAL~DRL{E5pP z7FMDNto0vir2ZG4ljywyw_>_`(kk5=m6$HTEKBTeH~09 zZ&uLo`vOwNJ5CI9(@#T10`320PRHLF<*hnMZA}Mis}+6UvDuP(961z-Tz5_Y{m;u; zmz_z|o>kGqH&6UKi9O7g#cWsZ$j6KzltISPn7)!lsHIue#N@Bg4`$-QNVSS6s1vh% zs5ZiU5IY_4l{9NZ|5YsQngWuW37Kn6xM^Z*^ey$_w-R~AGcT2LvaIkfVu)^q)+6-e zHs`c^@~4O!<^!`JFd?$W-Io5a-S8APNo?KvBXM7puUmzlgo}FYg zHmx2#F8(Q(u#G57)e|F7CigU~pE@0pU2~LD<>##VV6*2z0!8JBLR`-O_T4swET?f+ z6=};Odk^or>asiTsp?r5#J8j3qRz^a+p<}kk3+Bp^w0J%>F9ehM%Li?p8jEF^n(oS|+zn`6W8y&J)3;m2#`<$F z;cRXdFa;k+4YgW&ieGtLBR&lubxmxJh3^E?Q+CMQxM+QLFqWCN& zo(`D8+~ynMc@BXE`|(><&w}?$<7Vy_i9k`To)*PRSKGIK>QQlhT26S`=G@zJ0`fAv z*`3I<_uQamUjYyiQEZ+a9||91sQKTfE>f>&E_9~$ZsN~&fB^S`Oapia>0TwCk0B*m zZ6#>3;;TM8HD@o4a|-43hSI)RzCUj;$TtEZ7M>98*>7EZdzeI&a?0YI9Jo|bTR*@)vI^MjY2h_$S(pxPHXKHkWP*!XuLQhjbQozm4`y>D$zt&qSK4ze_NUTBD> zf5yu4ZwWmI`}ncYqt}4e{^x~Uoba>7(J6e&)7jFN8_4d1n5g}N($f<_xR`hv;+-7? z_}Q7#?CMTI|2j^pRr&`%kPh;)0v}d~wmYb`)y`?%s890s39KuBI&_*lQBm6ha=4W( zz5))n3kf#|Gv29!5~PQCq;oC+UHLU8XjClga`#JF31cbbv8$yY&@T3yivm1O_K1Dt z32H#ELKgI%fu6CFYE&IZkWBU;F+*pbaw-0xa3wS`@JwQCh)z6{XmZ!G51+C=ZNBK# z%)KdkMSnuLab6SBp~%HWjRljH+8Y;Y1bKFr0S~*s=m`XDRJ(nN>d*nh7B#I^K4Ey>BGf;}19Dh$of9}D(UVe%rZGroNQbRqW|Wf2m{v>2er}x06haOn`6aC2eP)Yi3RPp zh}^IE=Rl@S+XnT`(Y5U|_9>}742XKr?*h;=<8pahA@cRd=wIk!AS+ZTRJn2vQUGpr zX;pU^1hyeYN-3N^<9Aa>8h%m7TzivO{5u44P8FdJrk9Dk0I_r-J50+%vD(Wqv5ybn z-@YJsZTo0~YWoP(q9W^8tnA?iyE>q~tiF2zXGYeurf-OPjLUH4GciecZ{4YSc%Zr+ zH*EHx3K#%##EDr3DChtBPl_H^9ni+^w4RrK>wRA*L@A26x;uj-WtpXI{gk+;&(14X zpyt;kbbu)kP!U>7e-o3%LDtA#mtaTB>u8>ux$?XXZy7P~k*r|_)UXHP9<6)U@IWCN zxXyeT_$jrHDpft5AaiHpT1s%jpSX%Kj3uLK=X!?VISy{UYiReRX`i>#B;_Nx&h}p# znyW(FUSeN*K4v(z zWK@l)`W(!9Txap826JLKBJJ@3#r zNQ2&{*YqrQ-_-idsDMN|1mw>U`QEii17_*HInkq~kM8VCYaA7j&r4Y=OJY7R?#tOt zku71ZBX&AyKt++H;Ge0TD&(=_H+=qUO62-6vxVMkhZ?z@H8S)h#S_%DL8`Dmen2Ek zZ3}PSy4gSSB4{fh?0EmGe#qqZ*{&7fPJo#ppSm+@*C(w6&rZ01`c&onw)n(yfk_#- zNC}53Ei2ptp7$POG)IMFDbYCPEfRz88SxjW*2P?P&D$|Cih8PU>-^wW@j4C2QKKwzy#G2 zbsWR+2@)&pYKWlu{1jw=hxlmh6EEk^m|%(WFGq2mUw@TKI!r;}n@-_VH> zc?g*XwUVp5qkl>ouB#p#-oxoj?VriyuLavVSw_U`rj+(73VVc`o?ZxwtFpXrnfs-; z{f|cH-ZKFd)uVIIA*Dv#fuUDB;X+9rDy8L>BAR#moKH6xty-D79>@6FAso;54Ckk; zaGbF4GeNb*g$9bjSt?FI7pMA@KqU2TRH=J*|X*C&l>qW`?`)hG5f*C_ZKaN(wCoV-^h&|ph-T9 z2KG60&pe-+I2P0D=#Wle3u9hOfL}xT>IJzXNnI{dYyM&l5#uf-ML$hoTN?pNTY%{e z3mpdL=&Kl;34SfncidDH_c!#i;Ltk>FwswLx@pQaF~{S^)3W{BGhTn*{6{U>@ctUe zZ#YlE28w27?e(|D&jpU-gRyIC6=K#KJ8Yb~bZ*+Ju7pOB1 zL+Qwp0Sw2qQW_RgJ4_=DElV9}2R^3`7$&u@gk>cT4@iu041uA4p}09CQ6i%H+WEol zsKv&7$uH9e4g4LFXktrbP{>#4)t8qHl?b>nd9s(;4ev8AEQ+kYTb%7Sp6jm@ zT{Bn;YTTm)qHLPmKyr3F+%B2sXF)!HqPOzu_h058UnadCa9w`viB}W8WA4EG9Ua0q z!Ar)jP;Q1wx-zr+iQ`of<$jx>R6Q7tg9(90zb;DsZm5u(UQ>)qA-f?-^5od9FaFNk z)2W|u_NPhVyg=|yL$JKPqzT-MWFp*C~%enl!sUR*{`PYPFtY$Di% zObZ-Bc#f&R&f<4#XK)aYlW;Gl=UT*xelv|>vX!%P;pZ^rx7nsLlm~W3^ ziP0Xi>YJ9BneniWy@&*}ne)imZZ9$6&C}mQ>Jl-x$&OwYFgh>SYtnE@Jh?0KJiU(MSElx zpKHNoSKQnC>^aV^!#^=y!6Q`(0na@jv^bJzVJ>87MI1tXjf#$<(p;F z{GA+#+LM>^G_>EQ#4QD8LdPEf*tXJ zF}q0;9bEP#_z3l+peMX6VUuv2tpcZ_#j!w;#f>N2>BprCwG{D za~`qp8MQFW%0B9uXA$YF@Os8g0r*WZP2wN))LKOzjZ zT+Z3l)it*N=1!+hTpOydYP87EtFEWNOXMr z=K_M_d{36@ow|~@sp@6I&J6e7m>+b$=@1W5DY-h^o(c}Y%N+tVpYxTfZd>7GFXbDKFxy4hdv<)=I20(nAE?HI(keW+it7?S z&V^^Hak;_ATy&+V1qW^Llx07htX0(%_Y1U5kJwWY=tVtVqw_%Dzz!+rE@&q(%v|cA zLOyF^CEsuHa3(b*bLv7v6Qlv^`AUU{M{~egpO-F8)BdUcbbKR+mO2svp+5CE8->pA_BEa>{YwL_wUGi3f5zTMLGzmXy<|T{ujFpb<+Yw z@Lr7s@_iTFz-r-4nE643JfJ2+;0?nMCk75)5dlG4(Ow)O>JJ#)OXD-#HEq zs?c{r`O<(;qyOBu5EpzLHcp}KOMCW_pHZkzCjm>)Mag|$TpiDq$ldzbcV6!iIyC9& z)~cfLAoLEg(fG#@HZlf%E>osn2le>*(JuYK3fr98i#N@h2PUv&?e1b4hU0lg{;X_{ zPUFmb*SML2T?WcuTJW8}r|{Ny^&0t=Q(U@*)u>}cbxlp%5%N@j=f)8Myii{Gr$NZn zwT}RqD1G2t&d&*q!0s4^S~i(Or9L-t>ROUQ-=(}H;b^9!Wg?3F;fhlC4dtBx7KHJ^ zeq$-hp6P?~=`y4^_^pMHyUN5?Q<3Pyr)}=Y+hb?YDEOdhV?n_9p@^w|W>Wdyr?&HY zM(Dz657|}hv({s$Ky!R(65*pH3E%i9CGV=?vm3?x3GvtR{X8jOzi>_sntKAqU zc&X#jwdz~CX9_-9TA1dyV)9>~B2pytQO-#nx)o2(R07@^ytH~1Iw}jUlmv^Q?qj}g z^`xxxTLSg5*lQ-CWg=IJ5};OlP*X|pM44|%3lj`0y`+7APWhuWXJe;t&5v3&5_n>C z(OINV9~Glkhj*F}N%z<9Qjf6`>E1(6zdCnSGMm~NcLh?FUer^M0Luzs(Tw(7cAZaO zkQ}FKCxnLZriVFLbrsbCV!CY-Gst{vf^_-&=BBwPrB^LG-}j-}J?IUb>_qzCr-snb z?W`e(0A~t&e<@}_v8yKdrKfMzeadR*h(?Zp^N@res<(uhIBZ~CbH9P_QOqaeV?NgU zU8_MZzd?b6lazTA=h%WbGWy@6^E>4g^K!)Gm|Qj$Sv^2*g9*e!i`4MC0PblU8TNL4 z()qy3sBP+E&px50$*5E4Gzy=^SkBZ0tVf^03kH(XSJ@`|i2Gi3!9VX_H6PFMA$qXN z@^!V&)j&0t%TiyKh%fIIC`K#~|NOpBUIGy19j*M|jb9%a#|Oy^XV(S&h|^&n2^HNn znRs@+kwvoHjE`Nd_6z~T&0CONPl1yP_`UnYwmOxmj6$M+YLD#jdVMKuy`c4?xEDz= z?D(h3VF&c`OFriG^oYhps<6OdjBr?LZ>iz=B97{L)ZPQ;hbIQ5%h8u^uIC~Io+*LnTDJdAt#En+;j4c9 zp@vC#+8kBsLQg39r1ZwA3W?OAB(6C`SP=3M0Vv5O<*XG$=vVVb_1c}dSU zxaof_Q67tyUyefj2-oWm22Org!N~qEPu4xEz3|fnm3uqzFF621u?(gDK4%!U0sMtgz+*#{BzJ{DHz<-sE$zs(DEP%Hf&oX320YoV2HS@-ri z_gi;C*%(zSrJX4Q_s^W9;BT+i44$8MQ!LE{o;vjxd1iqSwdet#w0G37sZgLD z&u>=s6Q8v%R(P-Q zAV=z~hF0IrKq)Sb=-CMMu<+%tWN;1q3B1MA0~#JNg|mci+#){}j!152|ZRLpRvSSv_gy zZy7o|+153k%nmy~O}clbY!zHS^?>hX#`w$QY&(=@XK+-A6(U+U^hHE@@9!)JV4w;4 zn!FOVeJ2e!x#vSi#a<{#+=PY?9llR8j(d&paOZVO^9xq;2hJ@fM1a&|Ok?+Y!NZPE z_LpIa)8%z%#klqSX{NAq`=*)LREU)0_|O5rC~$ts8tQJGc&~jze4CG@HnLSil9g1r z1mj##Uke~p{#LX1qRN}9Tjav1jH%r5iP6_#;GLPKrDppj`n_rYgHk#9mh4fj8z|lp z%b6XcI&`%8rGoREKi^P7zql}G+Xo{Agn6VhttFR*%#XLUya)&W#=!r>2_Q zh^{NX08AXmv({yI=}vEoz{>Q%khL>##yrPV6Tq2qIyv{W*HL&wI!*g(aM2b-k_;Ug zg2eH!`lr=^p0S1};ID3p4hH-Z#zZ-`9i3IQC{Zq{Oh0z<$z@K>Z;WY_;UPxt(~@FcoAbcZhXi+qO?3^?kcug zDb{C>a02XQ+4eTyudNc@ZMQyYeBi;hC65Q$1{=53KfF>*a8OEf)J#vBcfTzmBm_pk zcLqW%^>@>f4)*wfUE(VM9BFbgiH6+FSKZZ>_xsiQPuI*;-TfqYa*-^1GazVPt5HVJ z?HH%K6%G^B;hke^Z(9o=a@Ve zlHq3E(9xD@ldfl8jb}HCVutPjFXm%&-cVH`z5_#Icv@;-ex!YGoXtc%*UDh7(yYIR zp=9~np_*7DAU}+8J+%|kE{3sc`j6=ZFPdy|y223+m~{?ev=yn|r|`jH8L~2DgCa=U z%SM%yIqSbS@4c~ctTKHH-B*s09h*^|eEO-`(w* zD7=7=y({jhT#v2`{rJ_wlP-~aFtXMsy8ef(qwFYo-BH|DKDFzC0D|K{>->?i;BTjhs^?r}YkcYN%8LW|v5@QVwOz z_$|nkJ6pyN`igsF$XIk=)75*7BTrkk#PTA72j0dFPLww$p*cq6$E|wXCP)}26tkyk zk)HH8B8INOp-^Or7T?hT@(DmHN^&zLHwIVu2WeTf;B#$`q zsU9bfdGj{Q8XBrDrVu{)-mA?trJ|(TEx(+Wme&&;`lVv>)CWo#T=pp=Luav~$87)E z@e6$iXPOxhZw!gk2`sTCxe02~Qr}4)CopobJEMS(dyyqhX{`_>BCZ{07pwsu{$ zH0Zg$qr$_hy0;|HKets}&&;5S(nWL7=zvhN zKO+9w(@UOu)I&be=WU-PJGKAicxU2(6* ztPTAaQ{u->1+VgBuO1XKj4rnh;y?K~-?q+W^X9JF`UGy7L(IwBW)F$>c%Tdn{K{VY=8aA?MR1gmzDyRfd1!ASZdds8+kAz3 z(0T=*2j_60i)8*pMT$Ac>d(#>D94l8m-wb?xL^42BFZMP!R7_bq@Lu=>vp&r1(BGB zW4?uccR-B~o33CheM|C3lI!yeHT;}(wUy$(Ug>At7N-3$%>F{zALhr$2A|3Y*44{W z5*F@rHb#|Fr-T6zpot|x{hjp4-6Ac&YmIvk?fh~?B{n*wTu3EpJF9QTuLvirE{lS{ z=Q0`UW7GyEHojKU^Xixeyx7lo_MsdbDzL$U3}nY`C;H+z&c|_TPgQE5ciK%BdqgL- zn}jOw8CEz`ryWBjKL}E;MHXi7?yQyhd;9AJ+OGI<(0#4`tl1w#d$tnd+*xTFbTA?_ z@#3D|_xUz~rA_tjY;%KA)@*9sX<9|k9^Is4+9IET4BLcBlFGrs{|SS3?nYPGq~dn} zB#x{2kh#)Wg}>dM6z=7i>b@U-=R&Mmj5$C)EAE{f)ZNo{p@InI$!I~3j6B|*UJLkz z9d#vLXd~H;0NtSEV?%5iQ(SXxnx=J$Szlr6+oJTZNl4bcn)$1i7B-u@laQK6H@^MpVxvYj56COOl-N)zLMpszLH7tw`nnXuu9jt8h zj1ASBZs#X`hQ$I0KMNPUswyTm#X(%J4+tPD5~TFkbPUM$I*jU&fgl3qM|n=A`{x~5%G5S^b0SqZ>LUq52Eg>;k0coH#|@7V7m%4e0(0uRH3XcXd&VKY@)d9 zf?0PFo{I%U@Q>2!yBXK_4LK@#Z0(25fFuMNp@^)ZbT(^uqYX)V&4SK#rXQ6Rv8$44 zxjktX4E(l^)hb1y_sAnvVpV@8d~o9jaenaP&?=B4_1dL4#aWwSvv5&qoMVTh))I++ zA84Vdz~egANZMG#>;oJ#@56aiv9h<+=>ky_zRIHGA)|_09@bYY9f-_*^>TY>iM?72 zE(R0xfo*a^f80xyVW2V@ry5u7ut@ibX*0&e`KtT1&|hM(u^>;4D zH9vS}y=}JjMceX~D)&OIUW2QN)uU8%ZI!^&+$xO|qqv;6W^4^p?|83Q^oj%*j=q@0 z2C;%LyfQoDzAMASgKV|SJF@!l&kI8}XcjmR_v+lvuhfi-K-+1bPNPc{P^|)6umFYG zM_~9!7=M#e`}C-`vl{*&L^xj5IxYkm_zsoo%%i*>8R9MYxmv7l{nYt_yTJyhKJNrx z%5O@XZ*bW{m-^ya^-P1VXw5EOrYLoF7Q)=n(;jTK4lWoYK zbWsc|d<0(2tP1oY0J%@F- z&QJR~1#$nj-DGk^JzZia()X8jby#=KiAG|Rt%~khSg&o!BtiKCHT#;}8!wKp zK1)PC%91$ytZ;+>^v*TiN^6t*FcrD?%dWNew}#N=CQg~~3}%ngWeqN>cJe-P6iFTU zfmlA<0EbP6@J2}>V4<9vN^x|P4cFtX06#6&562as&HRQH>FnqERRdhHh#XHir*GVA zd%_i<2bHpKZ4CBw}Zo!sL8+|)>1)fA))o1T)qErlm#(WJoEjL{ z1i{RC@MkM(?bjWF`IxcN6qy}4ZFWC|+O3pc^)jN&6erJ~f_%m6I-Bsq;Nqyv_%e}K zhQl3@A*p3o>TxdVbAZMm6T|L!y33UkbpPoKrUEn>O_`>myLq3OLKFzmT)q_r$$aPE zsM#3zt1WQ2apQ_Pw;T^T3(H5Ckt`9(O+u1)@45P&vZt#XKQhsg)O=KK zu1rnmF6WB4ZB`#F?PPX0BoYY*0{4W89yszK6qp0s3PC zZ;8lbTi<(>IJY0ZWYhlY2ss#}aL3^7zF4|)*ZIC`?c!0=!-cIJJl<}o$qRc@Mf+cC zkl}Ftv^3hsIk3h`T{o&oavDORfXuFYwGPf|t5-5jqoynm20~5+?Ck^zT8nsRcaC2a zO?;Bx0QlzFN&*&Rz zXuv^d*xFK`Sao!v#^ zCA!*{rAwVn7hhlN%?U9V5~4siC!MB_e61iU&Kb1)y2Q$%_?J>~7jB`_tuNZz-#Uelp6~rouJ$4#I{5=a4$DprS9Ia@ma-ofEt($u24Snu9tX}gQe7OCeuBT)S!+Z z!X?wBoAcf#pWn@)KwO-|#Wm~QhdiO#L>D{JsfRgXDIe5-s0=Zi(4KH``rGa-Dh_oa zq3dVAI*=E|wB^3fOLf^h=XJ69v|y|qSkc>97(3)#duScWlW~it^Y0rooP#u;3bcb7 zC<$2zj$wtbjPb{i#1CoWg)ozFyGF-qaVPzd`~^LshuxS|$F+Iu`IDSOgEF@MiPo_% zYM%`UrKPvRLXVriv)yP8f)S0_oG|Pxna%TKvTUY4op{3PANe|AaeBN1Dapc;^nJY^ zDTqAX^kld?LLs4W|>99wyUqTOy!Foyvrdm*40b1w}H*+sz;N1RB@7>Jy*P_uGZpp z9=`rs`}68AQI;k=n^3`u$hyLx=nERIQWmAZlyWDwZ54jhb%Yx>-Vi*Gm|m}OZyVVs z>qZI^NTeQa4t#soft>b~I$}oWz#H+Z{OO!CDvn-(!)9Q>4yAm;th!P&9=B5Gpc^-~ zl85Y*GkC%gX;qwhlKQBPW#!788_Rl$ey*N>Ui}`;&I;{Mj1NtSRM*CQLd*Mj1 z;)=QaCJuFetiQ@tW=~`%gIC}hw`v{PdwZUuzP#Xx4aiIrY=4!I7F!JoagL!hT6$7kHm{paE=10Gv5S_UAT76 z73E&s3-eETh61H(U&|vIO?SiI>j}_soRpPrHFj{0P^|`gS)ZM-w$Br#5Id%+T<0pM z9}(bq{8_Par~^5C6+@sKX_${Zb+Aai_z~EuO2qULf&;tz%f%8yfZ_3T-1#Ln!&&}Y zMz}VVeP6o_HF+1eDv;+Ve8E}1{`{HxqCqx6aQkxM?)%Ui%rME8rRbgDy+=oZ>S}7a z{P$05{EnZMCqva=-6=a5^Cs7||FIchXfhe)pO7=0LwTo{$n1Hwm$O3Z5Zr?Sr>o)v zq9Kv1S}zCN9{#HS5nptjuiE0#G?GspLokeH`aXgRO>~oKZTrJLY*PK1akD|^rpXxN zp;z!S=u`KxzAnjgepMHLU5?0=cL4{h{mFx*N4dftW995`6|ugX!YL1{*pE4*&9291 zHyS(iWsV9e26AJJO$>t~hO*}HxVI$u;ccTL-kDLpADmLX1I(8+xWpAWlKnLZP*E5%eaJhQ+xlItKx7k zY^uB8coejXjz^~1x(7zLt2e^`Wv;>J`8fKeDm*dvz7Aq|B>M^KK zwYIU(l9ZUrI0j#d_d37gRx`qUEI7E}b#BPkJ~(mM-S?delsxs6hGD=2e?4TSV4kT| z3}&fM@K+cfOZ~iu*42Y|MIF+TcV;s_RL4dS9n6_xwDyCo%I3`FLnfEvJ$Kh@Dvqmj zqY*&}k$@PH=26nF9Gwm*D2%-kt@ReB27^EKCv6 zpv|Oc^{Qd`lX5k^3tD|#>y&tnOA$g@my`l;TX!w^l@i!CcTb;e&D?HNQ}I;%4g$}H z`@)lWTjnc9NAg0m+j0ky2xn|AH$_R(4T7$LK~?WH>R8$uV_5i?G}{sDhS>_KhZlJ% z({y*6m%O-bebut-voLukB`n__z`MI_a*o$WeoUFhCoD=j$95splHbR$Vd~BC1~t<4 z2mvI#eS4UE>J>=kZWy9iY2Wxvs(xqboykYzRhhs?kME@Kp;7fRViH&u^TMC`Ox2VZ zH08azO;F++VLs!3pKXb2)o_>-o8i$;$6A=u@Q3M~)g=brn3f;C%6qHV3!T-{!#R?? z*O#3VGU%p)B2-#laGu4<@3&1yX}Yoex?bZ-hdib54?3}OiwinP^#Hl3=!lBfJyaOC zX}1=FwS}Jrk0#9rU{RVa7TtH@mV6w?xAtWZO{sj*!aS!*$!cq7=xOjF!9aPuYOyOz zP@G-;)V_?OOU=2PT0Hr9k$mEys=a0meau)!>z z&AuDX9mLTF(`|0A;R%ZltF8@h4Zf-Q(KCh^r?g--)J~b?*aM{F6gjFRhCR>USx^y0 zN8?}9)fTeUFJFudte}3jVp_uTLtE_lTia)%ujXHiD~g}_3_V;tI_Lu;VQD%_nLTx} zd+`?B1^ZAPAiCtNLLoYv(ZbDXF$UUM;7?n*;#%&i<$aQ$*fL4}z7@}<)Oi(SlkHW- zNko>hy}bJeBW)P8U0|)oi%eKHxM*6um0FcSaP7HMgNdwQ$|+QPIpY;SXHTy(=@6UB z9a~ZBel2;9!5j1uCw@{96IQ%~!P2+{Y4YS|xdrilOexcPbhmndsibQfH353Rz%Zjq#H!{>e5{o0szX&`sD zkUG>-!I1H)@+mR;z{rSpBA@MID-++4(d$0VXu+-d*9Rm0V#n7HYEsN0U4AIAdx%kHDO>vSYMvT}m@W0DLh zV@N#h4$l$SwJT+W_HnG`J$Vcv8~w~e0yh%vK1-jfN=}@Aiw%ukG>tD9;&rkAk=;X< z#V!`cf-8EJJskoS$9vuRfsiQ{mJlj-oK+@vU@qG=#AwN=b&S!;cCiO%v_2{G|GH-s7mIb?Dlr#;OzJ~#J4CyIMz8c;{}^s+>P`sE=u^KNXIC&N!^;4?!C!s#Ye z<~KccDN`DQV7Z;nV_%7uOEYAEO)3xPX4U>hV>7(Q!_FkKp zO55ji&gdZJ6Ae=yLQ0q`;bD?w!65dK<&XkjN#HkcVxPNd=vPIIUjw zCj9C|Yox{83STYz>o@_oeqVQ?{nLTr1?@zYK{o%LNU^wB3s^ZEDv?aH%pdJ?q@IkIDh=O;KN`N{F36{y~k>glB|+)dq(#?{e+5sz5?W_&xmCA1#8M8G%&)5C&OX{ zBtKQ5t}qln-Vsvauv`KzwX`D1gCLEOjT_M>qT|}nYqKO$;Ky@S$)1lN1|>2UA7eDW zS+5+AZF|P}&?c2kxL9)kCqY2ixq;ZOu?|(=TgDiUNU`nUc*^?2rO>?7pFi?khrMQ? zA|ed=yDov((bN%pr&L7C`HM~PRQZ;1YEk4thI#76IZ<_y=2L-E&s3Ma}p!P(E_p}UWUR7&XoB66W=>OOn+0(DvDZfR#TgSj>VSPtcf{n$( zIvm3L?)CM6eBGCG1^3N(4CLNT3b7;%mz6{u3-0hx+LiRj?nel42hRWK=xUjaez#K} zVQ!2{a}9$)iG>LWrDiP9&DW>zXMfwL0&HxNClQZz)|xDu6Pmp;Ts|E$xJ8UB)cacN`QNP14Zm6w**P`sNrq7PCx=;`%!1Q`>@$4N>1v(K5UC zC^28B>eI9Bhn=tA)+Aal9HnK`DX6T254J8!Xhz1b4zY`65rqg;!T3+gFbpX>7T<13 zbiIzn8;ZP|TifJ)J9!!-5}K^GNe_GlrUWX7yc#Y%bo8eBk0HZ=9wNzx&M^)^(wh1z z_K5FxtR}+KB@pAYTTe?yf4}oZDYLfzlM5pH>mt~k6|ysw`uH0It0jHF9Kq2eJf8Fp zql`hI$@+D|ZRgHhC#&&~52--2lQ9WQh26+0qKlNp>5mEFP_*HddtjN&BHe~I$MJ*Q zfG8jVh9op-TQ)qt)MzN>%;o9@^3%}O_<}vO<7TrocXx^N5q(yuq_0zgk}oe^T(uc``>C!RKyBzJ`>w|qf*K3qUAv~aJM&GDP~xSAdby~iGBX(rYz@lrB8j2=sb)7+dn zO>BOx0P(o!q=F_im{UYw&a1I|*C?}ETwr}zV@Hd|7WZ@)v!gAqg zRh}&MNE8|&?8k1c6W_;t+ZKD|F3`zh<$Lfk#2BK6=Gq!-WRLp`v*u5yxP^7Tu#8tZ zAstMf;tn&oICb!7y+ZDP5pXBe8A>R{EYUO48RKk4J(u;~cp?S`A1j)yXH zLjy-q2=N2(AkH5|+Zelr~f3y}}{DHe%p{jMBxra8!$Cx-3o?WSXz77p;Zs^$3a=2O|pD!q* zTG;zBC*wS6V50pO<2RYRzltzPZFRy-_+BV_WPONHFd4^iRbkEXOw0>J{H6Y zjjpK|iu63|*NNGs5g9;ch}{-S42N~1GuIRONZ}PI_Z>q5%Os>Y^V_t)~Mc=*2>-c7NgGf!Z6c-LFumg>Z;gRv5UJhu*SPH zP_*-~Bgr4TgaIFM;**Lm{8|RCwzQa?Wt5y$?2~D-+$O%-rD!x2C(;d7QjjsG$P{Bs`4j-EjoNdJ_V!E&&d;f+|1op&-3mKw}tb}DPJeo zD!I!Dt%a+}b}_}YAIq4<H*m5F_lHYH)+I29~tQk^9B z+>Fk zS#s{&e5;0q!H3Ulw8?|1D0fG$&rgf5jH>Uidt0Unb z$|T3Onz}K`d^3R2C)>2kH>mksFX*E5e)`?F(c?evnSEoms{UlCgg+Le$V&0c*oK0k z0qBx$$HbV5cHxBU4-gmVr!hOwuw`0w4ZOMwD~+z64`t#augqQ--0Ug2wTG66uZ2c& zAZ?}+q}n$~zsqcMgWwF0sr$oix~;)?*44XR3ZtqdkT`I0U)SZmlg=IC?-vP7$AMkQ zi`QP~{@1zB9w2y8C`!U|I|K&BRPuva7_i zac6)Pn_yIZw+BpNI}Ac_U7X}|VvvUQlge6G%ej}M=DGRtcN!R}pG<`qo#&@)Ki9Co zo%CL2dV4$x&fvooE2RdD{jkKE2u#Xgh)bYOV*ktE?(F5+0xE@etOZcIde z^$Hga0@*8|DlOaHcBxVYO58J(1_|)}ZmkH-MYFk=(jT2GhD6^42lm)p95}UpE=Qgk zav@KTgpg1Kz#J-aU_9A|^!b7^heokuHTuIa>Ow`k>%t5S!LBp2?O%$a$ml%$1J$-1 zLjaI3+?kW%bTx2#~OcxqG@tLNNiR#mSC1|cCW8bTYm z>QhOzGU(7p>S&{SPR@MN6kAC+vqAF=Q)x&*8b*ijHg92f+s~6%^BdC{yxen?! zA7ii8@sk_wIk61cDDkhYmfhZ$d)mmMfh|;U6_Z6>xZ1^7jiE!OUFPhQo3RVFM?d`j zJ?{)l+`$r5%?1Nva7ugL^`nnPE2 z)wD20VZH?IiPdz_%N#q}YpXY0S34C=x1B>0#>gnfK(Q|haO_1+)c&A8V=S)ibRwQ{ z(u3$;>yd-{_*l8}+wKq2jKRE8=fEnt`W|*+nl+3@R6XK9sVAefFC?^0WH8BmC~)m=(#nzoI7}@Da9}BHSBv=&c$%rHQyc36@8G>pyrB9 zO9kqi*<4==Wp5ZwXX7WL5F+)yiXLf)&k&++HC50Rj3DDLHz_l^OxzB@tt zJsl>;B(jN@WC9?xAm1xlhfmUK>jp4~qG(X_u8b&=)Qnt!e0*pDH8<|zt6cZ9mUgS^ z&C&NypYn9WVY_#51FmD3*T=mTl;~)I1=2ZB5pgqz+HMgy{49}*&$Z;hEA>I82^MPQW1px(p##lOQ#emR;R-FdXUAJhudz zR;6RFW3SLQW?5e4-`}M`;{-l}E$3ZJpA>XqDzzc2xh8VH=V-7Ouk3!lW2yGnQ!wyJ z^E$_rUX;S-du;TI1AeqAN5Z49dIe?pr>vZnE(v%U?(OyLS;o|lB$ST!5jP6L#3FeW z)tzRIR4clp)lN0X^fau@w7R97SH284z!1B`@G1M^gcfb^8bxgA$&buE2C)z4m~S&K zl1Nf{gm718Q=GC7g{r95ZsR}*u)-No^`-1_;zQp*DdllK$jr5ncDe5=Rv<1o)W)Yy(vx>(aJ0dsqKshcqmZ(!U3R26_-QJ zAHrg^u#aMI!P)fpI_sfNOul|4a?~~2c#)UvuCEax!F88>IRuT3VyQytzUA6gYL-d{K zFHmLnP^E4FYdXO0NA=5)!aQHxekpds5_2we3zR034j_w%(1=W4-Q~cVZL@Cl1 zfWCdn9@hXigbj4QDGI|PR4##rF|9E-R4nY2^{`?Bd8P&?!yhk_NmsPcPJ z+l6Lxt>j*L&ADJ=H@vzpikRmzt&aG%{B6e!)ht?Id$A4JU0>%%y1Hng?Z5LwRYW>CHWreT0 zp3G-vh>h{gXgMTV>*1wfdR+R4P!llF0G?OlzE) zZ+6v88wa4b0Am!s$BH$hz;%aAE2X8itkP3wk&Crfnx+RmG)}X9;2>U|bSWCvMF#`L z(81ZTBugwQwOsW}$HOLlG?Ob>%66hj?}Hx-OT%PnkTve@-p+Ek?8QP1`5GdKLS|~b zx|RtjwOm{QEvV5jEZHJ2^Nz*5DHL)^X34;0Fq3@G2i4dlgrP_w_yW3htI;)-41ym9 zi^ME>cDG-04%yU9n{Bg-^Rh}*M>UZ1j0wTK(fp|oNF(fIgbnfwy)I>yegAVHoT3nG zk>H~LIMBirNp9#N_;PVAaZV`J#k=oK&3%Kz+9Hwk{z`-DtJx+;@o3Ru>Ouxbg(`3!9&Az@+YA5@D@5NiQfCG=kyRr z06KPF0sWvB#2g=0khO{hT;!h_xPz*?*j1cSAGzXATJE5sVbCYsLqk~oF^(XMQ3zQv z?Tkl&X(GwwCU-UzdxVCt3tKVHN;z)Vct$ zD*@emiu#wK;PCr^0p0*bKarDgvb=}vz4}Yj{&zkaOF$Pd$efNrIB5e(dQH*h1BKv! z-q!@@RrRe+1tnR2AGJskfKz`v9o19ia`wMJs!(gcq2Uge_{UE$eK5^h$kqJIc5c6o zhPVNsP*7B&{`>H#-`9WwXQU}+dD%Pi_t6S~LB#P@ObV))?C*2@6QlFb>i;*SBT5Zn z&08BF3rJ?a{($en+|hVVfbPUZ3Bw3M;tUQ~EHBW#-w7H@6#GwF{v z!R&`9Fu;F3LUpeB13sUg!7!xq*?fVnVoQeosAXZH_b)>EYe{*eU~gtxmZX1d0PLp= zMQuaT^(YPY_sNX1K>QJFM zi1xp^_@vV52Vmq#waYhH!NFIA?QTrBB-_oziooh6)fn!yLQ$RF@7MDcEK3@gb$fB^uyM+i1dKyUEkPcXq?!zfN8{-W$ZaD@bTqj2CV zG3P%-{(^(>-Qyk{08yYlcmeRH63|lqJ3CXE6o=*#owHasu493xfUCc)5Dr9AHb&yV z_`ih*-i1ScLjTK%KJjA_d5|kERiS;#B#>}dWQ8U+M_ zW3hZqR*2G3en0zv%&Gd40eWr){+x5q{x@RLlYqyT8IlXZmw!_MM3@Pn>3#V7+gsU? z$c(yMg7At&U}&LJg#SJ=Y9cLFU>oqh>H8llgTV~JIuH3vcJY8-!$mOI{58ww-;ERi zVdWSeOZi_mViXAu+Q*paF!r&Y&{hrv^6x7EwLnZ2gxqNqRN|(2jE(jgkNiP`$v?39 zO_lf;^-$kd02_YHNCe8H{s%5601N7?K`QLL%rJ(pI{V!BUq(7kVX$bh}fr&hD z$^ALjClDwhmGbcK*1rD&a1%v!{@0fO=57BB=myUHQ}k={fBx~mxn}$T2~0)OijTaO zaGTv2U9|5^m-siRlUd-9y~oP0)a8yZ$WAWaN02qClkFCL`7 z1>3rf(>(s))o;B6aOIQSXKe16_m6M(%t{uv=}3x4i{RaL!h+S z(4K?iGOD%UKky<2nwV6twA2;wR)83$vsXh}<^K*F%t4STM0AQ`dYeQ*qx$!)%Wt2+ zYE*zi_~&%!fc?@y?q`So_wm2{xBr0S@?dBnV5{harZp%6|6_O@NY|f_g6IEVhMtr1 zC>H6d&q4k*ybuE+u5bmbJGj;W+@uF*DDz^m=-;WQZnSt+E|=9I(34p)u@)UE0HY{+ zLgoM8^}!@jR|mR?UC=P&4*&#&1B4l2B9H{VFIh1U=Sq0k_;CMu24RoJk+B{@kdL|> z{r(<;2rMOntAvCRgNbA9<=vA%focuJ$m3ePX%wo6(Mh>I?|vB)bg6M^aUeS1&ZB+w z^1^eBSX6Go|9w={BtfcTN^=%G>=g>GjaQ_Dt{s({9890-*NFsJr_s-u( zqj3Oh^dc#_l7o@R=VYxaxy~4Kwrta|6DdU!8+NG8#f*N)i+>J`ReHoT83&6+&wLNh z?|f&xSp2bPS@C&{QN*?J|FcT;f|l^(hzu7x<&42Q2)5(a@@03|e{oC75k;1aLqi9A z58DQhZ}v+4zQe5ofYF;jB4Yo`?H;3czL)*$|AL{XCIGI7iCp{NQY+vExYAj(#q(c9 zX&n;)4ioI!`zYB!Do+!~+7lpj?H@#k<)9>lh%X-%u!j^qRF%2{F0}ug`woyRQIS-e z|K$z{I&eH<#7v3*Fmh7$^q2GAp{?D;sJG?74u!t8sQhzsP`rnY=NpF7K5}OMYq4T+9DL9zx523U&bDV~lh_a5E@1p#hsN<)2MWkT4Ch z{#e)LciM!k-9n*PIt|zk?zfKnsP!IT+|AlpPZCGLU)E?<;GSCBnIxk$1mor+F^uMF zT_|7{{^%nEeiDv$Ay{_X@1*!T93ta>$>iagP z`&42i@-ow5MlwJnDQK=o{O0*4yag-=)k{$`?0&cy$}D1tvsOw+zSMxrlyV?>0R|hfP`Zg$ zm(a^^P_kDqFZKNh)aCAdbPDQ}nr@6(mqzWbbu{@nWgvQqwz3iUx^XT1Ip6C?J#|oB zZ)qN*ObC0%zhuCIU>+D)ls96sYgiyCBOlO2EAkcQDv(Jb2@2nXq@pk%oE}|sKD^TF zK@17N=1qAB382BT)u4KZ^lpAJV0H|y<6hYDj28#^RxIp^PK(i3=^XanNJSiFNW7t+ zJmd#6!5JD4P~=R2cLyq^wQpOPRd*SG5RSc8uAV#L@ua$J;$_lBIM+5%xw(L3{EBa> z`3Qo+x8({H&Qo?Hj`>1iagL-V%S)ROurpJod~-fIGE@6ebTQ_6NQF8*W) z{3`0?C&)((gAWXx_4HZ_s~tLt2)ABHS03Bnsz|I zw7TAbU~TpLAPv@f9&%t`Hhq9rby!QTf{5TM}Y^*~$m$rP@#w`%^jIH=O_*~}AeX|;-;Q4gaIT)Zg z+ppQq3cRSKO7RC}-3$Td+fjOBf((q*q%pdT_vT*-^0M8sREJsOp|cppBE^g^UZ3WA zJQZMH?1INLHibOXGb8O!GXXwf^y23qBD{8ng;#^w3ho&M#IA2=GOnUSENWW?=hJX#(JD2hr=!Ht&#B+7i*t}0Axx!_b;DA4Y+%uRr_x4=? zUJx{CE?nHD`M&+-Ft76gNKvbK@x1V>IK`3|EvAB7@q&at9Z!|T(~dSu+kNcQ#|hD! znn-O+)rXeAP%r>=2PwZSPZU8A8lkzY_IkjJb|*yH2$cJ8T*=PPe833sF2O03i803e27cQ5t?-{_sa3_EVSXBUYXbsAwLPze|Me z?iGLPSkW}))|UxZt&i^_{5&HFZwAEb1kS$5FyU{lK)8+tQl`{KF+ZWYMxhKy8mPRN z*40!Jd9xM>si5FWw!_MA6@}H$20&QmX~ZP1A(helTuvm_SITeG5%6C@~_?k93WF9kQZnv9JHnB=EOnF82#V_TZeOq{pu^&-5Ow;Y!GFZc(f zw$)lJfvC%4L>MOTaUBu^20&Z%qC77D`oR5TdL%->&8*|gt!hopYg!HOmTwPXg$CVF zrXj;=eH1J+Z%Zj`5_DebrD!x(8|J#B@!b;G74kR{X(_;=aT|y%+9I_$10HEE>9E*x z9s>rBDc#ILgBxgaI?EVtD*(EOivj050f= zQ->;u%iG~zeFq(?cdUCq7F$`9-gq6ix~R%|jV8>aE6>v2%2Yj-JIhK=g0`DHOIrv} zY3jc?7TUfI&J(5f))#*;170ekfFnaBlNX(s#izs{#Np0L z2>KfQ6MZdN!)F{<+`Qn#JcbdYWHxfsE72F4H$ldZe+1Bv@o^k67YONVL0sK8+`49B zrB|39Tb7iSHg^vQn4`%T%;zKCJks8!WW^F{X)j&%$ubnkGTytvw^xH=r#)4E>|&Z^?qZ?9fE%nd*%{8vPbDLo$(ZZv|dkkIckik z#u#y+Gx7F1a6;Sm@zF2thO|1tEk1|F&1&h6$1Sh$W=G(lMEr~!TK1)p4VrUN3yQzEpQi>3>>N~FSz%nno1d*qi z!4RYP2Z~it+7oYZLSEe6Ontee)*N$$u;{4~Qu%@NAhVO#%txM4Gn<8D-P;UuiEf?p zDJQCv+H!28fG?36!fr#FBGEuA>;PF@-`YH#sa_oj>6kTrdXvL=gBwZp5rLD}YU%3< zK8btO?Eie=)!}Gd@eoFG^`G1Osyox9c~~uMqZ^kG6G1$-=ysna z#+Fr8nu5P~8RgkKNG~bbNQ!%t`FkvK<&Pd(WgM~@j;R6ukx0bFGmLBgLHzo2WQ;I! zqW}CUDy;X9|C_1hhDD*uAJ$!{1QIru*uPbIvG1EfADf$UF|l_9KEw@Te^zjVh`%Fl zJH}T23UDg;GQsX`(qsYW2vKCAdX=76$7~PXV)ko;8j|p+pHEoNUd=G@DjJ<-@hhLl z6e>ogRtkX4gCh6(R4uv@|JH2^&WIUf3D(|-a`>|wL0B1lK5vFZJIS&Q%Vjd{SvFHCA(5ON>0jM(ak zdE+u_{|u%cV^&qe+%jIiaYiObG*%in?yAUkk34FaE}4+-@6kEcQ%N-ZRwh>E4koM& zLr!fBFl%-RekWdMKU$>YbMt|vX2`B$c-v+`m|;dP4cgQF7&Rv z-z5vv{LM4T{+rKlp_-fJ-DUghWy+P=E7VUmTa-WY(5_)q%K7FUmG{LbP#}OBS@hzF z4qUa#eU)eEd^hXp)!_O|OSFSqLr$~-e|F0KlctJzO++bwM60ic(vpjA)Ln0#hIB7i zxjs}Cj#l=|tq#*08QI;`T1tWi}7Hvv%|_e5AXazy6^F;`6Qh; zE7$nvUNmDjXj<(t6=S!y3#X|*;KD@_2KPMxb$bP5_0<4MDm})Dk2lWCNRuSH;=+r; zX{}amIqImF!EY>u_3(Cgw!wR%()iC(4wcW{8zrVsCH((d(~d4{MtNa_Mzy zg!aYh8%8^EaDh83z@+%3<|8m5wFKJhpM#(6s&xIL7EVw*#tkNh9pf~vAiT0kU9&Y?P0%^hZI*Z2j;nU?7Fn|9K zkAO{MQ*G@HJoVP?GNBfv6rfH=|Mfl^x1*p}qAGgCKI=egbtS99=^?881WCBvYFP-1 z1WxPUx4^Ww8fM0Ab+WD`G?XBzw*_GHfcYT?lASG@;}dAvkk zSc@R5^xMG4Lx5>@mV!}?aTW0n1^PIEa=B-qJJ3+`GH7w5jN#Xoepc$%h^yZEi0ij< zd$y46Z-?zPf`5}sXT&+jZe4dez&hQa4juh%Gn4d_C?EkGK`s=pV5+UV9U@`D=oZ4m z0t{vhf}Z{#U{3WR41uu;RUdV__N1RA@CYvrl9ch49u#}UIi2;M)Wp4JzeUqfS?^!OD0 zpbWmkp$gRF$tN~pMoBUAUe>HF@j+iek+0BYlH@zEY)G1p0V(zBBPEt&xKA1t>*M9* zWRHb+3sz}=Uq;kw=gH?IS*%6{OLxt5BB)$d(KU`Z0HDba67=2BvQAp_-V3kFoIl!S~J1j2lr$_vKRlYQls^B~pqcb0TXas)kuW*9e6!m#0#E7j^alzt|x@uG@8~byE zg!Z_i%(L*1K&Sg2C+IqTv1kS#1DGG_t$Ahn^xqR*Dkwm2ca{45JvGOU$hJMYNi3k1paD~SI(WoLp+Bzg6j0R(* z$n~r18}pvXtlfS^Gt17jGviwKr;4;`B*V$@!!j-p=Xu$9T)ka@$}0c;DKZ;@yK6Cl zzuqV>Bv((r{~{Wd?dQXe40^#j5vkI3B`U!4>;JErs0O9#8Gem?wLd{Q_BbrZw z6rwio#~ymx%Q!eoZR16(luo*Xk`4uwU~ZvsIw4*Y5dBc>z<+N8kg*!K?U z+0gmp7O9OkAnat@!YjQ`a(zv%?+5C2c~JRiY6sm0e3K^x+FKu1a}4Z&i9~g}tF89H zsQr=^8Lg2@nj^VL&a*;~nNnkgfu63wLCuur2m2g+gxyn;mS{#OzdZHSTP}0w6Na?H zVrNx#6?s);~EdeHTS6YHD+?6#Fu$qML@WL?Ou^Hxd#nRFKUi-O=t{`K6> z`vzZ0)4>EOK=lnW;aLnTv{SY%#jl;lQQcP)_-n0{Rp3~pj8SV&*nF<6TYSlG^+!13 zEB;A}3=-4~JYcgqcUJ?cfNk4=4!I7WUNPYwnX+q z?Y{i-?NY;=>f4r2o@-WKv+T|6sH}urejE8COmvD;W=%HZG04rTGK}$@Hli3MTBVUG z2bG;B#JHVGC3OiPVQV<8riMIvb9x-nn`*uCopM&lod&!808PRnSYp5ILERFlQ=DHl z*vT4Nx8y&24rz7DV_Q27>*mi8eEyTl7Ur1H^@}fm<;Lb^L_Gdcip<)-zYj2Bz(EJj zr^DG_D=u%c8F>2u4X<*f#!{bmn=*FCFb;1oaENYw@x(84_9~>l`MRO(?jv5-RSAM= zT|=ff9uuL)Ljs&D{2woG@!Yg+Bl}3I-uz0=38;Dhg}<%(4+@R!)B!l5p0zg!jM^zg zV7|L+yMbmSP)2TGtft3kT}$l=_U4^O%!>4l=(IF0L7a`PJ%StmXRXa;&97?%3jw_0 zc^`&0gII7Fu(t<%tVF{Scoe#ztbf%adJphXRN;La^um%ngRP0NaU`F5?B2 z8P7_y-Ex2g^Grg*s=G3@K0iK?H@SJqbzSvu7A7CS&1}X0%5VWiMz{z`z{5x0Pjv@? zn8x{XJseX^D0^o$eO-#EYRP2!yBax7kaJ3N+1g+~`RB*b*tuVr7O|RY#1U1uBSUE} z2B{ojHozw*?>oLh>j(qF;4NMM;&E#jAvCX8`7I7ouCl)KDy3FLL=Y4UR}aj2VP-&D zg{b-KDNXk`FbZf{n)^O*5kXytKOJMAAjnwI8E)LdKvzcG%SxY=z_4Jfn)-!Yu{kR= z8~}a{XFQUdO98mdSQ3sYxc&ws^srm%l5p;yipR?Ek^S3ioIMF*gQ68Q+&!E$d z5XBV=HQc@G(bHGnIqxJ-Z-a8?;|jlt+usK~RP{w)&op%F?6jDYh(o(?#N9alD8)!N z$Dzd>Cmt#tTjzGV3a_5Qdm*oc?_i|-gi{tvPEPkXO=U1i z6;PU-79=0>bK#Dj^O}-+z+A~=5j90YsDW1v&*LyG&D5!_IBL{VKQ4RFwZG|kO2%J& zw*tr;)7b=(KAap2<*T^tlQwUmehY$|SGQ=HF|OQ$&c3k!FHZ_cAR3w2^`t+?DCXxb zGttS;S=mT^mZa%|2scVleSUuNd$}5*P<3pO%*@=dUy-!aF>89CW^{+% zRd(^Pyx6MCDWMX{n``*+5oeQQX|&%IX~8pi$=y9Yy0_Bnp#>76T+DH1YQ1&5qj2R5RVT_Ie<3}u{S%VilZoghIv(z0Q?c0#0?>e_BZ~gpE!Np zoE1zF?%gbj_uSv<7M#w>dF|cycG4G%{h*0-o~}^lw7Mtbiy-F;BtMr*eRw zpB*-TS?9RAy)e%z9mCjW=<<4bMU+NV;S+Xdv3n_v z^NvWBi+4T9;(uSUx5#sP(w&@o_?%q16s`2;j#X;&$?9z)X5>`Ju?!3Pjn_LYSuO71 zl?qK&0|j^lj0Iep6IcA8MFb?dGP198*5}bu7N|_-)4Y z#3^0#ZCDl|w^2geEAqI5W~z%Nn$EmM9&D6Vb#CWnpZg*RwJMgm3re8)9e zNH7P6S9|h!s4Hu?!J-2uuTcQqyo{&wcPj6u%~lm({WWVd4-dJMx!7o=Oa_Jr6%2yk zmzkBYrO0YE>`ipaM=BcfU1_n7m*S5}7xJ?_SssT%FqhH*nl1r<24UDr-#v8cR!N%s z^*BdEZrbTbGX}|r=sYI#Qg|KE5dn(7@3|9?!N5mANk190(^7X~!APgFf}RtIKoi$y znC8*EX-3U_c*$w?$mJ!?#*`@28Uqcb@HkId6&ae}BEc6k?8kg+*AlCk`CR#Nf4%77 zt@zu5hS_7Q5A<{w&JV=HF`kG$Y##pq7@zP!7$@DA%Tcb4R2?k!b^2I=+hHo{p3`$7 zYj}8Pa^};`B}BAo@h+a>WVDc{)RW&b4(sIeV%U1Eaj*L-%TWVa8z;xHRK9ZAhFP*A zEeT>~ePbJJmD1P;R7&ewO_y2f-Dfm*qD?lcxE{BkhyCikyE3Qb1y0RzJZ^MNrNHh% z5laa5DcxWtewzIXVj?aAH9GpCCvokfPvPVF06Se8K{#w5_2)UvWBmL}NQu=>uhs|k z>u~sKvHRnru=f)DJgmSqL|K@c*E(orC;+s=Bp72xH?B|DHBp`UdB2ISZGf7p24bBu z_s+}nrq*`A=IX0k)D-*TRf@A2gI%m5cAu+t)lp2G2JbgA`geXTSAvMAFut0HB zw8ejz%L+CgH$HYhpxF-{e@qiQ!!)Lnr-CgK{L?))@N=1*j! z1=<na=37hB74esjq%3(%v(Xy?@O4B zDSv5nOqKx6grv1ZqeS{%>Fmbm& z;V@;+T<)DIt}7MO( zN(k^;VY-D}9Vi{D_NKXUk&m&HD~0T)AJ@=_yD(|i!N0N&uww)@329+$CazK9DXB>Y zuPt{lc0_QJ)?Cu2;R3y+S{K zvgKE0+E&L57VkU!nxh#CKk!JMDFLQ~2T zbn)kf=mtFWJ&lruy!yxJ=RN#-<+0r^ z0_psBU*sn}A!u%86%#pB3#thAMnkM0?o*Pm zy&ft}upsaPMF3D8cG~@E^D?SGG`AgC(>X{WL>L?*h5Tg}*}-m=HrPvG1whNrmHfa{ zy4myWy7v**jGCk{979LPy*(8g51U+W*H?||PsM&bCEW{_Q8-)#w?`!|-P9L$=#@EsP!A`Wpd_PA7mlvqj5e(FKW%OY2qTzp1Eln#pw{pZY2v zmdu_4CNd@qzQq6>A4#f4EKxOFxYhITWnt%G2hP|*cap!fnF)g^S?(KtMowV%U@=&R zJaGGbP;2Q9p?F1=q1S$YczR#X1(fG;K<^Vw1&m25vT0^yU=d}P@np~fEFg)nWczV8 zBo96;P$e*egzEK{#??GD7@3-;!?ens!K6AfbfM>M6n;Rxg-7drgB8Fu>PHz#~ewX8jwP8>~H6n%cO90L#65jCiuJx>cWZEO_1pvTX)94<-NEXY$*87 zj+U9!^Yq=&vhJl)-4$?;$e53s=i}ZF^@n1oJM&#WgBL>>c+kZ&r~RrR-)I^gP(F|< zuS@vv}e`4&G}QBp6RBFUMTI`~NfioNwG0`(Rr5la*e?T{&W{rw34#M{qI zKPkzXyUX@&ZqYmo&qtTBSSOafPqmld@ZsJ7hnU9ahJnmTR$`ZW(8MfWj!5HLLEG`2 zt9&*mre3DQ6I6xIUXh4C;SKa0&7YY$UW#KmnpLnyMS*UHYkEAL80(`$N$=e|(}E<* zrwa`z#UC8EPTqko+?~Soh~)J6)<%!TE(4lwH@@Yhp^<1qY*n2-hYl9tZOHXH^Lg*g z_#6G!4>H*}s$bfAH6nVuP3GDL(r%vWS~o8Z)YxagQ(7}Ylm5l{Z`qav`@TFVdftw4 z>oi<>^tz2Waz_mL3_by|E*$)#0SZx6or38&;ln4`S1jfShTm*#au(XgyXun=C4{^A zizC#vB6u{0;9d~*@EEZtxfcR2#}}L`LYUp`J4i2I;!zke=GOeWy|sRo z;fJtQ8n+$s+Rdk6=kkgW4RXcN-5h}pwxq;PNELpj^9UOl@9$Q=b?ONEb8CSHtVy$J zB`F7=UmI3Pzg6J_J#1xPC1;5`)!Xy^=MEjy7$2oG;ti0o@Us4o$SFS3Y41nmBikfe zu12^7E^I zM}wOgA8)NHbEHU!_m5IZ<0eZP@KmU!-Dxxa<V4{ayVJSW2AsWysuDH^-L24_)M(ixu>cS(qU?b@)RaT zymKz5h&uwF#Kn+^x+D8#$mlM9l~&nt?InHgn_xmMB4dX~;tKFJh(Sxpz3Z2TQR9?Y z3KCg~M9kcQ^lnHmBu~p9>6=EOH;97wCBr$CAXZVRXBS2hU0>R{H2~+V--H62ZF%k! zQEEMU&yO}JXd(1e<^;hZ@2GR~7FxvygKuk`p1ZF*26m!7Sud^UMtPxO+uNBN4D57XLv}Qi>1w4uIaw!zpg}DyDWMlx z#=ZOicz66?jTX3D8+iY{S@>Y3jy&nS?mv6Pl{9P6J=@P9e+I#90{3k5#6AeL1VFO) z9hlc~;`ro4bA@~fK^`6wb!FvTUOTj1#D1DUdr~4 zuqEZ|@YWbdEoVqUXg0vN*&~tVA+c_-7}NsbbZfR@51hzRl0J|Isnv=G|KThT8p)70FBTgI6V~ne zihQ_NIq)7zR-psuCKp>=488hOQ4rr5?(Sw=OuW;h0jJ1n_O>^q59H zD4VU;d#9n^OtsPT;gu`uI87Wad`7&j24I;o$iuU~(ge3|PnT)aH+QudVtjNRK1fgZ z#FEFvaupkv&%$&3+AEzAJUW5^>0s0r&DNqPJjW#1_QoI{>E zkjXsrE-@%oq9%*G^dhD9i429Qc>23NEy)k2FIBM!4YxPS=^(duC=;I_7ec=jUrvl) zh8eoAnnklbylp~zd*QGdP%{QY9{JGO7UNthm>KL|#I^dG>2~9!ViyeAVS+Sekq(wo z$CCi8c)D5}{eX_z6Q9K+6qPZ^W)-h{Cj1Nq>Il$(oB$V(ac-yQN zhXF1o<%!&)Ee?1U%}4gPmvi7#hF4p&znIl`E5`#OOvvKeZ6SeTf1z5k~Z|t04W2rktvq9&IhPC&7@;sm^Dj z>IZkLf1s(FWy6)0!Z=K+EJ52n);NU(O|D^4*!9d07I@exx2;tH3B?&taG3I2)T}hq zyQpvwjT4PuH4eWxnPPK-<{>W$IT6YEhICcTUDQ*h3TiAU=F$ zeJuqwt-f$0z%_2mF-`1Vdcb@lj1u_m@5Z3hDS87=o8i8?yVrhS6jb_m=+sd!#YLI>HqO$zs zQ!lGAeE4-1RF73pGCk(}Q}Ug~H$K1wyo_MG_MHJgBPU%Q*W#_vVo8g&Eo@!g)#bb} z4qrdr)K@KAnrGB72tjgTDs-12;lya_^t{nn5n|$@AuGkiuMZb^`)mrG@&J>vsAg>3 z`}bqHJa#5!ovkyIX`Y;P#pmSsR%k2vMSTeV23bwf)-!?ng_iMFs&O@CYKl$|2XFTg zEzuP+*X)izXes8rJ4zcS?Sui#?60AATadMoV6G_dH4RbHYpfR zoL8%i&VRg5Q**ib_5f}75 z(`7ovo`y1JCgrL77+xKts_lMfxz)4f8b_RW0#>JKSPfTf{&BiB0EKX<>;nVLz-$8T z{E^0n$5qXXwsr^wdM56@47f9Bm}L_7{3ep;8c!UZ!XQz9-n*pL@Q_EBNQ4)nj_+8f z6J|Wg&St{X3im83H=Q1IxL`pxzEC#!UBJcnA+q*Dj*%X}n?uZGlZfuXtc$6S_|Ij4 za>CVCSbXy-{)g0ie>)tm`M_#H@!x(;LNdk94H81rqkJ#vlJ2oSVSjsT!%7_(5l)5z zTp04dn1d0uO=_$QF>I_?#sDgv78V8u} z2s+&RtOeS29I1}gp7f5E7goLged~o=M;*`;3BV}6Lq1J*ANCpLf>h7WDcTK;Mis5! zOMS{Fk1Z#N$@{irDwq_L67SGf5D1n%Ltlh48=TJ9%o`zB%JM~En1XuprP!s}Z6 zl7crXv#6v6Tkd&^Pb?bQ2oqYom`^$*ES$H=yO4IKda36A4C&wEg9&M%I!n6EdQY0| zi?iZP(`xs&jK_v)mY%s7X{_C)#o?gGMcm!8W&1-QD;oTzWs;APsO8(@DhiX%UO+7ECYvWR$?nY|*r8|I#+yEeb7^z4f z_v~@V^XFqNRV@gQ>u^kOsU5o=+})2j7MjCK*hOSY9nAL-;$_gCq>48uFNFGeyOM0$ zQm5(|H}%9t3i5^?2)$JAmF?dQ#rS+H){H{)y9S(n1jT6*&x!FX(W8I5#hT{DY+Bf!>6d zum2_aAyIkCE^6GLMZ|>u)=`TH#O=@rg%e2LSP7L4Qr4oaEAO|A)uQ%GwX?=O|HKA* zurj-#xxPH`SrSJ(yAz-P8c7&u@2o!HGq z`;8UDwy?O1#b{kWQbE|quuxupt!wBMJ1;aBN?X@I!zDDua*Mi5&@&d~w2VjqpdP6A zVZLP>s|2zu84syGkp5zjhb z&B?U!`9=ETf|LalrImxUA( z?bw$>U!2rp4L!ygRgdh1a58@9tev zU!qz@OAH=o+4ztU{H7-BstPvSJzM3^)s;3q>bWSnSs>>KZ2XY&)R+GDHa!dpvVgPO z_+~PT43MDQ;0KaR7d!CxsY2DLvUD^4MN@%DXJ$&Q8#1|@4>A}yhRNbyD6vO{!*iD5 zlc?dt(mhVC+9O@9;xrqdHr783coeE|KDTW>;fs_)L5r=1+gNB5Z1A#;ub>h^Pa3A zox(8dMigPW&2PE+#b|LqQf|z)l69FwykX==meJ9XG)hnt+=Ni&AMgE)e{6ht%OQAp zdI<0^@Jy68G^KE^jxo#br;oZ;>1UTt9T(l`=@9w6Q8sK++u#Ag46jV4jv;=%2oPka zhRfvO6M3o=fqA;8h~AO((Ocd=!v`3I9zt2fONy+cxfw0dT)d`9WAE8}YR0%v(0!kF zkeO;;-33=86P$UkbfkRn40_XS!oGCt+Y$BOMjKdRQ;S4tiGgbfARxTua{X$MwoGju z7%VlX5}x}02ze%5J&Cx|d(1sgIr~Sh7mIsQn(fF)K-_kH5Rb-!O+dQnRue+4(?{eP3X_`(24xHEvcd*6OFjo z^5_Rhc{mj&iah_2pLNq$Hf&&XM8-tz@#BdsS+0eC`-_7JQ=v~@JNxyUb*v}Vza(LZ z#`tw>fjQKquGhTBo;2NRbLwzTzSgv}H3NX^gV7EG+YyAN1lck=x;JK*INvPbgsZP_ zqN`p`%e4n%L_JB3fd9b3P5S`9nZW6O2d#=SyRHlAJx&)bM0XPZ;++Wubwny{&XVs0 zZV&M(25iNx_?@{WnImg`#hOyZJ0X!&i z4152#r>6tzFYF4U_*b3qD1gI`%=cwc=XIRcS=~aEW!}I|yRp8ROHi0M(h(VLG%{;d z?^S<3to03>BU; zQ}gfMN(uA~a4NsM_s#O2?eyeF!)D%Mj=@KBe1cf9QUAuB!X#VkvcUPCNl~2Gq`~;$ zEx(PO5`#JE+H>$vBONn*i#q}bqOq-}cEyDMI+)Zwg z+uGCDHT~qiBas)<@(CMy_JLzd_!ojR4g*-R!CcYNN>5@#4US!Km$V{y*ckm%z;)vx z$YqH6KkY=(#cPru_O(UMWL6)+-81P;mcQSvh{XJ=hPMoQz%sWTBXvD@aVrt6)UuvJXQjdDOLeYL_H1?~ef*Thp;5K(gQ&4Gtg zz?&5P((=@{Q-WU|KC%i;av#}jot$)9H$qeL>*j45+e-Prn&2&?Q!!qlDQbx59q`R4 z#wlV*6#f}kI6Ar5$FW!?@~`IDI8Do9)3M*EL7hk@GC3SnuXZN9dCW zF&bdJ&qsk5+OiB|0g&UBcdf&GIWk%Me%v*u{`Uqag!estK)Rq(gB*s?)|0>6c2Mfki%!PQYx3lph6?3xSrsw1A{-kZjjm3LQmU2ACv3eVJN^CgiR zVQYx#CAXvp74M=yqNVS6+FUUaibtOg?_3-=xV3YeEFqs)RV*;9`K7io@dVN8(Wyext2s))XYMjizn3Ay-fnsG5P};b$EXAW zMa0W$v~CW_Ig_!)s>3$fKtzp*I>}UNJMz-??o--W;!ECT$osBnMp{rF+>&K@yhDRj zgp+1UE!V(kW`Q^hhrjE^Q%3@pOfQwtpD>2VyuQ_L~{%y z2Q><2h7-&7Y?jS@xSCu%Q9P@=(xA*_bbSccPsqq0f8bXb9FB=ee7_$pmL{!G$o7p3 zEqkQnt>9T#w>fZ`rMI5Ak*Qn0me?kQ74nhMyaB+Yy;yRGqy^C!lvtbJI{ndPEg*V) z7^d>fzuj{u`~5xko%G!{ah*bx-vA;mug^I#f8F?g-VqH<37M!(mzAg(}0>W1eJ}A3hW99;90kA@9?wq;Rfsmt9Te}eS(Q!<|3Y;xy zdG#CSp;{en;Rw~DiT#sI-16y|u~I9JbBD8kTcm-a;xvvgspYj99^+mMu0`(l>Lf#QEYadv5; zn9J6$zA=?R6T&P%K_ z(DbZP*1$Wdw(7~IhH+$vm_@`q3+R=QPO-;+b}Gf1N84|L(hZpsos+iwJc()%EVXl& zOvpc1TV0mPMF77M5I!iKZ8NWHYw5?`cuAeo=qmgs8 zL6vvOa98>U%uxeKH)H&@PC{jDv5Poyn{9VXqOX*VlhO*~)M%%DPk$?-hWUvFogAO> zfIO9=%625LKV9{M^`j9oFb3IF5Vd>qM_VxE>t-8Ovgc4Ir)k4Ne5)11b1JKAdon{) z;C^t7wtCW#nU4x4gwVJUyNp&}uV>ydo?FOTl)fB`*bNfP z-Du@|oq?BHz0m=k96F!&AVPbP~$)=O@OIF;RXg-~K~(})TJ=XlbB2AN_ivPjw& zMM2V)rxYiVk(8;AT7dk+t+#D8b|nE23m;dQ66cI0kk{JZlfB1_N-uwT~ zU+z6Y8(+hza8hg-FFFihQixo16*%9|&?Y%-ZY!PnmrHWzs->mux;RAGQUhz=DsT`L zpk~!?fR{2RHJ)KR$jI0;sIxML3@vk_st4H7_ zp3AM-tM(H2!^OAp5@px#q}SImA-Bzh z{pT*{v}IN!Z zMKU!8Xug!*qKPa0b^42s(_@QBqgWO4&x85@tq4*Gj1lP2Exvaa4L-R0&I8y@5O9$S z>0Q3_|1IRDB#YkK8)lh_yU+o|w@(sO?|HWO7Ht7%ND-W5zQ3&|z^V|(Ete&m7$vWO)%d6)C$1P$QIIR|dyDwypp9G-Y%UQqzVEW;% z4>llUG=!(`XV3)EbNjB1?-KO6K}|uI=061`a5a2{=8EYFGxpq4%d2Ja_zv_VJB}ZqIu}bnLR{yg(?aFZ>3hu6KpxdVU2&=?5c_f@Sb1MZd|H-S-L|zVNxYgIw#Y>VS~#_C(kGciBw^3^pKHFN)|HsSGDDv z>1?XUxd!eZtA;Lb5P&eM=?$jTvu-H^P!Ur=Qp8P&*N^`p80Fsn5q<+9bN>#Vr{On| z7W}U$(@1MBYCGvMqsoh4ora?J_FVwKAHe>>OIX3X%%lon4Zr6vI>HBQjC6feswhn% zX*1`xSK{$uq^S>A@l4<5jahON>OWN*idzP8tIjGAcld(-LcHuzQ5>>>+zw{`BO+b{CX z>4ABUlK#HATBvZby_srza7?6Z<2&GLrhfG*tRq^v0P*4^NO!;>VR%j>zuJi%as5u9 z5-p6RKpP+OABzI}N(y=NAy~yilpLfx8%O{F* zo^xF}e%>{w@q0C={T@)QapXIV6RO|u-=R;KS5y_J2&ul!BXAy-Q0{^9?N96*NekYh za)Ckk$+{!5^Yw`8@b&-Xf*gbr{rp-M2ADI`U*vz0R;V!2M6Z7h!oS{3ueV4n+dplO zQc+7!82PFvz|?Lxw)chqpX-bNpd(g<3IYt;89HJA&w=v3@uFi@{X!($kEvf4@L0M%tLde3&xu4(-05|b-{L+yhnqMOG0G-YA<4?^}kh1 zm*b>`-TnmEscJ@Co)ZX;mLu!Dp^#M{^r5ANt~?2ZGvv{?f`G$J$`9=VPr$RtcXt}q zmt4k>s(skurGCmMJaLK0JUm)w(%5kP@|5x`z5(DQ#xt~|cfmJwafFBV$YgYZ z^ry*rmiz?I3-AzGma8&(-CJNmg2vJOeJE9m}mC*Iv@;}dMnSLCQ z79U9pBq{bd}wVXyRGi77~tBQb<0Tc0$^?@-Fns~3U{HJTnx0j)hnfO&-&{S{ z1^eh|3EXMR>nA_)5gY(W=mQPx0Xu=Z6-RVNyeI=>PL&t*k}JebcSLT?PDfHUTKP4M zyZo(MfuHRI_Z*q*yO5Kcj)xy{JO33w=zw(pX(cTXmq*FWrng*|xLBCI<)^tEs4G4D z`NTaRwJVyrTBZaDj{lNryh$`KI!a^+TvLEoD5J@RD^V>{+DYv{Z8DJJuN1;IM^GSh z>dZeU!CC0F%1=*Q*RsmI^gZcuqlV%>wRux;@;Tp(5z)BWp4<)nJ>n@XI=q z`Qmg~*<_aei!uPnt%?OKq-5qS2gS(>KFQcIeSLnxdi1=?+@^0N`V;8QcqSPvy6iio zGF*x*e##vo|4je)zfi zrg=zfoTI!xc>@-(?8SE1(2KVnUJ@lEzT%(%zGyi zE`Bku`2CLm^UXr$#WQfLNLP~#x{VBNog;k9tDiCUJO6*186fOAf_3mCilG!-2|$W2 zvwj21;Q>NHmpj8_c`WO$0*KD>oeT|5kLM}*o**M!7{5Eri(bREAnw?6b!-7Z1UMRQ zoAH~M_zGsL5sK&IU2^XjDR^{R(%b{04*y0;`yC=;FG$wDHWvP#&xSaRdeY2cdH|J`;_w>oP zV;yQqJTne``jfwe+}6r^C*psqwGhw#5XweRzlJ9Pa+L#(m~#Kz8t)TKUZy<^$#|^? zmYK{X8sV)Co&G=VU3py0>-TR}NgCN&RTOUSMJg3xB1_YTgwb{@Z6ZS>H_=Rlh>A*^ zniiF$g%-kSP(&N1(qdY)Z&GSnXXbaF&$t)&_x(rvdXyovY&*<+!OYn?^dgMy`r?Pkek!{s3aQere+9KDee|Fp9$Y0 zfM9dfBL=g-!~M-AC7cCUVUd5X`IVl|YwWE0Yk(Rdp=c31=>EW`lZK)-pjqHZJ&U7J zpjs+=cCThj^R{ItcF_WsMvn^K$n30iD!rIy$y$#>Htn{@7k!$VYmby5+~`u{yoi6Qn7Y< z(ux_&PH>5u^*&YhlPzABwb|uNk4_&n{0UuVcOXHI<&D82jw5>bic$>b-R6gCcQCVh zl|P7f3PCPbRXIwq*Y4bH?T6cKpx)rN`7o>QxKq`ASi!88-0d#c@&lI zN)cVsf=8~#8mU;{AS>CjT%*J3qIz|H9Gw{%s}l^-l;>3oYv0CEF{txcm$>rC0LLeq zu95s&%X0FNm^0_F(smfA4C@tu#yW1Nwqfo^<}a41)YJZgyOZ(q%>7z%gqndZE92#a8*Xl}ZKYiFJc94#raYEK`$vjz&A z9iQN|`Z8uinHgpMIV0ds1O&@KlKU6nVjxx)pSR^t-etjsG>=2kW5}qE1~%E6kl905 ztqK+=i(xeGzD*^vx(*vU-EGUsyj>C}+?>0}lugIR+RNlP?&gH`C$-ow*3IsL$WtX$ zS}@3BaQK}q>ezs>x^S`3t8QsKrKhc^a1z{7m2)!UYoL##gK0?J)AV|1`_wm767L=9 zrAfX$K1|;tnYYp4PT#hrH4kFxY1^~u_K6bAvQh4`azA~t_QXn9lgfAo!IIR;oZ4X> zq!<9;08+u6rD7TX0G}tkt}bgDG2v@?B>sEVr&fyhrI zum32KHMEC7JN=AINt>|@03mdpT@E)f-M~A>7U_+6wH@46`MQ!X)<5^IDuk4Lq|~@e zV%hCDUC!uGErG=)6Uv&)102NPiD70DgwAr_tQd5+h#10qQ8LY7C&OO*K8;vC{3y{l z|FC0M1m%s*Aan;zd$qua;40lO$U_|+VaHs!B6^ROE<$Rt47@x69 z`nfn~&gp8`=F&r-t{k6`B=NBg@C4vGCayadA;VcBWCaxozL(NGDp)mksTUq)TED-` z_Ok-YS8qjXI>3Cp_!~u~^45ByF>8bSSGejoga_q)N1Zyr32wTX9BPMLiMK?Z?+us8 zx%@dRKw!2J4f1!~Q(9x`#ZhSaEusQ^F zPFj&MYV$m%>tz==1fa7;DY4}*2x&-7K1tlQvnZh^^)&iqTJH>=OWB_^ae{3CN1TLkbA#BbKt#xW08vJnyjlyZj~B<;j zuV3LqsQZvVeZcg)5!JY~kv8OdT=HB*yu;pJrys+ParjziBFECzRp+_#hl~NA3rUaV z-XeNfQ{qsR4BMpq+lS;mvq;N(3kMIyE=hXid2lz~Oo&lCkPRu2MweS7t!a0^xbk^I z=!Qt87wOwxnE_35fY_Xq;7DEKUwKT|q-_o-$$m3*Q_G5q^O$ze^*P*LnPz!l_|(!@ zbk~!Z9Dhh~B0(vkJmYpfv1acA;>W>lxuy0VxplOwu|-WK=S<$8`YSPQPfQO#!-$L{ zP(uJ?w%{~@rAc_mEl{R!i3J0TsFqV2pt}x%Lu9$9PEpwEOwJKyi#%yK0Fo`EsW~-k z`vopCuwY1zfW1;IPAceJ>He_EtUHNT+_9?Mt*yY_BxR|ARaV4OK?cSuQ1Li0E)i8i z9!#Ufkr16RTXagrc61e6Y+5h1?}A#*lY4RdxE=02P3M0z)3xMsiqXedkiHl~_=F4R z4-aE#Ld>YQfW%}`^iz%6{>gzg=uu8=3yUYXXAt`_5*M^I0Rhkh#cn8uYKelF?Xtp` z%{HBD0qaF<36uA6G4*cx8d*!(n`oWtd*HFZHMd0Rnj)lsz?L^6TmC!$HFN1sE6s!u zqLkmw=tWJb=QATO@1D9bhvi31uVr8L`1HHQ(c|y_dV6fQOvHuJ%Y89mN#+f5RZ1NZ zF$PskEez@voqKt06;_BK0)Zr+oeOWNbzRay&K~73{VKC&SZl@D}udE&T z2KhR&Wq7ZMza42PpMTKm?$6;|)#)gN_FU8Q&g@g|G~DwV3c)amO+d9+=q776a>^>9 z%Rpr95(NT}HzW~_+P2-e!!u^bpS?SggXN4_Av@~k{kelAj$9xVj@L~!KA?&#&O~BR ziNdZ%*W6RnPF21QM^Ymn-!G|(SHU1(BZP`{fnye2>aDu=d~En9*3a zpO!eIwOt((f+{X&O!v4rsRu|Nc-t`mraKkK?j)~;1edxCe8AWDrIllsJY|w>o#IJZ zm*VWP#;T$d2s;FjHbc>~%7|*}Ie05fk_Ld#(tPddQNwkiqn%)zS9|7u$gVQE?eMYk zSY#z(Y}N2cw^uw6?gO)AGEtTYR~icl<_UZ{16xl)gq!Y2B?f$U^z!drwZpZqmTq}z zdK2Z0ZpPHY)clufB8TlmvYeTL+eQf8XX7<9%GRJdEL*MJ4NoF!I7gIt7%al86bUV$ z33WVZ>&MiT@drwBo0^Tul^NJ->ZLol79Z@oPHrylxDu>B%sc&M>-p4GRo(UbwD#5{ zhsZu@3t91QM{ZOr!_u+Vd~{6b%nJ!EgUnNnAGuIZgbtkH0JqU>F?im%sR!WV{0!D`9LxFesx@E&?ys+^3JQF5NxO0k-9jg^}l=9)566Z}byaHruJ z(85Sd>eO)h0}TVyE_uH##=0fr6Iz70WcJ3+#V0?8-fGCpnaW~6BTb)}UF)|;mD2jc zG9;H=&pD@KAZ_nE)i#rLptC1)Ec!D|%+4D_TsRU4Lr_|!0=wT!K?*K}54Jig z4x^6Vg?-2VV&}08WR8s;w(znuFQchG zar&61Gsi|r7-pBk%M-j&SlU&Rf#vBHvGnSP7^`vL6AlA53eSs5e(yi|syuu__M1Ro z?pmXOwV0$tU0^ z!s>OPV+2^WXTKXX69a>qBXZVGGeP{IzJB}t2f2^Dwh@#m&&a%+)cbSMnF9oZVGwfO z>-Zh)?ZF9E@5^x+RhD1!5w+XktKUbYesTP+;d$}JV){bZB zD`q1i3#5MoNnhe+876()?R2*2c37-s(W)vRqgxU=yqjScE{JpZ=AYr&CM#l>4#kz&=yw&Kjeg$ z#FkN<6Buj6fI?i`rd5ec6ir3O$Hr+olG7VTYzPV)KRs{0=3t?VZRvM3IB(Z#H??=xcjhQx*q?nxWXS;CS3QIcZg*Y z@LxSM&tra#{!%$oaP<7Q>H@E+h{%84aQDWOYc+j?2iv37u=xj=m} z)i=M%W;)GG<{Ku2I#|?6bpKFNKHo8&-kuO0J)czFDpmbCFmPgSP3y(2HBWXK{ZZcU zzu@Yv7xLSz9B<5r5*sObBQ_^a^JM?YG>!bmue_!V+m49I(~l=|Gk3>67^qojzppnp zTVrIX%Qqr(yi#=nyV+p-B0Cv-)Ud8XNOUTar|B8H?FZlV4oIK-DA|BUSR%WhSg?9b zh@ZK@4D{>ff`xsD$l z(=XTY%XRQ2@ar=C(JuZ=)KMH?;VA$J!`R4h&o@LPA@B=`lThzn^6X_|{~yn) zlnZh5DP*InhdYD<^vhAj&5tU>a2DjnG#9aXyp^XM+mCC6whO?Q@m6!Atj&L({XYoP BXNCX( literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Assets.xcassets/Contents.json b/iosApp/iosApp/Assets.xcassets/Contents.json new file mode 100644 index 0000000..4aa7c53 --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/iosApp/iosApp/ContentView.swift b/iosApp/iosApp/ContentView.swift new file mode 100644 index 0000000..278fb6c --- /dev/null +++ b/iosApp/iosApp/ContentView.swift @@ -0,0 +1,21 @@ + +import SwiftUI +import Common + +struct ComposeView: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> UIViewController { + return Main_iosKt.MainViewController() + } + + func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} +} + +struct ContentView: View { + var body: some View { + ComposeView() + .ignoresSafeArea(.keyboard) // Compose has own keyboard handler + } +} + + + diff --git a/iosApp/iosApp/Info.plist b/iosApp/iosApp/Info.plist new file mode 100644 index 0000000..61bca76 --- /dev/null +++ b/iosApp/iosApp/Info.plist @@ -0,0 +1,52 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + NSContactsUsageDescription + We need access to your contacts to pick a contact for you + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..4aa7c53 --- /dev/null +++ b/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/iosApp/iosApp/iOSApp.swift b/iosApp/iosApp/iOSApp.swift new file mode 100644 index 0000000..0648e86 --- /dev/null +++ b/iosApp/iosApp/iOSApp.swift @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct iOSApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} \ No newline at end of file diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index 4cc4764..f5c74e3 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -4,6 +4,7 @@ plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsCompose) + kotlin("native.cocoapods") id("com.vanniktech.maven.publish") version "0.28.0" } @@ -20,6 +21,28 @@ kotlin { iosX64() iosArm64() iosSimulatorArm64() + cocoapods { + version = "1.0.0" + summary = "Some description for the Shared Module" + homepage = "Link to the Shared Module homepage" + ios.deploymentTarget = "14.0" + podfile = project.file("../iosApp/Podfile") // why doesn't it load the cocoapods from the iosApp podfile? + framework { + baseName = "shared" + isStatic = true + } + // Must define the pods that are in the Podfile (Is this just the way it works?) + pod("PhoneNumberKit") { + version ="3.7" + // version = "7.4.0" // for GoogleMapsUtils 4.2.2 (doesn't build for some c-interop reason, waiting for 5.0.0) + extraOpts += listOf("-compiler-option", "-fmodules") + } + pod("libPhoneNumber-iOS") { + version ="0.8" + // version = "7.4.0" // for GoogleMapsUtils 4.2.2 (doesn't build for some c-interop reason, waiting for 5.0.0) + extraOpts += listOf("-compiler-option", "-fmodules") + } + } sourceSets { diff --git a/multiplatformContact/multiplatformContact.podspec b/multiplatformContact/multiplatformContact.podspec new file mode 100644 index 0000000..c39cc21 --- /dev/null +++ b/multiplatformContact/multiplatformContact.podspec @@ -0,0 +1,51 @@ +Pod::Spec.new do |spec| + spec.name = 'multiplatformContact' + spec.version = '1.0.0' + spec.homepage = 'Link to the Shared Module homepage' + spec.source = { :http=> ''} + spec.authors = '' + spec.license = '' + spec.summary = 'Some description for the Shared Module' + spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework' + spec.libraries = 'c++' + spec.ios.deployment_target = '14.0' + spec.dependency 'PhoneNumberKit', '3.7' + spec.dependency 'libPhoneNumber-iOS', '0.8' + + if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') + raise " + + Kotlin framework 'shared' doesn't exist yet, so a proper Xcode project can't be generated. + 'pod install' should be executed after running ':generateDummyFramework' Gradle task: + + ./gradlew :multiplatformContact:generateDummyFramework + + Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" + end + + spec.pod_target_xcconfig = { + 'KOTLIN_PROJECT_PATH' => ':multiplatformContact', + 'PRODUCT_MODULE_NAME' => 'shared', + } + + spec.script_phases = [ + { + :name => 'Build multiplatformContact', + :execution_position => :before_compile, + :shell_path => '/bin/sh', + :script => <<-SCRIPT + if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then + echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"" + exit 0 + fi + set -ev + REPO_ROOT="$PODS_TARGET_SRCROOT" + "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \ + -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \ + -Pkotlin.native.cocoapods.archs="$ARCHS" \ + -Pkotlin.native.cocoapods.configuration="$CONFIGURATION" + SCRIPT + } + ] + spec.resources = ['build/compose/ios/shared/compose-resources'] +end \ No newline at end of file diff --git a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt index 1842665..47d89c5 100644 --- a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt @@ -2,6 +2,10 @@ package multiContacts import androidx.compose.runtime.Composable import androidx.compose.runtime.remember +import cocoapods.libPhoneNumber_iOS.NBEPhoneNumberFormatE164 +import cocoapods.libPhoneNumber_iOS.NBPhoneNumber +import cocoapods.libPhoneNumber_iOS.NBPhoneNumberUtil +import kotlinx.cinterop.ExperimentalForeignApi import platform.Contacts.CNContact import platform.ContactsUI.CNContactPickerDelegateProtocol import platform.ContactsUI.CNContactPickerViewController @@ -9,7 +13,6 @@ import platform.UIKit.UIApplication import platform.darwin.NSObject - /** * @param Launcher used to invoke the contacts picker * @param extractPhoneNumber is used to extract phone number, can be modified to extract phone number data of your choice @@ -17,11 +20,28 @@ import platform.darwin.NSObject typealias ContactPickedCallback = (String) -> Unit + +@OptIn(ExperimentalForeignApi::class) @Composable actual fun pickMultiplatformContacts( countryISOCode: String, onResult: ContactPickedCallback ): Launcher { + val phoneUtil = NBPhoneNumberUtil() + try { + val parsedNumber: NBPhoneNumber? = phoneUtil.parse("0003455", "KE",null) + // Check if parsedNumber is null before formatting + if (parsedNumber != null) { + val formattedString: String? = phoneUtil.format(parsedNumber, NBEPhoneNumberFormatE164,null) + println("Formatted phone number: $formattedString") + } else { + println("Parsed number is null.") + } + + } catch (e: Exception) { + println("Exception occurred: $e") + } + val launcherCustom = remember { Launcher(onLaunch = { val picker = CNContactPickerViewController() From f5dabf61719f4d3243abd3d6916d26afe03b5455 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Tue, 4 Mar 2025 18:10:22 +0300 Subject: [PATCH 3/7] podfile update --- iosApp/Podfile | 6 +- iosApp/Podfile.lock | 8 +- iosApp/Pods/Manifest.lock | 8 +- iosApp/Pods/Pods.xcodeproj/project.pbxproj | 689 +++++++++--------- .../Pods-iosApp/Pods-iosApp.debug.xcconfig | 1 + .../Pods-iosApp/Pods-iosApp.release.xcconfig | 1 + iosApp/iosApp.xcodeproj/project.pbxproj | 86 +-- multiplatformContact/build.gradle.kts | 2 - 8 files changed, 411 insertions(+), 390 deletions(-) diff --git a/iosApp/Podfile b/iosApp/Podfile index 8edd7cd..e12bcd8 100644 --- a/iosApp/Podfile +++ b/iosApp/Podfile @@ -1,8 +1,6 @@ # Uncomment the next line to define a global platform for your project +source 'https://cdn.cocoapods.org' # platform :ios, '9.0' - - - target 'iosApp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! @@ -11,7 +9,7 @@ target 'iosApp' do pod 'libPhoneNumber-iOS', '~> 0.8' - pod 'multiplatformContact', :path => '/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec' + pod 'multiplatformContact', :path => '../multiplatformContact' # Pods for iosApp end diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock index 55756dd..6eecc9e 100644 --- a/iosApp/Podfile.lock +++ b/iosApp/Podfile.lock @@ -12,7 +12,7 @@ PODS: DEPENDENCIES: - libPhoneNumber-iOS (~> 0.8) - - multiplatformContact (from `/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec`) + - multiplatformContact (from `../multiplatformContact`) - PhoneNumberKit (~> 3.7) SPEC REPOS: @@ -22,13 +22,13 @@ SPEC REPOS: EXTERNAL SOURCES: multiplatformContact: - :path: "/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec" + :path: "../multiplatformContact" SPEC CHECKSUMS: libPhoneNumber-iOS: 6ad6dd425bea574d44885cc673b4b78ed7e9a355 multiplatformContact: df498eb245ce2ee8c1d1d42a79cecec94792b46f PhoneNumberKit: e8b8eb321385c969f5f350e0ef4104c38eebf2d0 -PODFILE CHECKSUM: 4617581be2b6de64b8fb493bd5fad06b7c2c53aa +PODFILE CHECKSUM: c527826ef5d749b600c301693a20079a1b559161 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Manifest.lock b/iosApp/Pods/Manifest.lock index 55756dd..6eecc9e 100644 --- a/iosApp/Pods/Manifest.lock +++ b/iosApp/Pods/Manifest.lock @@ -12,7 +12,7 @@ PODS: DEPENDENCIES: - libPhoneNumber-iOS (~> 0.8) - - multiplatformContact (from `/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec`) + - multiplatformContact (from `../multiplatformContact`) - PhoneNumberKit (~> 3.7) SPEC REPOS: @@ -22,13 +22,13 @@ SPEC REPOS: EXTERNAL SOURCES: multiplatformContact: - :path: "/Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact/multiplatformContact.podspec" + :path: "../multiplatformContact" SPEC CHECKSUMS: libPhoneNumber-iOS: 6ad6dd425bea574d44885cc673b4b78ed7e9a355 multiplatformContact: df498eb245ce2ee8c1d1d42a79cecec94792b46f PhoneNumberKit: e8b8eb321385c969f5f350e0ef4104c38eebf2d0 -PODFILE CHECKSUM: 4617581be2b6de64b8fb493bd5fad06b7c2c53aa +PODFILE CHECKSUM: c527826ef5d749b600c301693a20079a1b559161 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj index fae7b49..4d99862 100644 --- a/iosApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -22,63 +22,70 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 0070C9E39945EEBBCCB0E36ADECAC178 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 233227AB7DA52B013DC3F3A203E8D145 /* CoreTelephony.framework */; }; - 026EA818C68A627003C903E7F1FF4CEF /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 160F82A95B791A239DCFCC8FD46C695F /* PhoneNumberKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */; }; - 179B28D7FCB1AB9D66745DFCB3532735 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 18EDA100A8B6D2B8A8F82163B22147A3 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1D945C7298F6BE2D436596A69DA24683 /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 226166AB6B6F04F320BCEC1DAC63F194 /* PhoneNumber+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */; }; - 2996CF6097474129697EA169F7E959A3 /* NSRegularExpression+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */; }; - 2ABB7426BC74B9F758051F8B439FC3E1 /* PhoneNumberKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D440B97BDD1F2611C20AE2731C06A2A /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E9D2BB90BDFF169E281010E3E91AE20 /* CountryCodePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */; }; - 2ECCE75AEBA313807A138E6C43065ABA /* libPhoneNumber-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */; }; - 3ED8A6D87C5380FA48AABC8FF9834D3C /* MetadataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */; }; - 41DDC5A39614E48F9B6C5E6F0B9A27D1 /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 424D37EB62448AFFCF0E8C5E02FBE373 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */; }; - 43BFC4953D464638AEDDAFEDDD4CA0F4 /* PartialFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */; }; - 4818E52307D7786C9524B75D09C27559 /* PhoneNumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */; }; - 4B5BA42BADE1C7771B4F5F92FF322501 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */; }; - 537C6367CCE8F9D940A306A2759F424E /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 54C730E263DAAEA3186E18F4497C9258 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D07275E20612FC24E1F97519614FAE7 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */; }; - 5DC9474CE9A996AD0D53E23CFA904024 /* ParseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */; }; - 5E631C90E2B9CE410C6E78177DEC701D /* NSArray+NBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 60CC77F923ED2BFB9891D7B840693506 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 61B75CAFD8883D630F49EB35839ED77A /* MetadataParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */; }; - 66F0A543EEE190E036D37A14ED5BCBD7 /* libPhoneNumber-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69AF69FF54EC0BE69AD5FE15255F1358 /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */; }; - 69EC68431ADC6245680CE73205FB8754 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 70CC6B8F16D42D4C0816716A24993E1A /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 74ADBC091F561112A6E0540607AECFAB /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 782AF8E1A290480A81FD3569C1BA2209 /* PhoneNumberMetadata.json in Resources */ = {isa = PBXBuildFile; fileRef = 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */; }; - 85FC88D86D60C2271D7A25B3ECE5DB1A /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */; }; - 8ECC79DEB91B9A5F6381C34680DBD110 /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8FE868B295618263DFE4F79A041269EB /* MetadataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */; }; - 9046023D4739C2E73D0452445B291990 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */; }; - 9718A978E7E81A2255A9606FAF119BB4 /* PhoneNumberParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */; }; - A12602CE450E3C4B93528978600FEF4B /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AAE95AF843222C3EB1558B8C654E33D5 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B5482EF9AE99708FFC24EDE8D813C48C /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B61133B93278F3F4B026B6051722104D /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BE15246C6073C8671DDC8CA0A4DF54EE /* NSArray+NBAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF35C4949EDED02FE4417F730F0A3EB5 /* Bundle+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */; }; - C0EEC392F48B0B583C049D480321170B /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C48477B7F144D31A7E84026C9414EBF8 /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CDEE519871A73F73C44B93C7EA3AF23A /* PhoneNumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */; }; - D18C6AE9D409041CC280BE82D75AB3D2 /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7179C98C7E1401F5665719E8DE54109 /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCE55AB7EF9057AFFB138E778402B20D /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB9F1658DB85E9D0BC9F3A354C4C9C0F /* PhoneNumberKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */; }; - F26E2E1F79D8FF277F41FB1DA7610EA2 /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F67DBD66A0C8A4C06AFD18187F257305 /* CountryCodePickerOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */; }; - F81B3566F42FA2A768E4692CC083833D /* RegexManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */; }; - FBD50BFB36CA62EA92A04F5139DF82F0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */; }; - FE9B14F28FCED85A8C45E63459339B7B /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 05B096C5DBFE24C06E8A6B72667120D9 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0FB71323A2CEDF312522F722B6D118F1 /* NSRegularExpression+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */; }; + 1000D9AEBA85E25C1FBF524165316CFE /* PhoneNumberParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */; }; + 1D249CA00DB33AA343F596FEEB4BC3CE /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E89E35C5E182E0F10B184521AFB1456 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */; }; + 1F58DF9B3FBD1ABCBCF7A4105D8FF96C /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20479AACC55DFFFFBC0B42B8D3C94102 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F36A95BD47FDB2CC1FD51AFC08A8D5A /* CoreTelephony.framework */; }; + 2390DD18794EBCB0FC7B8E7E8C2A07B5 /* Bundle+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */; }; + 2840AB863DF84B3435536366454B3228 /* NSArray+NBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2927AFA57B3DB98DC0D092A2D79F6DAF /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2B8679564FB44CA974F6866145DA4CE0 /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3166EE4BFF52BE25B07F9D8BFA487BA6 /* PhoneNumberKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3445FE96D35A3F4F2DE5AD5210FABAC8 /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3526CB281B853768A869EC963FB7275C /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */; }; + 35A06389E150A54A6E27935BC82BD99C /* PhoneNumberMetadata.json in Resources */ = {isa = PBXBuildFile; fileRef = 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */; }; + 3A8DA368002721A9F14DD3AE53880E0B /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42AFC082890A295AE5671EAB165B3865 /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47892BC610F39957CC665F61106C7C54 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4E67EC4AFA6B8EC9044BB0997F3A68E3 /* PhoneNumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */; }; + 521E5C6BB548A57D6853D356AB0FC043 /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */; }; + 58894EEAF3A3967440B4011AF26E0A50 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */; }; + 5A7C5BBBC708E39B709BB90FE6A98D15 /* ParseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */; }; + 5F976AD73176DFD883BCABB720BD35AF /* PhoneNumber+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */; }; + 5FA5D639126C8DB2C0ABCB36AD6EAFBA /* CountryCodePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */; }; + 6033666E799437E615B5559ADC197277 /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */; }; + 625EEF924FCA8FD7AB4390A85E55EC21 /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 67AF83238CCD31D448D5F5C291D7F7E1 /* RegexManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */; }; + 6887B8A6F1A5A8BAEB8B4225CCA3E0A9 /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7A05F0DFFBA35FC29EDA33C14BC1AB55 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7CBF0088F2C651A8BD40B1907136226C /* PhoneNumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */; }; + 85293AB11BCC819609B57E8CFA9446EC /* libPhoneNumber-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */; }; + 86CEDDFAF66F0E1378675995067A4A3C /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91E4B84F36B56460984DAA17CC674809 /* libPhoneNumber-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92FB501A664562789BA4F51F5005BD6D /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94963BE56F8B5C02460E10A7516D79A9 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 955CD9C12D0A29CD2BC5DD300234671B /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9AD5F666218C95E9FB5319E69441DC5A /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A121BCD209C84F555DEC4D3BD71B1A0D /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A842B8DE8CA37C87282C6DA13B6E7F19 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */; }; + A9430136EECF2BEB637F11795455B8E9 /* MetadataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */; }; + B4FB4FE114ED104390B193C141C67B5F /* NSArray+NBAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA6FFCF3F70CE917090C3B1E547B8D10 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BBB97D788FDF6D94A2231A1394C44AE6 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BFA8E4A26B9635B0EBD49C6618DAF802 /* CountryCodePickerOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */; }; + CA5FBEB7DE6030D9404A3E2B6AB5475A /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CF99B850B8EC239DCD08E458E2BB50D5 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */; }; + D8501BF537D8A9A0AB6BEDC905CCB4E6 /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DEA3DE4EA6E32B165CF0F9A533A6B28F /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF2C2C402DB1475158BE2F5245B50F8A /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3DEEF69A6F112E2B0E91B582617815B /* MetadataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */; }; + F13DF3E21C705A8BD9BABAADFF778028 /* PhoneNumberKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */; }; + F1DB4D0F6B76E1F2DB5DBDE42822380C /* PhoneNumberKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */; }; + F32AEB7F807279B10C4A9C8DC107C7BD /* PartialFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */; }; + F85AF515EA7A9C451B3427C99B5A675E /* MetadataParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 38411F75B2729CD2C32D77AC299B5999 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 18A7947D7AA498985D397D562F5C4DC0; + remoteInfo = multiplatformContact; + }; 48B0FF678CA9C14E135894A5DAAFF7BC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -86,27 +93,20 @@ remoteGlobalIDString = BECD36891A8DC297700F9296F5634B97; remoteInfo = "libPhoneNumber-iOS"; }; - 6EEE6A127C0719B51BE52F2326A022D4 /* PBXContainerItemProxy */ = { + 5433DACEFA172C9A4B41810E491FE300 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = C942A9CCE5CF382E8053D9757DA6249D; remoteInfo = PhoneNumberKit; }; - 847146FDF4A97260A591028D5287C346 /* PBXContainerItemProxy */ = { + CEEA6D59C2AC1812C0B5537B8B329172 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = BECD36891A8DC297700F9296F5634B97; remoteInfo = "libPhoneNumber-iOS"; }; - 8538D95FA1ADF8A0509965E8BCDBC78D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 18A7947D7AA498985D397D562F5C4DC0; - remoteInfo = multiplatformContact; - }; F19CEBEB71195F286CC5ACD661BAE11C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -120,30 +120,28 @@ 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bundle+Resources.swift"; path = "PhoneNumberKit/Bundle+Resources.swift"; sourceTree = ""; }; 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParseManager.swift; path = PhoneNumberKit/ParseManager.swift; sourceTree = ""; }; + 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataHelper.h; path = libPhoneNumber/NBMetadataHelper.h; sourceTree = ""; }; 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CountryCodePickerViewController.swift; path = PhoneNumberKit/UI/CountryCodePickerViewController.swift; sourceTree = ""; }; 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneMetaData.m; path = libPhoneNumber/NBPhoneMetaData.m; sourceTree = ""; }; 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libPhoneNumber-iOS-umbrella.h"; sourceTree = ""; }; 11C9B998CE0869936AE6BE69270DAAC9 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; - 132F3796C1388068910A610051BB5BFB /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataManager.swift; path = PhoneNumberKit/MetadataManager.swift; sourceTree = ""; }; - 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 1EA8EEBF967AA2975BC661B17CD80AE9 /* PhoneNumberKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "PhoneNumberKit-Info.plist"; sourceTree = ""; }; 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumberDesc.m; path = libPhoneNumber/NBPhoneNumberDesc.m; sourceTree = ""; }; - 233227AB7DA52B013DC3F3A203E8D145 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CoreTelephony.framework; sourceTree = DEVELOPER_DIR; }; 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */ = {isa = PBXFileReference; includeInIndex = 1; name = PhoneNumberMetadata.json; path = PhoneNumberKit/Resources/PhoneNumberMetadata.json; sourceTree = ""; }; 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumber.m; path = libPhoneNumber/NBPhoneNumber.m; sourceTree = ""; }; 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberDesc.h; path = libPhoneNumber/NBPhoneNumberDesc.h; sourceTree = ""; }; 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Formatter.swift; path = PhoneNumberKit/Formatter.swift; sourceTree = ""; }; - 32266BD8D0BA129F1CC2369453917D60 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; + 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 2F36A95BD47FDB2CC1FD51AFC08A8D5A /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreTelephony.framework; sourceTree = DEVELOPER_DIR; }; 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PhoneNumberKit.release.xcconfig; sourceTree = ""; }; 3EA6878D6455FFE85E3E796E0621A07E /* libPhoneNumber-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "libPhoneNumber-iOS.modulemap"; sourceTree = ""; }; 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+NBAdditions.m"; path = "libPhoneNumber/NSArray+NBAdditions.m"; sourceTree = ""; }; 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "libPhoneNumber-iOS"; path = libPhoneNumber_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberKit.swift; path = PhoneNumberKit/PhoneNumberKit.swift; sourceTree = ""; }; 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreMapper.h; path = libPhoneNumber/NBMetadataCoreMapper.h; sourceTree = ""; }; - 521C69F7CC2BA71CA4791867DA4FB583 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; 55ABB06C8A1800962A74E007E7733796 /* Pods-iosApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-frameworks.sh"; sourceTree = ""; }; 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+NBAdditions.h"; path = "libPhoneNumber/NSArray+NBAdditions.h"; sourceTree = ""; }; 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneMetaData.h; path = libPhoneNumber/NBPhoneMetaData.h; sourceTree = ""; }; @@ -154,7 +152,6 @@ 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataParsing.swift; path = PhoneNumberKit/MetadataParsing.swift; sourceTree = ""; }; 76A263267985B0185D85E24D40FCEE9A /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; 76D28488EA8CF5C697DFF07967A9960E /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; - 7AA79DB2BD4B79492887C3899C9A82DB /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/ios/shared/compose-resources"; sourceTree = ""; }; 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberUtil.h; path = libPhoneNumber/NBPhoneNumberUtil.h; sourceTree = ""; }; 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "libPhoneNumber-iOS.debug.xcconfig"; sourceTree = ""; }; 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBNumberFormat.m; path = libPhoneNumber/NBNumberFormat.m; sourceTree = ""; }; @@ -169,6 +166,7 @@ 9D43D53CBE6073F141D6A18DF828881B /* PhoneNumberKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PhoneNumberKit-prefix.pch"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9EE28FAC4A40F75EA163AEF99E5B3B3B /* PhoneNumberKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PhoneNumberKit.modulemap; sourceTree = ""; }; + A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; A75EAC5A02AC977F838EBE9EA90916A6 /* libPhoneNumber-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libPhoneNumber-iOS-prefix.pch"; sourceTree = ""; }; B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreTest.h; path = libPhoneNumber/NBMetadataCoreTest.h; sourceTree = ""; }; B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumber.h; path = libPhoneNumber/NBPhoneNumber.h; sourceTree = ""; }; @@ -178,17 +176,19 @@ B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataHelper.m; path = libPhoneNumber/NBMetadataHelper.m; sourceTree = ""; }; BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PhoneNumber+Codable.swift"; path = "PhoneNumberKit/PhoneNumber+Codable.swift"; sourceTree = ""; }; BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CountryCodePickerOptions.swift; path = PhoneNumberKit/UI/CountryCodePickerOptions.swift; sourceTree = ""; }; - BE203D64CF825C9DE24236F0EABC8B15 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBNumberFormat.h; path = libPhoneNumber/NBNumberFormat.h; sourceTree = ""; }; CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberDefines.h; path = libPhoneNumber/NBPhoneNumberDefines.h; sourceTree = ""; }; CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PartialFormatter.swift; path = PhoneNumberKit/PartialFormatter.swift; sourceTree = ""; }; CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberTextField.swift; path = PhoneNumberKit/UI/PhoneNumberTextField.swift; sourceTree = ""; }; D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RegexManager.swift; path = PhoneNumberKit/RegexManager.swift; sourceTree = ""; }; D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreTestMapper.m; path = libPhoneNumber/NBMetadataCoreTestMapper.m; sourceTree = ""; }; + DA248089480B703A6CF0F4D5F0763457 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBAsYouTypeFormatter.m; path = libPhoneNumber/NBAsYouTypeFormatter.m; sourceTree = ""; }; DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = PhoneNumberKit/Constants.swift; sourceTree = ""; }; + DC2AE9C0FD053575A7EF1FBE46EF0937 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreMapper.m; path = libPhoneNumber/NBMetadataCoreMapper.m; sourceTree = ""; }; DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSRegularExpression+Swift.swift"; path = "PhoneNumberKit/NSRegularExpression+Swift.swift"; sourceTree = ""; }; + DF13595F9FCDA7331E581063939A7AFE /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/ios/shared/compose-resources"; sourceTree = ""; }; E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataTypes.swift; path = PhoneNumberKit/MetadataTypes.swift; sourceTree = ""; }; E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; E4C923318724794E3CC670804C2D6A6B /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; @@ -199,46 +199,50 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 37B5BF7BC5DC29DAE5C248C5E5313EB0 /* Frameworks */ = { + 605448D15DC00A44741F9AA30D5C4748 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0070C9E39945EEBBCCB0E36ADECAC178 /* CoreTelephony.framework in Frameworks */, - 9046023D4739C2E73D0452445B291990 /* Foundation.framework in Frameworks */, + 58894EEAF3A3967440B4011AF26E0A50 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 582C3F96766BFC7D1A2DC2A02EAD5E53 /* Frameworks */ = { + A154FC3F27FAEB3747D141BFA48036B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 424D37EB62448AFFCF0E8C5E02FBE373 /* Foundation.framework in Frameworks */, + 20479AACC55DFFFFBC0B42B8D3C94102 /* CoreTelephony.framework in Frameworks */, + A842B8DE8CA37C87282C6DA13B6E7F19 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D81FEA5424135BC4E979DD3516B90E35 /* Frameworks */ = { + AD4245D3D8D7431F607B951143688628 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FBD50BFB36CA62EA92A04F5139DF82F0 /* Foundation.framework in Frameworks */, + 1E89E35C5E182E0F10B184521AFB1456 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0AA96B19D9D465600931113455D0AEA8 /* Pod */ = { + 0AA3985A588264E6AB492847C423FBB8 /* multiplatformContact */ = { isa = PBXGroup; children = ( - BE203D64CF825C9DE24236F0EABC8B15 /* multiplatformContact.podspec */, + DF13595F9FCDA7331E581063939A7AFE /* compose-resources */, + 657E76C0A9A155724851DD8C94C176C1 /* Frameworks */, + C7AB6E714D2F274DAA83091C9828E98D /* Pod */, + 720161D5E483914B949793C70251C965 /* Support Files */, ); - name = Pod; + name = multiplatformContact; + path = ../../multiplatformContact; sourceTree = ""; }; 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { isa = PBXGroup; children = ( - 9A948D16075C872653952B4F51BB4414 /* iOS */, + A48867DF2FFB0F2ADFC31801B07EB6DB /* iOS */, ); name = Frameworks; sourceTree = ""; @@ -258,6 +262,14 @@ path = "../Target Support Files/PhoneNumberKit"; sourceTree = ""; }; + 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */ = { + isa = PBXGroup; + children = ( + 0AA3985A588264E6AB492847C423FBB8 /* multiplatformContact */, + ); + name = "Development Pods"; + sourceTree = ""; + }; 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */ = { isa = PBXGroup; children = ( @@ -311,32 +323,24 @@ name = Pods; sourceTree = ""; }; - 53A4968774E7B4ABAE986CE90D656140 /* Development Pods */ = { + 657E76C0A9A155724851DD8C94C176C1 /* Frameworks */ = { isa = PBXGroup; children = ( - EC52A4258BCEAF68FD4662F544E0C74F /* multiplatformContact */, + DC2AE9C0FD053575A7EF1FBE46EF0937 /* shared.framework */, ); - name = "Development Pods"; + name = Frameworks; sourceTree = ""; }; - 59EDFFF4C0884817AEC471629804D764 /* Support Files */ = { + 720161D5E483914B949793C70251C965 /* Support Files */ = { isa = PBXGroup; children = ( - 521C69F7CC2BA71CA4791867DA4FB583 /* multiplatformContact.debug.xcconfig */, - 132F3796C1388068910A610051BB5BFB /* multiplatformContact.release.xcconfig */, + 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */, + A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */, ); name = "Support Files"; path = "../iosApp/Pods/Target Support Files/multiplatformContact"; sourceTree = ""; }; - 7F9A9F4DDD86D27105B102F7071748B5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 32266BD8D0BA129F1CC2369453917D60 /* shared.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 81EF83EA4D847AACCFA9B95070570D4F /* PhoneNumberKit */ = { isa = PBXGroup; children = ( @@ -366,11 +370,11 @@ name = Resources; sourceTree = ""; }; - 9A948D16075C872653952B4F51BB4414 /* iOS */ = { + A48867DF2FFB0F2ADFC31801B07EB6DB /* iOS */ = { isa = PBXGroup; children = ( - 233227AB7DA52B013DC3F3A203E8D145 /* CoreTelephony.framework */, - 167D028EF4A1EA71C721538F6DDB3F91 /* Foundation.framework */, + 2F36A95BD47FDB2CC1FD51AFC08A8D5A /* CoreTelephony.framework */, + 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */, ); name = iOS; sourceTree = ""; @@ -408,11 +412,19 @@ path = "Target Support Files/Pods-iosApp"; sourceTree = ""; }; + C7AB6E714D2F274DAA83091C9828E98D /* Pod */ = { + isa = PBXGroup; + children = ( + DA248089480B703A6CF0F4D5F0763457 /* multiplatformContact.podspec */, + ); + name = Pod; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 53A4968774E7B4ABAE986CE90D656140 /* Development Pods */, + 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */, 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, 4BDEE3376B110E6BDCBDA4A99686FCF9 /* Pods */, 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */, @@ -428,18 +440,6 @@ name = "Targets Support Files"; sourceTree = ""; }; - EC52A4258BCEAF68FD4662F544E0C74F /* multiplatformContact */ = { - isa = PBXGroup; - children = ( - 7AA79DB2BD4B79492887C3899C9A82DB /* compose-resources */, - 7F9A9F4DDD86D27105B102F7071748B5 /* Frameworks */, - 0AA96B19D9D465600931113455D0AEA8 /* Pod */, - 59EDFFF4C0884817AEC471629804D764 /* Support Files */, - ); - name = multiplatformContact; - path = /Users/mac/Downloads/MultiplatformContactsLib/multiplatformContact; - sourceTree = ""; - }; ED9462BD9C90B6DAAAFF089618AC8830 /* PhoneNumberKitCore */ = { isa = PBXGroup; children = ( @@ -466,40 +466,40 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 520E1B9CD43D77C44A8C4036EF7CD45E /* Headers */ = { + 15A21756203441DADB6427BEA9E3F529 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 66F0A543EEE190E036D37A14ED5BCBD7 /* libPhoneNumber-iOS-umbrella.h in Headers */, - DCE55AB7EF9057AFFB138E778402B20D /* NBAsYouTypeFormatter.h in Headers */, - A12602CE450E3C4B93528978600FEF4B /* NBMetadataCore.h in Headers */, - 41DDC5A39614E48F9B6C5E6F0B9A27D1 /* NBMetadataCoreMapper.h in Headers */, - C48477B7F144D31A7E84026C9414EBF8 /* NBMetadataCoreTest.h in Headers */, - 1D945C7298F6BE2D436596A69DA24683 /* NBMetadataCoreTestMapper.h in Headers */, - D18C6AE9D409041CC280BE82D75AB3D2 /* NBMetadataHelper.h in Headers */, - F26E2E1F79D8FF277F41FB1DA7610EA2 /* NBNumberFormat.h in Headers */, - 2D440B97BDD1F2611C20AE2731C06A2A /* NBPhoneMetaData.h in Headers */, - D7179C98C7E1401F5665719E8DE54109 /* NBPhoneNumber.h in Headers */, - 54C730E263DAAEA3186E18F4497C9258 /* NBPhoneNumberDefines.h in Headers */, - C0EEC392F48B0B583C049D480321170B /* NBPhoneNumberDesc.h in Headers */, - B61133B93278F3F4B026B6051722104D /* NBPhoneNumberUtil.h in Headers */, - BE15246C6073C8671DDC8CA0A4DF54EE /* NSArray+NBAdditions.h in Headers */, + 1D249CA00DB33AA343F596FEEB4BC3CE /* Pods-iosApp-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 830F533F24CF1764C73DAEB0836FA324 /* Headers */ = { + 23D3E789F458C9F848FFCEC3976BD47D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 2ABB7426BC74B9F758051F8B439FC3E1 /* PhoneNumberKit-umbrella.h in Headers */, + 3166EE4BFF52BE25B07F9D8BFA487BA6 /* PhoneNumberKit-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 912F5FF9B5C321B88B7973703680489E /* Headers */ = { + 275592CC12BEBD91BFA2C0FCE2A4338F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B5482EF9AE99708FFC24EDE8D813C48C /* Pods-iosApp-umbrella.h in Headers */, + 91E4B84F36B56460984DAA17CC674809 /* libPhoneNumber-iOS-umbrella.h in Headers */, + D8501BF537D8A9A0AB6BEDC905CCB4E6 /* NBAsYouTypeFormatter.h in Headers */, + 92FB501A664562789BA4F51F5005BD6D /* NBMetadataCore.h in Headers */, + 3A8DA368002721A9F14DD3AE53880E0B /* NBMetadataCoreMapper.h in Headers */, + 86CEDDFAF66F0E1378675995067A4A3C /* NBMetadataCoreTest.h in Headers */, + 2927AFA57B3DB98DC0D092A2D79F6DAF /* NBMetadataCoreTestMapper.h in Headers */, + DEA3DE4EA6E32B165CF0F9A533A6B28F /* NBMetadataHelper.h in Headers */, + DF2C2C402DB1475158BE2F5245B50F8A /* NBNumberFormat.h in Headers */, + 955CD9C12D0A29CD2BC5DD300234671B /* NBPhoneMetaData.h in Headers */, + 9AD5F666218C95E9FB5319E69441DC5A /* NBPhoneNumber.h in Headers */, + 05B096C5DBFE24C06E8A6B72667120D9 /* NBPhoneNumberDefines.h in Headers */, + 1F58DF9B3FBD1ABCBCF7A4105D8FF96C /* NBPhoneNumberDesc.h in Headers */, + 42AFC082890A295AE5671EAB165B3865 /* NBPhoneNumberUtil.h in Headers */, + B4FB4FE114ED104390B193C141C67B5F /* NSArray+NBAdditions.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -508,12 +508,12 @@ /* Begin PBXNativeTarget section */ BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = ED66E92C65497A91B001AD27B143E5B3 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */; + buildConfigurationList = 53C2A67E2BBE784DA13C7DE28AB53DA0 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */; buildPhases = ( - 520E1B9CD43D77C44A8C4036EF7CD45E /* Headers */, - 25F4B5E03B490D613D643C924B13904C /* Sources */, - 37B5BF7BC5DC29DAE5C248C5E5313EB0 /* Frameworks */, - B7279466C0AADBD5EAE530C1BC106640 /* Resources */, + 275592CC12BEBD91BFA2C0FCE2A4338F /* Headers */, + 2B61CA28367E4764711BE0B62E5D0AD1 /* Sources */, + A154FC3F27FAEB3747D141BFA48036B8 /* Frameworks */, + 3133D04BC7249E2170F8AE5F0CF27731 /* Resources */, ); buildRules = ( ); @@ -526,12 +526,12 @@ }; C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 22A6575DFD2DB6CC7795B847CF23E097 /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */; + buildConfigurationList = D69A2690A19DB6C00652BF4FC6D081BD /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */; buildPhases = ( - 830F533F24CF1764C73DAEB0836FA324 /* Headers */, - F8EF357CCCFD774E6A723445A330B99A /* Sources */, - 582C3F96766BFC7D1A2DC2A02EAD5E53 /* Frameworks */, - AC3F6B37CD00CC7D8590E79984BAFAFE /* Resources */, + 23D3E789F458C9F848FFCEC3976BD47D /* Headers */, + 2180A9BF07E91A8FCA69CD5A6EFF7ECF /* Sources */, + 605448D15DC00A44741F9AA30D5C4748 /* Frameworks */, + EB80D0D867EF4A6B21AEE76E3DEBA15E /* Resources */, ); buildRules = ( ); @@ -544,19 +544,19 @@ }; ED39C638569286489CD697A6C8964146 /* Pods-iosApp */ = { isa = PBXNativeTarget; - buildConfigurationList = 9976D54D9693E7F2E3248CAE8C0819CC /* Build configuration list for PBXNativeTarget "Pods-iosApp" */; + buildConfigurationList = 14930E85E04E5EFAE1C2ACAB80E07A0A /* Build configuration list for PBXNativeTarget "Pods-iosApp" */; buildPhases = ( - 912F5FF9B5C321B88B7973703680489E /* Headers */, - 385E75A6F9C033D5CDB45A8555A9A03C /* Sources */, - D81FEA5424135BC4E979DD3516B90E35 /* Frameworks */, - A37465B8182A0F46B987B72D492AE698 /* Resources */, + 15A21756203441DADB6427BEA9E3F529 /* Headers */, + 91D3B6862BCEC8670824FC89FE0FD93A /* Sources */, + AD4245D3D8D7431F607B951143688628 /* Frameworks */, + D85A77373AC95A7C870F6D3AC828A362 /* Resources */, ); buildRules = ( ); dependencies = ( - 0DB56696AAE57CBFD0C5276B441ED95F /* PBXTargetDependency */, - 4010A617B9E9BEC6C1F0C6ED448A0084 /* PBXTargetDependency */, - 63DF746B54C39538DDF2904257C1FAFA /* PBXTargetDependency */, + B4ABE96E31A669CFFA832F54210F011D /* PBXTargetDependency */, + 6E23E07C721EA306BD094E4B8C6F5F03 /* PBXTargetDependency */, + 42D083C68EA3F69C64E9F609B20F02B6 /* PBXTargetDependency */, ); name = "Pods-iosApp"; productName = Pods_iosApp; @@ -569,8 +569,8 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1500; - LastUpgradeCheck = 1500; + LastSwiftUpdateCheck = 1600; + LastUpgradeCheck = 1600; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 12.0"; @@ -582,6 +582,7 @@ ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; minimizedProjectReferenceProxies = 0; + preferredProjectObjectVersion = 77; productRefGroup = 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -595,25 +596,25 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - A37465B8182A0F46B987B72D492AE698 /* Resources */ = { + 3133D04BC7249E2170F8AE5F0CF27731 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - AC3F6B37CD00CC7D8590E79984BAFAFE /* Resources */ = { + D85A77373AC95A7C870F6D3AC828A362 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 782AF8E1A290480A81FD3569C1BA2209 /* PhoneNumberMetadata.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - B7279466C0AADBD5EAE530C1BC106640 /* Resources */ = { + EB80D0D867EF4A6B21AEE76E3DEBA15E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 35A06389E150A54A6E27935BC82BD99C /* PhoneNumberMetadata.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -633,74 +634,68 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 25F4B5E03B490D613D643C924B13904C /* Sources */ = { + 2180A9BF07E91A8FCA69CD5A6EFF7ECF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2ECCE75AEBA313807A138E6C43065ABA /* libPhoneNumber-iOS-dummy.m in Sources */, - 74ADBC091F561112A6E0540607AECFAB /* NBAsYouTypeFormatter.m in Sources */, - 026EA818C68A627003C903E7F1FF4CEF /* NBMetadataCore.m in Sources */, - 70CC6B8F16D42D4C0816716A24993E1A /* NBMetadataCoreMapper.m in Sources */, - 18EDA100A8B6D2B8A8F82163B22147A3 /* NBMetadataCoreTest.m in Sources */, - AAE95AF843222C3EB1558B8C654E33D5 /* NBMetadataCoreTestMapper.m in Sources */, - 537C6367CCE8F9D940A306A2759F424E /* NBMetadataHelper.m in Sources */, - 60CC77F923ED2BFB9891D7B840693506 /* NBNumberFormat.m in Sources */, - 69EC68431ADC6245680CE73205FB8754 /* NBPhoneMetaData.m in Sources */, - 179B28D7FCB1AB9D66745DFCB3532735 /* NBPhoneNumber.m in Sources */, - 8ECC79DEB91B9A5F6381C34680DBD110 /* NBPhoneNumberDesc.m in Sources */, - FE9B14F28FCED85A8C45E63459339B7B /* NBPhoneNumberUtil.m in Sources */, - 5E631C90E2B9CE410C6E78177DEC701D /* NSArray+NBAdditions.m in Sources */, + 2390DD18794EBCB0FC7B8E7E8C2A07B5 /* Bundle+Resources.swift in Sources */, + CF99B850B8EC239DCD08E458E2BB50D5 /* Constants.swift in Sources */, + BFA8E4A26B9635B0EBD49C6618DAF802 /* CountryCodePickerOptions.swift in Sources */, + 5FA5D639126C8DB2C0ABCB36AD6EAFBA /* CountryCodePickerViewController.swift in Sources */, + 521E5C6BB548A57D6853D356AB0FC043 /* Formatter.swift in Sources */, + A9430136EECF2BEB637F11795455B8E9 /* MetadataManager.swift in Sources */, + F85AF515EA7A9C451B3427C99B5A675E /* MetadataParsing.swift in Sources */, + E3DEEF69A6F112E2B0E91B582617815B /* MetadataTypes.swift in Sources */, + 0FB71323A2CEDF312522F722B6D118F1 /* NSRegularExpression+Swift.swift in Sources */, + 5A7C5BBBC708E39B709BB90FE6A98D15 /* ParseManager.swift in Sources */, + F32AEB7F807279B10C4A9C8DC107C7BD /* PartialFormatter.swift in Sources */, + 6033666E799437E615B5559ADC197277 /* PhoneNumber.swift in Sources */, + 5F976AD73176DFD883BCABB720BD35AF /* PhoneNumber+Codable.swift in Sources */, + 7CBF0088F2C651A8BD40B1907136226C /* PhoneNumberFormatter.swift in Sources */, + F1DB4D0F6B76E1F2DB5DBDE42822380C /* PhoneNumberKit.swift in Sources */, + F13DF3E21C705A8BD9BABAADFF778028 /* PhoneNumberKit-dummy.m in Sources */, + 1000D9AEBA85E25C1FBF524165316CFE /* PhoneNumberParser.swift in Sources */, + 4E67EC4AFA6B8EC9044BB0997F3A68E3 /* PhoneNumberTextField.swift in Sources */, + 67AF83238CCD31D448D5F5C291D7F7E1 /* RegexManager.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 385E75A6F9C033D5CDB45A8555A9A03C /* Sources */ = { + 2B61CA28367E4764711BE0B62E5D0AD1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5D07275E20612FC24E1F97519614FAE7 /* Pods-iosApp-dummy.m in Sources */, + 85293AB11BCC819609B57E8CFA9446EC /* libPhoneNumber-iOS-dummy.m in Sources */, + 625EEF924FCA8FD7AB4390A85E55EC21 /* NBAsYouTypeFormatter.m in Sources */, + CA5FBEB7DE6030D9404A3E2B6AB5475A /* NBMetadataCore.m in Sources */, + 6887B8A6F1A5A8BAEB8B4225CCA3E0A9 /* NBMetadataCoreMapper.m in Sources */, + BA6FFCF3F70CE917090C3B1E547B8D10 /* NBMetadataCoreTest.m in Sources */, + 47892BC610F39957CC665F61106C7C54 /* NBMetadataCoreTestMapper.m in Sources */, + 3445FE96D35A3F4F2DE5AD5210FABAC8 /* NBMetadataHelper.m in Sources */, + 94963BE56F8B5C02460E10A7516D79A9 /* NBNumberFormat.m in Sources */, + 7A05F0DFFBA35FC29EDA33C14BC1AB55 /* NBPhoneMetaData.m in Sources */, + BBB97D788FDF6D94A2231A1394C44AE6 /* NBPhoneNumber.m in Sources */, + A121BCD209C84F555DEC4D3BD71B1A0D /* NBPhoneNumberDesc.m in Sources */, + 2B8679564FB44CA974F6866145DA4CE0 /* NBPhoneNumberUtil.m in Sources */, + 2840AB863DF84B3435536366454B3228 /* NSArray+NBAdditions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F8EF357CCCFD774E6A723445A330B99A /* Sources */ = { + 91D3B6862BCEC8670824FC89FE0FD93A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BF35C4949EDED02FE4417F730F0A3EB5 /* Bundle+Resources.swift in Sources */, - 4B5BA42BADE1C7771B4F5F92FF322501 /* Constants.swift in Sources */, - F67DBD66A0C8A4C06AFD18187F257305 /* CountryCodePickerOptions.swift in Sources */, - 2E9D2BB90BDFF169E281010E3E91AE20 /* CountryCodePickerViewController.swift in Sources */, - 69AF69FF54EC0BE69AD5FE15255F1358 /* Formatter.swift in Sources */, - 8FE868B295618263DFE4F79A041269EB /* MetadataManager.swift in Sources */, - 61B75CAFD8883D630F49EB35839ED77A /* MetadataParsing.swift in Sources */, - 3ED8A6D87C5380FA48AABC8FF9834D3C /* MetadataTypes.swift in Sources */, - 2996CF6097474129697EA169F7E959A3 /* NSRegularExpression+Swift.swift in Sources */, - 5DC9474CE9A996AD0D53E23CFA904024 /* ParseManager.swift in Sources */, - 43BFC4953D464638AEDDAFEDDD4CA0F4 /* PartialFormatter.swift in Sources */, - 85FC88D86D60C2271D7A25B3ECE5DB1A /* PhoneNumber.swift in Sources */, - 226166AB6B6F04F320BCEC1DAC63F194 /* PhoneNumber+Codable.swift in Sources */, - 4818E52307D7786C9524B75D09C27559 /* PhoneNumberFormatter.swift in Sources */, - EB9F1658DB85E9D0BC9F3A354C4C9C0F /* PhoneNumberKit.swift in Sources */, - 160F82A95B791A239DCFCC8FD46C695F /* PhoneNumberKit-dummy.m in Sources */, - 9718A978E7E81A2255A9606FAF119BB4 /* PhoneNumberParser.swift in Sources */, - CDEE519871A73F73C44B93C7EA3AF23A /* PhoneNumberTextField.swift in Sources */, - F81B3566F42FA2A768E4692CC083833D /* RegexManager.swift in Sources */, + 3526CB281B853768A869EC963FB7275C /* Pods-iosApp-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0DB56696AAE57CBFD0C5276B441ED95F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PhoneNumberKit; - target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; - targetProxy = 6EEE6A127C0719B51BE52F2326A022D4 /* PBXContainerItemProxy */; - }; - 4010A617B9E9BEC6C1F0C6ED448A0084 /* PBXTargetDependency */ = { + 42D083C68EA3F69C64E9F609B20F02B6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "libPhoneNumber-iOS"; - target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; - targetProxy = 847146FDF4A97260A591028D5287C346 /* PBXContainerItemProxy */; + name = multiplatformContact; + target = 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */; + targetProxy = 38411F75B2729CD2C32D77AC299B5999 /* PBXContainerItemProxy */; }; 5019C052F98099A002C27025B1539EF4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -708,11 +703,11 @@ target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; targetProxy = 48B0FF678CA9C14E135894A5DAAFF7BC /* PBXContainerItemProxy */; }; - 63DF746B54C39538DDF2904257C1FAFA /* PBXTargetDependency */ = { + 6E23E07C721EA306BD094E4B8C6F5F03 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = multiplatformContact; - target = 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */; - targetProxy = 8538D95FA1ADF8A0509965E8BCDBC78D /* PBXContainerItemProxy */; + name = "libPhoneNumber-iOS"; + target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; + targetProxy = CEEA6D59C2AC1812C0B5537B8B329172 /* PBXContainerItemProxy */; }; AF144B775869EE38833972A8515C6060 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -720,13 +715,20 @@ target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; targetProxy = F19CEBEB71195F286CC5ACD661BAE11C /* PBXContainerItemProxy */; }; + B4ABE96E31A669CFFA832F54210F011D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PhoneNumberKit; + target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; + targetProxy = 5433DACEFA172C9A4B41810E491FE300 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0CFAF567976BE88CE005352096192D9A /* Debug */ = { + 2AD46E1F1AE84EAEEA3B4530DF79CFF1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */; + baseConfigurationReference = E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -736,41 +738,66 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; - PRODUCT_MODULE_NAME = PhoneNumberKit; - PRODUCT_NAME = PhoneNumberKit; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 1FBCE2729B98AA70908A9EC6F52087EB /* Debug */ = { + 44C0738684307B9E3A4AF9B12CEFE991 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 521C69F7CC2BA71CA4791867DA4FB583 /* multiplatformContact.debug.xcconfig */; + baseConfigurationReference = 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_OBJC_WEAK = NO; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", + "@loader_path/Frameworks", ); + MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; + PRODUCT_MODULE_NAME = PhoneNumberKit; + PRODUCT_NAME = PhoneNumberKit; SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; @@ -840,9 +867,87 @@ }; name = Debug; }; - 8AE00AD4F347400DDAD1686C99214F65 /* Debug */ = { + 5A9166103A863358ACAF37075F891B19 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; + PRODUCT_MODULE_NAME = PhoneNumberKit; + PRODUCT_NAME = PhoneNumberKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 67666281A965348B3C8B9139AE054566 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap"; + PRODUCT_MODULE_NAME = libPhoneNumber_iOS; + PRODUCT_NAME = libPhoneNumber_iOS; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 73A1E0CC00641873B2B7636C79D9E2C3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -854,6 +959,8 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; @@ -872,10 +979,11 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; 8B5A46FF8D3C1289CDEE3BAFACABCD2A /* Release */ = { isa = XCBuildConfiguration; @@ -939,48 +1047,14 @@ }; name = Release; }; - 8BBA973B7DE3BE5299980491213FA12D /* Release */ = { + 91761F655210D509D805591211054927 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap"; - PRODUCT_MODULE_NAME = libPhoneNumber_iOS; - PRODUCT_NAME = libPhoneNumber_iOS; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - AA78241B6E5D4EE60FA89E6CE2709175 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 132F3796C1388068910A610051BB5BFB /* multiplatformContact.release.xcconfig */; + baseConfigurationReference = A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_OBJC_WEAK = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -992,42 +1066,25 @@ }; name = Release; }; - AC739B7B8DBAD2ECCDAFD615E6D8E78D /* Release */ = { + B375EC5C48861FD1EB69B49982B37837 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */; + baseConfigurationReference = 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", - "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; - PRODUCT_MODULE_NAME = PhoneNumberKit; - PRODUCT_NAME = PhoneNumberKit; SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - C2EEB77826DED841A015F49C99016368 /* Debug */ = { + FE8E6009EE03A9E8A74E95D5FB73B5B9 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */; buildSettings = { @@ -1039,7 +1096,10 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1054,6 +1114,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -1061,52 +1122,14 @@ }; name = Debug; }; - EF707BA63AB7DF25DA2B5196D822A662 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-iosApp/Pods-iosApp.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 22A6575DFD2DB6CC7795B847CF23E097 /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */ = { + 14930E85E04E5EFAE1C2ACAB80E07A0A /* Build configuration list for PBXNativeTarget "Pods-iosApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0CFAF567976BE88CE005352096192D9A /* Debug */, - AC739B7B8DBAD2ECCDAFD615E6D8E78D /* Release */, + 2AD46E1F1AE84EAEEA3B4530DF79CFF1 /* Debug */, + 73A1E0CC00641873B2B7636C79D9E2C3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1120,29 +1143,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6FECE8E15F2F56BC8351B04D0BAE14BE /* Build configuration list for PBXAggregateTarget "multiplatformContact" */ = { + 53C2A67E2BBE784DA13C7DE28AB53DA0 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1FBCE2729B98AA70908A9EC6F52087EB /* Debug */, - AA78241B6E5D4EE60FA89E6CE2709175 /* Release */, + FE8E6009EE03A9E8A74E95D5FB73B5B9 /* Debug */, + 67666281A965348B3C8B9139AE054566 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9976D54D9693E7F2E3248CAE8C0819CC /* Build configuration list for PBXNativeTarget "Pods-iosApp" */ = { + 6FECE8E15F2F56BC8351B04D0BAE14BE /* Build configuration list for PBXAggregateTarget "multiplatformContact" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8AE00AD4F347400DDAD1686C99214F65 /* Debug */, - EF707BA63AB7DF25DA2B5196D822A662 /* Release */, + B375EC5C48861FD1EB69B49982B37837 /* Debug */, + 91761F655210D509D805591211054927 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - ED66E92C65497A91B001AD27B143E5B3 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */ = { + D69A2690A19DB6C00652BF4FC6D081BD /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - C2EEB77826DED841A015F49C99016368 /* Debug */, - 8BBA973B7DE3BE5299980491213FA12D /* Release */, + 44C0738684307B9E3A4AF9B12CEFE991 /* Debug */, + 5A9166103A863358ACAF37075F891B19 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig index e6d72d4..12f353a 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig @@ -6,6 +6,7 @@ HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberK LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "CoreTelephony" -framework "PhoneNumberKit" -framework "libPhoneNumber_iOS" -framework "shared" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig index e6d72d4..12f353a 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig @@ -6,6 +6,7 @@ HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberK LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "CoreTelephony" -framework "PhoneNumberKit" -framework "libPhoneNumber_iOS" -framework "shared" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index 2f734de..c521942 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -10,21 +10,21 @@ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 4071D1FE6353F5B506D54D99 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E66142C8499E549773BADCEB /* Pods_iosApp.framework */; }; 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; + 94DCDBA55F2E29FD12EDA3EF /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 771DFA73C620997C79BB711C /* Pods_iosApp.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; + 39F6ECA13CFBE6E4AB5D6D7A /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + 58B9A344308011FB9CD22BC5 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 7555FF7B242A565900829871 /* MultiplatformContacts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultiplatformContacts.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 830A709ECA7F2897A3888F33 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 771DFA73C620997C79BB711C /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; - B76157FDA6118F9A8C70581B /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - E66142C8499E549773BADCEB /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -32,7 +32,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4071D1FE6353F5B506D54D99 /* Pods_iosApp.framework in Frameworks */, + 94DCDBA55F2E29FD12EDA3EF /* Pods_iosApp.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -47,22 +47,32 @@ path = "Preview Content"; sourceTree = ""; }; - 42799AB246E5F90AF97AA0EF /* Frameworks */ = { + 3174111F6710204F57BA6A98 /* Frameworks */ = { isa = PBXGroup; children = ( - E66142C8499E549773BADCEB /* Pods_iosApp.framework */, + 771DFA73C620997C79BB711C /* Pods_iosApp.framework */, ); name = Frameworks; sourceTree = ""; }; + 752B2644E372C606A66E1C63 /* Pods */ = { + isa = PBXGroup; + children = ( + 39F6ECA13CFBE6E4AB5D6D7A /* Pods-iosApp.debug.xcconfig */, + 58B9A344308011FB9CD22BC5 /* Pods-iosApp.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; 7555FF72242A565900829871 = { isa = PBXGroup; children = ( AB1DB47929225F7C00F7AF9C /* Configuration */, 7555FF7D242A565900829871 /* iosApp */, 7555FF7C242A565900829871 /* Products */, - 42799AB246E5F90AF97AA0EF /* Frameworks */, - A708DA789548C737BF479F0D /* Pods */, + 752B2644E372C606A66E1C63 /* Pods */, + 3174111F6710204F57BA6A98 /* Frameworks */, ); sourceTree = ""; }; @@ -86,16 +96,6 @@ path = iosApp; sourceTree = ""; }; - A708DA789548C737BF479F0D /* Pods */ = { - isa = PBXGroup; - children = ( - B76157FDA6118F9A8C70581B /* Pods-iosApp.debug.xcconfig */, - 830A709ECA7F2897A3888F33 /* Pods-iosApp.release.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; AB1DB47929225F7C00F7AF9C /* Configuration */ = { isa = PBXGroup; children = ( @@ -111,13 +111,13 @@ isa = PBXNativeTarget; buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; buildPhases = ( - 26EA925303D4DBD782076D33 /* [CP] Check Pods Manifest.lock */, + DC563CEBAF260E6AF97BBFAD /* [CP] Check Pods Manifest.lock */, F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, - FA02B83A9BED9D02AD0EE4A1 /* [CP] Embed Pods Frameworks */, - 11EA29C7CF484DD5F52358BB /* [CP] Copy Pods Resources */, + 21716FF7C9338C9E399F7EBB /* [CP] Embed Pods Frameworks */, + 76573713339202C195B8CBCC /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -174,7 +174,24 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 11EA29C7CF484DD5F52358BB /* [CP] Copy Pods Resources */ = { + 21716FF7C9338C9E399F7EBB /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 76573713339202C195B8CBCC /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -191,7 +208,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 26EA925303D4DBD782076D33 /* [CP] Check Pods Manifest.lock */ = { + DC563CEBAF260E6AF97BBFAD /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -231,23 +248,6 @@ shellPath = /bin/sh; shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :sample:common:embedAndSignAppleFrameworkForXcode\n"; }; - FA02B83A9BED9D02AD0EE4A1 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -383,7 +383,7 @@ }; 7555FFA6242A565B00829871 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B76157FDA6118F9A8C70581B /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = 39F6ECA13CFBE6E4AB5D6D7A /* Pods-iosApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -413,7 +413,7 @@ }; 7555FFA7242A565B00829871 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 830A709ECA7F2897A3888F33 /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = 58B9A344308011FB9CD22BC5 /* Pods-iosApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index f5c74e3..b9bc81e 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -34,12 +34,10 @@ kotlin { // Must define the pods that are in the Podfile (Is this just the way it works?) pod("PhoneNumberKit") { version ="3.7" - // version = "7.4.0" // for GoogleMapsUtils 4.2.2 (doesn't build for some c-interop reason, waiting for 5.0.0) extraOpts += listOf("-compiler-option", "-fmodules") } pod("libPhoneNumber-iOS") { version ="0.8" - // version = "7.4.0" // for GoogleMapsUtils 4.2.2 (doesn't build for some c-interop reason, waiting for 5.0.0) extraOpts += listOf("-compiler-option", "-fmodules") } } From df070876061646711a8e451206dcff642e6ad4b3 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Wed, 5 Mar 2025 13:36:15 +0300 Subject: [PATCH 4/7] updated ios module config --- iosApp/Podfile | 6 +- iosApp/Podfile.lock | 24 +- .../multiplatformContact.podspec.json | 8 - iosApp/Pods/Manifest.lock | 24 +- iosApp/Pods/PhoneNumberKit/LICENSE | 21 - .../PhoneNumberKit/Bundle+Resources.swift | 40 - .../PhoneNumberKit/Constants.swift | 156 - .../PhoneNumberKit/Formatter.swift | 120 - .../PhoneNumberKit/MetadataManager.swift | 94 - .../PhoneNumberKit/MetadataParsing.swift | 161 - .../PhoneNumberKit/MetadataTypes.swift | 104 - .../NSRegularExpression+Swift.swift | 84 - .../PhoneNumberKit/ParseManager.swift | 197 - .../PhoneNumberKit/PartialFormatter.swift | 424 - .../PhoneNumberKit/PhoneNumber+Codable.swift | 144 - .../PhoneNumberKit/PhoneNumber.swift | 95 - .../PhoneNumberKit/PhoneNumberFormatter.swift | 223 - .../PhoneNumberKit/PhoneNumberKit.swift | 362 - .../PhoneNumberKit/PhoneNumberParser.swift | 299 - .../PhoneNumberKit/RegexManager.swift | 208 - .../Resources/PhoneNumberMetadata.json | 1 - .../UI/CountryCodePickerOptions.swift | 59 - .../UI/CountryCodePickerViewController.swift | 303 - .../UI/PhoneNumberTextField.swift | 622 - iosApp/Pods/PhoneNumberKit/README.md | 192 - iosApp/Pods/Pods.xcodeproj/project.pbxproj | 768 +- .../PhoneNumberKit/PhoneNumberKit-Info.plist | 26 - .../PhoneNumberKit/PhoneNumberKit-dummy.m | 5 - .../PhoneNumberKit/PhoneNumberKit-prefix.pch | 12 - .../PhoneNumberKit/PhoneNumberKit-umbrella.h | 16 - .../PhoneNumberKit.debug.xcconfig | 15 - .../PhoneNumberKit/PhoneNumberKit.modulemap | 6 - .../PhoneNumberKit.release.xcconfig | 15 - .../Pods-iosApp-acknowledgements.markdown | 205 - .../Pods-iosApp-acknowledgements.plist | 217 - ...pp-frameworks-Debug-input-files.xcfilelist | 3 - ...p-frameworks-Debug-output-files.xcfilelist | 2 - ...-frameworks-Release-input-files.xcfilelist | 3 - ...frameworks-Release-output-files.xcfilelist | 2 - .../Pods-iosApp/Pods-iosApp-frameworks.sh | 188 - .../Pods-iosApp/Pods-iosApp.debug.xcconfig | 12 +- .../Pods-iosApp/Pods-iosApp.release.xcconfig | 12 +- .../libPhoneNumber-iOS-Info.plist | 26 - .../libPhoneNumber-iOS-dummy.m | 5 - .../libPhoneNumber-iOS-prefix.pch | 12 - .../libPhoneNumber-iOS-umbrella.h | 29 - .../libPhoneNumber-iOS.debug.xcconfig | 13 - .../libPhoneNumber-iOS.modulemap | 6 - .../libPhoneNumber-iOS.release.xcconfig | 13 - .../multiplatformContact.debug.xcconfig | 2 +- .../multiplatformContact.release.xcconfig | 2 +- iosApp/Pods/libPhoneNumber-iOS/LICENSE | 176 - iosApp/Pods/libPhoneNumber-iOS/README.md | 121 - .../libPhoneNumber/NBAsYouTypeFormatter.h | 31 - .../libPhoneNumber/NBAsYouTypeFormatter.m | 1241 -- .../libPhoneNumber/NBMetadataCore.h | 762 - .../libPhoneNumber/NBMetadataCore.m | 14078 ---------------- .../libPhoneNumber/NBMetadataCoreMapper.h | 8 - .../libPhoneNumber/NBMetadataCoreMapper.m | 915 - .../libPhoneNumber/NBMetadataCoreTest.h | 93 - .../libPhoneNumber/NBMetadataCoreTest.m | 1619 -- .../libPhoneNumber/NBMetadataCoreTestMapper.h | 8 - .../libPhoneNumber/NBMetadataCoreTestMapper.m | 116 - .../libPhoneNumber/NBMetadataHelper.h | 32 - .../libPhoneNumber/NBMetadataHelper.m | 259 - .../libPhoneNumber/NBNumberFormat.h | 22 - .../libPhoneNumber/NBNumberFormat.m | 98 - .../libPhoneNumber/NBPhoneMetaData.h | 43 - .../libPhoneNumber/NBPhoneMetaData.m | 106 - .../libPhoneNumber/NBPhoneNumber.h | 25 - .../libPhoneNumber/NBPhoneNumber.m | 119 - .../libPhoneNumber/NBPhoneNumberDefines.h | 85 - .../libPhoneNumber/NBPhoneNumberDesc.h | 19 - .../libPhoneNumber/NBPhoneNumberDesc.m | 105 - .../libPhoneNumber/NBPhoneNumberUtil.h | 98 - .../libPhoneNumber/NBPhoneNumberUtil.m | 3829 ----- .../libPhoneNumber/NSArray+NBAdditions.h | 15 - .../libPhoneNumber/NSArray+NBAdditions.m | 28 - iosApp/iosApp.xcodeproj/project.pbxproj | 79 +- multiplatformContact/build.gradle.kts | 16 +- .../multiplatformContact.podspec | 3 +- .../iosMain/kotlin/multiContacts/Picker.kt | 31 +- sample/ios/iosApp.xcodeproj/project.pbxproj | 2 +- 83 files changed, 151 insertions(+), 29617 deletions(-) delete mode 100644 iosApp/Pods/PhoneNumberKit/LICENSE delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/ParseManager.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift delete mode 100644 iosApp/Pods/PhoneNumberKit/README.md delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap delete mode 100644 iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig delete mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist delete mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist delete mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist delete mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist delete mode 100755 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap delete mode 100644 iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/LICENSE delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/README.md delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h delete mode 100644 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h delete mode 100755 iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m diff --git a/iosApp/Podfile b/iosApp/Podfile index e12bcd8..7696d98 100644 --- a/iosApp/Podfile +++ b/iosApp/Podfile @@ -5,9 +5,9 @@ target 'iosApp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! platform :ios, '14.0' # ios.deploymentTarget - pod 'PhoneNumberKit', '~> 3.7' - - pod 'libPhoneNumber-iOS', '~> 0.8' +# pod 'PhoneNumberKit', '~> 3.7' +# +# pod 'libPhoneNumber-iOS', '~> 0.8' pod 'multiplatformContact', :path => '../multiplatformContact' # Pods for iosApp diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock index 6eecc9e..9e45ffd 100644 --- a/iosApp/Podfile.lock +++ b/iosApp/Podfile.lock @@ -1,34 +1,16 @@ PODS: - - libPhoneNumber-iOS (0.8.0) - - multiplatformContact (1.0.0): - - libPhoneNumber-iOS (= 0.8) - - PhoneNumberKit (= 3.7) - - PhoneNumberKit (3.7.0): - - PhoneNumberKit/PhoneNumberKitCore (= 3.7.0) - - PhoneNumberKit/UIKit (= 3.7.0) - - PhoneNumberKit/PhoneNumberKitCore (3.7.0) - - PhoneNumberKit/UIKit (3.7.0): - - PhoneNumberKit/PhoneNumberKitCore + - multiplatformContact (1.0.0) DEPENDENCIES: - - libPhoneNumber-iOS (~> 0.8) - multiplatformContact (from `../multiplatformContact`) - - PhoneNumberKit (~> 3.7) - -SPEC REPOS: - trunk: - - libPhoneNumber-iOS - - PhoneNumberKit EXTERNAL SOURCES: multiplatformContact: :path: "../multiplatformContact" SPEC CHECKSUMS: - libPhoneNumber-iOS: 6ad6dd425bea574d44885cc673b4b78ed7e9a355 - multiplatformContact: df498eb245ce2ee8c1d1d42a79cecec94792b46f - PhoneNumberKit: e8b8eb321385c969f5f350e0ef4104c38eebf2d0 + multiplatformContact: e313b72b77ce8131faff645367489c1b90d8a96c -PODFILE CHECKSUM: c527826ef5d749b600c301693a20079a1b559161 +PODFILE CHECKSUM: 0fceeaded57cfa26aeb77819576c80092a2dea18 COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json b/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json index ebbb482..316f139 100644 --- a/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json +++ b/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json @@ -13,14 +13,6 @@ "platforms": { "ios": "14.0" }, - "dependencies": { - "PhoneNumberKit": [ - "3.7" - ], - "libPhoneNumber-iOS": [ - "0.8" - ] - }, "pod_target_xcconfig": { "KOTLIN_PROJECT_PATH": ":multiplatformContact", "PRODUCT_MODULE_NAME": "shared" diff --git a/iosApp/Pods/Manifest.lock b/iosApp/Pods/Manifest.lock index 6eecc9e..9e45ffd 100644 --- a/iosApp/Pods/Manifest.lock +++ b/iosApp/Pods/Manifest.lock @@ -1,34 +1,16 @@ PODS: - - libPhoneNumber-iOS (0.8.0) - - multiplatformContact (1.0.0): - - libPhoneNumber-iOS (= 0.8) - - PhoneNumberKit (= 3.7) - - PhoneNumberKit (3.7.0): - - PhoneNumberKit/PhoneNumberKitCore (= 3.7.0) - - PhoneNumberKit/UIKit (= 3.7.0) - - PhoneNumberKit/PhoneNumberKitCore (3.7.0) - - PhoneNumberKit/UIKit (3.7.0): - - PhoneNumberKit/PhoneNumberKitCore + - multiplatformContact (1.0.0) DEPENDENCIES: - - libPhoneNumber-iOS (~> 0.8) - multiplatformContact (from `../multiplatformContact`) - - PhoneNumberKit (~> 3.7) - -SPEC REPOS: - trunk: - - libPhoneNumber-iOS - - PhoneNumberKit EXTERNAL SOURCES: multiplatformContact: :path: "../multiplatformContact" SPEC CHECKSUMS: - libPhoneNumber-iOS: 6ad6dd425bea574d44885cc673b4b78ed7e9a355 - multiplatformContact: df498eb245ce2ee8c1d1d42a79cecec94792b46f - PhoneNumberKit: e8b8eb321385c969f5f350e0ef4104c38eebf2d0 + multiplatformContact: e313b72b77ce8131faff645367489c1b90d8a96c -PODFILE CHECKSUM: c527826ef5d749b600c301693a20079a1b559161 +PODFILE CHECKSUM: 0fceeaded57cfa26aeb77819576c80092a2dea18 COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/PhoneNumberKit/LICENSE b/iosApp/Pods/PhoneNumberKit/LICENSE deleted file mode 100644 index f6314a6..0000000 --- a/iosApp/Pods/PhoneNumberKit/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2018 Roy Marmelstein - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift deleted file mode 100644 index 9eeb008..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Bundle+Resources.swift +++ /dev/null @@ -1,40 +0,0 @@ -import Foundation - -private class CurrentBundleFinder {} - -// The custom bundle locator code is needed to work around a bug in Xcode -// where SwiftUI previews in an SPM module will crash if they try to use -// resources in another SPM module that are loaded using the synthesized -// Bundle.module accessor. -// -extension Bundle { - static var phoneNumberKit: Bundle = { - #if DEBUG && SWIFT_PACKAGE - let bundleName = "PhoneNumberKit_PhoneNumberKit" - let candidates = [ - /* Bundle should be present here when the package is linked into an App. */ - Bundle.main.resourceURL, - /* Bundle should be present here when the package is linked into a framework. */ - Bundle(for: CurrentBundleFinder.self).resourceURL, - /* For command-line tools. */ - Bundle.main.bundleURL, - /* Bundle should be present here when running previews from a different package (this is the path to "…/Debug-iphonesimulator/"). */ - Bundle(for: CurrentBundleFinder.self).resourceURL?.deletingLastPathComponent().deletingLastPathComponent(), - /* Bundle should be present here when running previews from a framework which imports framework whick imports PhoneNumberKit package (this is the path to "…/Debug-iphonesimulator/"). */ - Bundle(for: CurrentBundleFinder.self).resourceURL?.deletingLastPathComponent() - ] - for candidate in candidates { - let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle") - if let bundle = bundlePath.flatMap(Bundle.init(url:)) { - return bundle - } - } - #endif - - #if SWIFT_PACKAGE - return Bundle.module - #else - return Bundle(for: CurrentBundleFinder.self) - #endif - }() -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift deleted file mode 100644 index cde03ad..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Constants.swift +++ /dev/null @@ -1,156 +0,0 @@ -// -// Constants.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 25/10/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -// MARK: Private Enums - -enum PhoneNumberCountryCodeSource { - case numberWithPlusSign - case numberWithIDD - case numberWithoutPlusSign - case defaultCountry -} - -// MARK: Public Enums - -/** - Enumeration for parsing error types - - - GeneralError: A general error occured. - - InvalidCountryCode: A country code could not be found or the one found was invalid - - InvalidNumber: The string provided is not a number - - TooLong: The string provided is too long to be a valid number - - TooShort: The string provided is too short to be a valid number - - Deprecated: The method used was deprecated - - metadataNotFound: PhoneNumberKit was unable to read the included metadata - - ambiguousNumber: The string could not be resolved to a single valid number - */ -public enum PhoneNumberError: Error, Equatable { - case generalError - case invalidCountryCode - case invalidNumber - case tooLong - case tooShort - case deprecated - case metadataNotFound - case ambiguousNumber(phoneNumbers: Set) -} - -extension PhoneNumberError: LocalizedError { - public var errorDescription: String? { - switch self { - case .generalError: return NSLocalizedString("An error occured whilst validating the phone number.", comment: "") - case .invalidCountryCode: return NSLocalizedString("The country code is invalid.", comment: "") - case .invalidNumber: return NSLocalizedString("The number provided is invalid.", comment: "") - case .tooLong: return NSLocalizedString("The number provided is too long.", comment: "") - case .tooShort: return NSLocalizedString("The number provided is too short.", comment: "") - case .deprecated: return NSLocalizedString("This function is deprecated.", comment: "") - case .metadataNotFound: return NSLocalizedString("Valid metadata is missing.", comment: "") - case .ambiguousNumber: return NSLocalizedString("Phone number is ambiguous.", comment: "") - } - } -} - -public enum PhoneNumberFormat { - case e164 // +33689123456 - case international // +33 6 89 12 34 56 - case national // 06 89 12 34 56 -} - -/** - Phone number type enumeration - - fixedLine: Fixed line numbers - - mobile: Mobile numbers - - fixedOrMobile: Either fixed or mobile numbers if we can't tell conclusively. - - pager: Pager numbers - - personalNumber: Personal number numbers - - premiumRate: Premium rate numbers - - sharedCost: Shared cost numbers - - tollFree: Toll free numbers - - voicemail: Voice mail numbers - - vOIP: Voip numbers - - uan: UAN numbers - - unknown: Unknown number type - */ -public enum PhoneNumberType: String, Codable { - case fixedLine - case mobile - case fixedOrMobile - case pager - case personalNumber - case premiumRate - case sharedCost - case tollFree - case voicemail - case voip - case uan - case unknown - case notParsed -} - -public enum PossibleLengthType: String, Codable { - case national - case localOnly -} - -// MARK: Constants - -struct PhoneNumberConstants { - static let defaultCountry = "US" - static let defaultExtnPrefix = " ext. " - static let longPhoneNumber = "999999999999999" - static let minLengthForNSN = 2 - static let maxInputStringLength = 250 - static let maxLengthCountryCode = 3 - static let maxLengthForNSN = 16 - static let nonBreakingSpace = "\u{00a0}" - static let plusChars = "++" - static let pausesAndWaitsChars = ",;" - static let operatorChars = "*#" - static let validDigitsString = "0-90-9٠-٩۰-۹" - static let digitPlaceholder = "\u{2008}" - static let separatorBeforeNationalNumber = " " -} - -struct PhoneNumberPatterns { - // MARK: Patterns - - static let firstGroupPattern = "(\\$\\d)" - static let fgPattern = "\\$FG" - static let npPattern = "\\$NP" - - static let allNormalizationMappings = ["0":"0", "1":"1", "2":"2", "3":"3", "4":"4", "5":"5", "6":"6", "7":"7", "8":"8", "9":"9", "٠":"0", "١":"1", "٢":"2", "٣":"3", "٤":"4", "٥":"5", "٦":"6", "٧":"7", "٨":"8", "٩":"9", "۰":"0", "۱":"1", "۲":"2", "۳":"3", "۴":"4", "۵":"5", "۶":"6", "۷":"7", "۸":"8", "۹":"9", "*":"*", "#":"#", ",":",", ";":";"] - static let capturingDigitPattern = "([0-90-9٠-٩۰-۹])" - - static let extnPattern = "(?:;ext=([0-90-9٠-٩۰-۹]{1,7})|[ \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|[,xxX##~~;]|int|anexo|int)[:\\..]?[ \\t,-]*([0-90-9٠-٩۰-۹]{1,7})#?|[- ]+([0-90-9٠-٩۰-۹]{1,5})#)$" - - static let iddPattern = "^(?:\\+|%@)" - - static let formatPattern = "^(?:%@)$" - - static let characterClassPattern = "\\[([^\\[\\]])*\\]" - - static let standaloneDigitPattern = "\\d(?=[^,}][^,}])" - - static let nationalPrefixParsingPattern = "^(?:%@)" - - static let prefixSeparatorPattern = "[- ]" - - static let eligibleAsYouTypePattern = "^[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*(\\$\\d[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*)+$" - - static let leadingPlusCharsPattern = "^[++]+" - - static let secondNumberStartPattern = "[\\\\\\/] *x" - - static let unwantedEndPattern = "[^0-90-9٠-٩۰-۹A-Za-z#]+$" - - static let validStartPattern = "[++0-90-9٠-٩۰-۹]" - - static let validPhoneNumberPattern = "^[0-90-9٠-٩۰-۹]{2}$|^[++]*(?:[-x\u{2010}-\u{2015}\u{2212}\u{30FC}\u{FF0D}-\u{FF0F} \u{00A0}\u{00AD}\u{200B}\u{2060}\u{3000}()\u{FF08}\u{FF09}\u{FF3B}\u{FF3D}.\\[\\]/~\u{2053}\u{223C}\u{FF5E}*]*[0-9\u{FF10}-\u{FF19}\u{0660}-\u{0669}\u{06F0}-\u{06F9}]){3,}[-x\u{2010}-\u{2015}\u{2212}\u{30FC}\u{FF0D}-\u{FF0F} \u{00A0}\u{00AD}\u{200B}\u{2060}\u{3000}()\u{FF08}\u{FF09}\u{FF3B}\u{FF3D}.\\[\\]/~\u{2053}\u{223C}\u{FF5E}*A-Za-z0-9\u{FF10}-\u{FF19}\u{0660}-\u{0669}\u{06F0}-\u{06F9}]*(?:(?:;ext=([0-90-9٠-٩۰-۹]{1,7})|[ \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|[,xxX##~~;]|int|anexo|int)[:\\..]?[ \\t,-]*([0-90-9٠-٩۰-۹]{1,7})#?|[- ]+([0-90-9٠-٩۰-۹]{1,5})#)?$)?[,;]*$" -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift deleted file mode 100644 index c172fd9..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Formatter.swift +++ /dev/null @@ -1,120 +0,0 @@ -// -// Formatter.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 03/11/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -final class Formatter { - weak var regexManager: RegexManager? - - init(phoneNumberKit: PhoneNumberKit) { - self.regexManager = phoneNumberKit.regexManager - } - - init(regexManager: RegexManager) { - self.regexManager = regexManager - } - - // MARK: Formatting functions - - /// Formats phone numbers for display - /// - /// - Parameters: - /// - phoneNumber: Phone number object. - /// - formatType: Format type. - /// - regionMetadata: Region meta data. - /// - Returns: Formatted Modified national number ready for display. - func format(phoneNumber: PhoneNumber, formatType: PhoneNumberFormat, regionMetadata: MetadataTerritory?) -> String { - var formattedNationalNumber = phoneNumber.adjustedNationalNumber() - if let regionMetadata = regionMetadata { - formattedNationalNumber = self.formatNationalNumber(formattedNationalNumber, regionMetadata: regionMetadata, formatType: formatType) - if let formattedExtension = formatExtension(phoneNumber.numberExtension, regionMetadata: regionMetadata) { - formattedNationalNumber = formattedNationalNumber + formattedExtension - } - } - return formattedNationalNumber - } - - /// Formats extension for display - /// - /// - Parameters: - /// - numberExtension: Number extension string. - /// - regionMetadata: Region meta data. - /// - Returns: Modified number extension with either a preferred extension prefix or the default one. - func formatExtension(_ numberExtension: String?, regionMetadata: MetadataTerritory) -> String? { - if let extns = numberExtension { - if let preferredExtnPrefix = regionMetadata.preferredExtnPrefix { - return "\(preferredExtnPrefix)\(extns)" - } else { - return "\(PhoneNumberConstants.defaultExtnPrefix)\(extns)" - } - } - return nil - } - - /// Formats national number for display - /// - /// - Parameters: - /// - nationalNumber: National number string. - /// - regionMetadata: Region meta data. - /// - formatType: Format type. - /// - Returns: Modified nationalNumber for display. - func formatNationalNumber(_ nationalNumber: String, regionMetadata: MetadataTerritory, formatType: PhoneNumberFormat) -> String { - guard let regexManager = regexManager else { return nationalNumber } - let formats = regionMetadata.numberFormats - var selectedFormat: MetadataPhoneNumberFormat? - for format in formats { - if let leadingDigitPattern = format.leadingDigitsPatterns?.last { - if regexManager.stringPositionByRegex(leadingDigitPattern, string: String(nationalNumber)) == 0 { - if regexManager.matchesEntirely(format.pattern, string: String(nationalNumber)) { - selectedFormat = format - break - } - } - } else { - if regexManager.matchesEntirely(format.pattern, string: String(nationalNumber)) { - selectedFormat = format - break - } - } - } - if let formatPattern = selectedFormat { - guard let numberFormatRule = (formatType == PhoneNumberFormat.international && formatPattern.intlFormat != nil) ? formatPattern.intlFormat : formatPattern.format, let pattern = formatPattern.pattern else { - return nationalNumber - } - var formattedNationalNumber = String() - var prefixFormattingRule = String() - if let nationalPrefixFormattingRule = formatPattern.nationalPrefixFormattingRule, let nationalPrefix = regionMetadata.nationalPrefix { - prefixFormattingRule = regexManager.replaceStringByRegex(PhoneNumberPatterns.npPattern, string: nationalPrefixFormattingRule, template: nationalPrefix) - prefixFormattingRule = regexManager.replaceStringByRegex(PhoneNumberPatterns.fgPattern, string: prefixFormattingRule, template: "\\$1") - } - if formatType == PhoneNumberFormat.national, regexManager.hasValue(prefixFormattingRule) { - let replacePattern = regexManager.replaceFirstStringByRegex(PhoneNumberPatterns.firstGroupPattern, string: numberFormatRule, templateString: prefixFormattingRule) - formattedNationalNumber = regexManager.replaceStringByRegex(pattern, string: nationalNumber, template: replacePattern) - } else { - formattedNationalNumber = regexManager.replaceStringByRegex(pattern, string: nationalNumber, template: numberFormatRule) - } - return formattedNationalNumber - } else { - return nationalNumber - } - } -} - -public extension PhoneNumber { - /** - Adjust national number for display by adding leading zero if needed. Used for basic formatting functions. - - Returns: A string representing the adjusted national number. - */ - func adjustedNationalNumber() -> String { - if self.leadingZero == true { - return "0" + String(nationalNumber) - } else { - return String(nationalNumber) - } - } -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift deleted file mode 100644 index a34e1d8..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataManager.swift +++ /dev/null @@ -1,94 +0,0 @@ -// -// Metadata.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 03/10/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -final class MetadataManager { - private(set) var territories = [MetadataTerritory]() - - private var territoriesByCode = [UInt64: [MetadataTerritory]]() - private var mainTerritoryByCode = [UInt64: MetadataTerritory]() - private var territoriesByCountry = [String: MetadataTerritory]() - - // MARK: Lifecycle - - /// Private init populates metadata territories and the two hashed dictionaries for faster lookup. - /// - /// - Parameter metadataCallback: a closure that returns metadata as JSON Data. - public init(metadataCallback: MetadataCallback) { - self.territories = self.populateTerritories(metadataCallback: metadataCallback) - for item in self.territories { - var currentTerritories: [MetadataTerritory] = self.territoriesByCode[item.countryCode] ?? [MetadataTerritory]() - // In the case of multiple countries sharing a calling code, such as the NANPA countries, - // the one indicated with "isMainCountryForCode" in the metadata should be first. - if item.mainCountryForCode { - currentTerritories.insert(item, at: 0) - } else { - currentTerritories.append(item) - } - self.territoriesByCode[item.countryCode] = currentTerritories - if self.mainTerritoryByCode[item.countryCode] == nil || item.mainCountryForCode == true { - self.mainTerritoryByCode[item.countryCode] = item - } - self.territoriesByCountry[item.codeID] = item - } - } - - deinit { - territories.removeAll() - territoriesByCode.removeAll() - territoriesByCountry.removeAll() - } - - /// Populates the metadata from a metadataCallback. - /// - /// - Parameter metadataCallback: a closure that returns metadata as JSON Data. - /// - Returns: array of MetadataTerritory objects - private func populateTerritories(metadataCallback: MetadataCallback) -> [MetadataTerritory] { - var territoryArray = [MetadataTerritory]() - do { - let jsonData: Data? = try metadataCallback() - let jsonDecoder = JSONDecoder() - if let jsonData = jsonData, let metadata: PhoneNumberMetadata = try? jsonDecoder.decode(PhoneNumberMetadata.self, from: jsonData) { - territoryArray = metadata.territories - } - } catch { - debugPrint("ERROR: Unable to load PhoneNumberMetadata.json resource: \(error.localizedDescription)") - } - return territoryArray - } - - // MARK: Filters - - /// Get an array of MetadataTerritory objects corresponding to a given country code. - /// - /// - parameter code: international country code (e.g 44 for the UK). - /// - /// - returns: optional array of MetadataTerritory objects. - internal func filterTerritories(byCode code: UInt64) -> [MetadataTerritory]? { - return self.territoriesByCode[code] - } - - /// Get the MetadataTerritory objects for an ISO 3166 compliant region code. - /// - /// - parameter country: ISO 3166 compliant region code (e.g "GB" for the UK). - /// - /// - returns: A MetadataTerritory object. - internal func filterTerritories(byCountry country: String) -> MetadataTerritory? { - return self.territoriesByCountry[country.uppercased()] - } - - /// Get the main MetadataTerritory objects for a given country code. - /// - /// - parameter code: An international country code (e.g 1 for the US). - /// - /// - returns: A MetadataTerritory object. - internal func mainTerritory(forCode code: UInt64) -> MetadataTerritory? { - return self.mainTerritoryByCode[code] - } -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift deleted file mode 100644 index 4b83753..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataParsing.swift +++ /dev/null @@ -1,161 +0,0 @@ -// -// MetadataParsing.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 2019-02-10. -// Copyright © 2019 Roy Marmelstein. All rights reserved. -// - -import Foundation - -// MARK: - MetadataTerritory - -public extension MetadataTerritory { - enum CodingKeys: String, CodingKey { - case codeID = "id" - case countryCode - case internationalPrefix - case mainCountryForCode - case nationalPrefix - case nationalPrefixFormattingRule - case nationalPrefixForParsing - case nationalPrefixTransformRule - case preferredExtnPrefix - case emergency - case fixedLine - case generalDesc - case mobile - case pager - case personalNumber - case premiumRate - case sharedCost - case tollFree - case voicemail - case voip - case uan - case numberFormats = "numberFormat" - case leadingDigits - case availableFormats - } - - init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - - // Custom parsing logic - codeID = try container.decode(String.self, forKey: .codeID) - let code = try! container.decode(String.self, forKey: .countryCode) - countryCode = UInt64(code)! - mainCountryForCode = container.decodeBoolString(forKey: .mainCountryForCode) - let possibleNationalPrefixForParsing: String? = try container.decodeIfPresent(String.self, forKey: .nationalPrefixForParsing) - let possibleNationalPrefix: String? = try container.decodeIfPresent(String.self, forKey: .nationalPrefix) - nationalPrefix = possibleNationalPrefix - nationalPrefixForParsing = (possibleNationalPrefixForParsing == nil && possibleNationalPrefix != nil) ? nationalPrefix : possibleNationalPrefixForParsing - nationalPrefixFormattingRule = try container.decodeIfPresent(String.self, forKey: .nationalPrefixFormattingRule) - let availableFormats = try? container.nestedContainer(keyedBy: CodingKeys.self, forKey: .availableFormats) - let temporaryFormatList: [MetadataPhoneNumberFormat] = availableFormats?.decodeArrayOrObject(forKey: .numberFormats) ?? [MetadataPhoneNumberFormat]() - numberFormats = temporaryFormatList.withDefaultNationalPrefixFormattingRule(nationalPrefixFormattingRule) - - // Default parsing logic - internationalPrefix = try container.decodeIfPresent(String.self, forKey: .internationalPrefix) - nationalPrefixTransformRule = try container.decodeIfPresent(String.self, forKey: .nationalPrefixTransformRule) - preferredExtnPrefix = try container.decodeIfPresent(String.self, forKey: .preferredExtnPrefix) - emergency = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .emergency) - fixedLine = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .fixedLine) - generalDesc = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .generalDesc) - mobile = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .mobile) - pager = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .pager) - personalNumber = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .personalNumber) - premiumRate = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .premiumRate) - sharedCost = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .sharedCost) - tollFree = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .tollFree) - voicemail = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .voicemail) - voip = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .voip) - uan = try container.decodeIfPresent(MetadataPhoneNumberDesc.self, forKey: .uan) - leadingDigits = try container.decodeIfPresent(String.self, forKey: .leadingDigits) - } -} - -// MARK: - MetadataPhoneNumberFormat - -public extension MetadataPhoneNumberFormat { - enum CodingKeys: String, CodingKey { - case pattern - case format - case intlFormat - case leadingDigitsPatterns = "leadingDigits" - case nationalPrefixFormattingRule - case nationalPrefixOptionalWhenFormatting - case domesticCarrierCodeFormattingRule = "carrierCodeFormattingRule" - } - - init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - - // Custom parsing logic - leadingDigitsPatterns = container.decodeArrayOrObject(forKey: .leadingDigitsPatterns) - nationalPrefixOptionalWhenFormatting = container.decodeBoolString(forKey: .nationalPrefixOptionalWhenFormatting) - - // Default parsing logic - pattern = try container.decodeIfPresent(String.self, forKey: .pattern) - format = try container.decodeIfPresent(String.self, forKey: .format) - intlFormat = try container.decodeIfPresent(String.self, forKey: .intlFormat) - nationalPrefixFormattingRule = try container.decodeIfPresent(String.self, forKey: .nationalPrefixFormattingRule) - domesticCarrierCodeFormattingRule = try container.decodeIfPresent(String.self, forKey: .domesticCarrierCodeFormattingRule) - } -} - -// MARK: - PhoneNumberMetadata - -extension PhoneNumberMetadata { - enum CodingKeys: String, CodingKey { - case phoneNumberMetadata - case territories - case territory - } - - init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - let metadataObject = try container.nestedContainer(keyedBy: CodingKeys.self, forKey: .phoneNumberMetadata) - let territoryObject = try metadataObject.nestedContainer(keyedBy: CodingKeys.self, forKey: .territories) - territories = try territoryObject.decode([MetadataTerritory].self, forKey: .territory) - } -} - -// MARK: - Parsing helpers - -private extension KeyedDecodingContainer where K: CodingKey { - /// Decodes a string to a boolean. Returns false if empty. - /// - /// - Parameter key: Coding key to decode - func decodeBoolString(forKey key: KeyedDecodingContainer.Key) -> Bool { - guard let value: String = try? self.decode(String.self, forKey: key) else { - return false - } - return Bool(value) ?? false - } - - /// Decodes either a single object or an array into an array. Returns an empty array if empty. - /// - /// - Parameter key: Coding key to decode - func decodeArrayOrObject(forKey key: KeyedDecodingContainer.Key) -> [T] { - guard let array: [T] = try? self.decode([T].self, forKey: key) else { - guard let object: T = try? self.decode(T.self, forKey: key) else { - return [T]() - } - return [object] - } - return array - } -} - -private extension Collection where Element == MetadataPhoneNumberFormat { - func withDefaultNationalPrefixFormattingRule(_ nationalPrefixFormattingRule: String?) -> [Element] { - return self.map { format -> MetadataPhoneNumberFormat in - var modifiedFormat = format - if modifiedFormat.nationalPrefixFormattingRule == nil { - modifiedFormat.nationalPrefixFormattingRule = nationalPrefixFormattingRule - } - return modifiedFormat - } - } -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift deleted file mode 100644 index c7bf8ed..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/MetadataTypes.swift +++ /dev/null @@ -1,104 +0,0 @@ -// -// MetadataTypes.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 02/11/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -/** - MetadataTerritory object - - Parameter codeID: ISO 3166 compliant region code - - Parameter countryCode: International country code - - Parameter internationalPrefix: International prefix. Optional. - - Parameter mainCountryForCode: Whether the current metadata is the main country for its country code. - - Parameter nationalPrefix: National prefix - - Parameter nationalPrefixFormattingRule: National prefix formatting rule - - Parameter nationalPrefixForParsing: National prefix for parsing - - Parameter nationalPrefixTransformRule: National prefix transform rule - - Parameter emergency: MetadataPhoneNumberDesc for emergency numbers - - Parameter fixedLine: MetadataPhoneNumberDesc for fixed line numbers - - Parameter generalDesc: MetadataPhoneNumberDesc for general numbers - - Parameter mobile: MetadataPhoneNumberDesc for mobile numbers - - Parameter pager: MetadataPhoneNumberDesc for pager numbers - - Parameter personalNumber: MetadataPhoneNumberDesc for personal number numbers - - Parameter premiumRate: MetadataPhoneNumberDesc for premium rate numbers - - Parameter sharedCost: MetadataPhoneNumberDesc for shared cost numbers - - Parameter tollFree: MetadataPhoneNumberDesc for toll free numbers - - Parameter voicemail: MetadataPhoneNumberDesc for voice mail numbers - - Parameter voip: MetadataPhoneNumberDesc for voip numbers - - Parameter uan: MetadataPhoneNumberDesc for uan numbers - - Parameter leadingDigits: Optional leading digits for the territory - */ -public struct MetadataTerritory: Decodable { - public let codeID: String - public let countryCode: UInt64 - public let internationalPrefix: String? - public let mainCountryForCode: Bool - public let nationalPrefix: String? - public let nationalPrefixFormattingRule: String? - public let nationalPrefixForParsing: String? - public let nationalPrefixTransformRule: String? - public let preferredExtnPrefix: String? - public let emergency: MetadataPhoneNumberDesc? - public let fixedLine: MetadataPhoneNumberDesc? - public let generalDesc: MetadataPhoneNumberDesc? - public let mobile: MetadataPhoneNumberDesc? - public let pager: MetadataPhoneNumberDesc? - public let personalNumber: MetadataPhoneNumberDesc? - public let premiumRate: MetadataPhoneNumberDesc? - public let sharedCost: MetadataPhoneNumberDesc? - public let tollFree: MetadataPhoneNumberDesc? - public let voicemail: MetadataPhoneNumberDesc? - public let voip: MetadataPhoneNumberDesc? - public let uan: MetadataPhoneNumberDesc? - public let numberFormats: [MetadataPhoneNumberFormat] - public let leadingDigits: String? -} - -/** - MetadataPhoneNumberDesc object - - Parameter exampleNumber: An example phone number for the given type. Optional. - - Parameter nationalNumberPattern: National number regex pattern. Optional. - - Parameter possibleNumberPattern: Possible number regex pattern. Optional. - - Parameter possibleLengths: Possible phone number lengths. Optional. - */ -public struct MetadataPhoneNumberDesc: Decodable { - public let exampleNumber: String? - public let nationalNumberPattern: String? - public let possibleNumberPattern: String? - public let possibleLengths: MetadataPossibleLengths? -} - -public struct MetadataPossibleLengths: Decodable { - let national: String? - let localOnly: String? -} - -/** - MetadataPhoneNumberFormat object - - Parameter pattern: Regex pattern. Optional. - - Parameter format: Formatting template. Optional. - - Parameter intlFormat: International formatting template. Optional. - - - Parameter leadingDigitsPatterns: Leading digits regex pattern. Optional. - - Parameter nationalPrefixFormattingRule: National prefix formatting rule. Optional. - - Parameter nationalPrefixOptionalWhenFormatting: National prefix optional bool. Optional. - - Parameter domesticCarrierCodeFormattingRule: Domestic carrier code formatting rule. Optional. - */ -public struct MetadataPhoneNumberFormat: Decodable { - public let pattern: String? - public let format: String? - public let intlFormat: String? - public let leadingDigitsPatterns: [String]? - public var nationalPrefixFormattingRule: String? - public let nationalPrefixOptionalWhenFormatting: Bool? - public let domesticCarrierCodeFormattingRule: String? -} - -/// Internal object for metadata parsing -internal struct PhoneNumberMetadata: Decodable { - var territories: [MetadataTerritory] -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift deleted file mode 100644 index ae6481c..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/NSRegularExpression+Swift.swift +++ /dev/null @@ -1,84 +0,0 @@ -// -// NSRegularExpression+Swift.swift -// PhoneNumberKit -// -// Created by David Beck on 8/15/16. -// Copyright © 2016 Roy Marmelstein. All rights reserved. -// - -import Foundation - -extension String { - func nsRange(from range: Range) -> NSRange { - let utf16view = self.utf16 - let from = range.lowerBound.samePosition(in: utf16view) ?? self.startIndex - let to = range.upperBound.samePosition(in: utf16view) ?? self.endIndex - return NSRange(location: utf16view.distance(from: utf16view.startIndex, to: from), length: utf16view.distance(from: from, to: to)) - } - - func range(from nsRange: NSRange) -> Range? { - guard - let from16 = utf16.index(utf16.startIndex, offsetBy: nsRange.location, limitedBy: utf16.endIndex), - let to16 = utf16.index(from16, offsetBy: nsRange.length, limitedBy: utf16.endIndex), - let from = String.Index(from16, within: self), - let to = String.Index(to16, within: self) - else { return nil } - return from..? = nil, using block: (NSTextCheckingResult?, NSRegularExpression.MatchingFlags, UnsafeMutablePointer) -> Swift.Void) { - let range = range ?? string.startIndex..? = nil, using block: @escaping (NSTextCheckingResult?, NSRegularExpression.MatchingFlags, UnsafeMutablePointer) -> Swift.Void) { - let range = range ?? string.startIndex..? = nil) -> [NSTextCheckingResult] { - let range = range ?? string.startIndex..? = nil) -> Int { - let range = range ?? string.startIndex..? = nil) -> NSTextCheckingResult? { - let range = range ?? string.startIndex..? = nil) -> Range? { - let range = range ?? string.startIndex..? = nil, withTemplate templ: String) -> String { - let range = range ?? string.startIndex.. PhoneNumber { - guard let metadataManager = metadataManager, let regexManager = regexManager else { throw PhoneNumberError.generalError } - // Make sure region is in uppercase so that it matches metadata (1) - let region = region.uppercased() - // Extract number (2) - var nationalNumber = numberString - let match = try regexManager.phoneDataDetectorMatch(numberString) - let matchedNumber = nationalNumber.substring(with: match.range) - // Replace Arabic and Persian numerals and let the rest unchanged - nationalNumber = regexManager.stringByReplacingOccurrences(matchedNumber, map: PhoneNumberPatterns.allNormalizationMappings, keepUnmapped: true) - - // Strip and extract extension (3) - var numberExtension: String? - if let rawExtension = parser.stripExtension(&nationalNumber) { - numberExtension = self.parser.normalizePhoneNumber(rawExtension) - } - // Country code parse (4) - guard var regionMetadata = metadataManager.filterTerritories(byCountry: region) else { - throw PhoneNumberError.invalidCountryCode - } - let countryCode: UInt64 - do { - countryCode = try self.parser.extractCountryCode(nationalNumber, nationalNumber: &nationalNumber, metadata: regionMetadata) - } catch { - let plusRemovedNumberString = regexManager.replaceStringByRegex(PhoneNumberPatterns.leadingPlusCharsPattern, string: nationalNumber as String) - countryCode = try self.parser.extractCountryCode(plusRemovedNumberString, nationalNumber: &nationalNumber, metadata: regionMetadata) - } - - // Normalized number (5) - nationalNumber = self.parser.normalizePhoneNumber(nationalNumber) - if countryCode == 0 { - if let result = try validPhoneNumber(from: nationalNumber, using: regionMetadata, countryCode: regionMetadata.countryCode, ignoreType: ignoreType, numberString: numberString, numberExtension: numberExtension) { - return result - } - throw PhoneNumberError.invalidNumber - } - - // If country code is not default, grab correct metadata (6) - if countryCode != regionMetadata.countryCode, let countryMetadata = metadataManager.mainTerritory(forCode: countryCode) { - regionMetadata = countryMetadata - } - - if let result = try validPhoneNumber(from: nationalNumber, using: regionMetadata, countryCode: countryCode, ignoreType: ignoreType, numberString: numberString, numberExtension: numberExtension) { - return result - } - - // If everything fails, iterate through other territories with the same country code (7) - var possibleResults: Set = [] - if let metadataList = metadataManager.filterTerritories(byCode: countryCode) { - for metadata in metadataList where regionMetadata.codeID != metadata.codeID { - if let result = try validPhoneNumber(from: nationalNumber, using: metadata, countryCode: countryCode, ignoreType: ignoreType, numberString: numberString, numberExtension: numberExtension) { - possibleResults.insert(result) - } - } - } - - switch possibleResults.count { - case 0: throw PhoneNumberError.invalidNumber - case 1: return possibleResults.first! - default: throw PhoneNumberError.ambiguousNumber(phoneNumbers: possibleResults) - } - } - - // Parse task - - /** - Fastest way to parse an array of phone numbers. Uses custom region code. - - Parameter numberStrings: An array of raw number strings. - - Parameter region: ISO 3166 compliant region code. - - parameter ignoreType: Avoids number type checking for faster performance. - - Returns: An array of valid PhoneNumber objects. - */ - func parseMultiple(_ numberStrings: [String], withRegion region: String, ignoreType: Bool, shouldReturnFailedEmptyNumbers: Bool = false) -> [PhoneNumber] { - var hasError = false - - var multiParseArray = [PhoneNumber](unsafeUninitializedCapacity: numberStrings.count) { buffer, initializedCount in - DispatchQueue.concurrentPerform(iterations: numberStrings.count) { index in - let numberString = numberStrings[index] - do { - let phoneNumber = try self.parse(numberString, withRegion: region, ignoreType: ignoreType) - buffer.baseAddress!.advanced(by: index).initialize(to: phoneNumber) - } catch { - buffer.baseAddress!.advanced(by: index).initialize(to: PhoneNumber.notPhoneNumber()) - hasError = true - } - } - initializedCount = numberStrings.count - } - - if hasError && !shouldReturnFailedEmptyNumbers { - multiParseArray = multiParseArray.filter { $0.type != .notParsed } - } - - return multiParseArray - } - - /// Get correct ISO 3166 compliant region code for a number. - /// - /// - Parameters: - /// - nationalNumber: national number. - /// - countryCode: country code. - /// - leadingZero: whether or not the number has a leading zero. - /// - Returns: ISO 3166 compliant region code. - func getRegionCode(of nationalNumber: UInt64, countryCode: UInt64, leadingZero: Bool) -> String? { - guard let regexManager = regexManager, let metadataManager = metadataManager, let regions = metadataManager.filterTerritories(byCode: countryCode) else { return nil } - - if regions.count == 1 { - return regions[0].codeID - } - - let nationalNumberString = String(nationalNumber) - for region in regions { - if let leadingDigits = region.leadingDigits { - if regexManager.matchesAtStart(leadingDigits, string: nationalNumberString) { - return region.codeID - } - } - if leadingZero, self.parser.checkNumberType("0" + nationalNumberString, metadata: region) != .unknown { - return region.codeID - } - if self.parser.checkNumberType(nationalNumberString, metadata: region) != .unknown { - return region.codeID - } - } - return nil - } - - //MARK: Internal method - - - /// Creates a valid phone number given a specifc region metadata, used internally by the parse function - private func validPhoneNumber(from nationalNumber: String, using regionMetadata: MetadataTerritory, countryCode: UInt64, ignoreType: Bool, numberString: String, numberExtension: String?) throws -> PhoneNumber? { - guard let metadataManager = metadataManager, let regexManager = regexManager else { throw PhoneNumberError.generalError } - - var nationalNumber = nationalNumber - var regionMetadata = regionMetadata - - // National Prefix Strip (1) - self.parser.stripNationalPrefix(&nationalNumber, metadata: regionMetadata) - - // Test number against general number description for correct metadata (2) - if let generalNumberDesc = regionMetadata.generalDesc, - regexManager.hasValue(generalNumberDesc.nationalNumberPattern) == false || parser.isNumberMatchingDesc(nationalNumber, numberDesc: generalNumberDesc) == false { - return nil - } - // Finalize remaining parameters and create phone number object (3) - let leadingZero = nationalNumber.hasPrefix("0") - guard let finalNationalNumber = UInt64(nationalNumber) else { - throw PhoneNumberError.invalidNumber - } - - // Check if the number if of a known type (4) - var type: PhoneNumberType = .unknown - if ignoreType == false { - if let regionCode = getRegionCode(of: finalNationalNumber, countryCode: countryCode, leadingZero: leadingZero), let foundMetadata = metadataManager.filterTerritories(byCountry: regionCode){ - regionMetadata = foundMetadata - } - type = self.parser.checkNumberType(String(nationalNumber), metadata: regionMetadata, leadingZero: leadingZero) - if type == .unknown { - throw PhoneNumberError.invalidNumber - } - } - - return PhoneNumber(numberString: numberString, countryCode: countryCode, leadingZero: leadingZero, nationalNumber: finalNationalNumber, numberExtension: numberExtension, type: type, regionID: regionMetadata.codeID) - } - -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift deleted file mode 100644 index 0d98fa2..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PartialFormatter.swift +++ /dev/null @@ -1,424 +0,0 @@ -// -// PartialFormatter.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 29/11/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -#if canImport(ObjectiveC) -import Foundation - -/// Partial formatter -public final class PartialFormatter { - private let phoneNumberKit: PhoneNumberKit - - weak var metadataManager: MetadataManager? - weak var parser: PhoneNumberParser? - weak var regexManager: RegexManager? - - public convenience init(phoneNumberKit: PhoneNumberKit = PhoneNumberKit(), - defaultRegion: String = PhoneNumberKit.defaultRegionCode(), - withPrefix: Bool = true, - maxDigits: Int? = nil, - ignoreIntlNumbers: Bool = false) { - self.init(phoneNumberKit: phoneNumberKit, - regexManager: phoneNumberKit.regexManager, - metadataManager: phoneNumberKit.metadataManager, - parser: phoneNumberKit.parseManager.parser, - defaultRegion: defaultRegion, - withPrefix: withPrefix, - maxDigits: maxDigits, - ignoreIntlNumbers: ignoreIntlNumbers) - } - - init(phoneNumberKit: PhoneNumberKit, - regexManager: RegexManager, - metadataManager: MetadataManager, - parser: PhoneNumberParser, defaultRegion: String, - withPrefix: Bool = true, - maxDigits: Int? = nil, - ignoreIntlNumbers: Bool = false) { - self.phoneNumberKit = phoneNumberKit - self.regexManager = regexManager - self.metadataManager = metadataManager - self.parser = parser - self.defaultRegion = defaultRegion - self.updateMetadataForDefaultRegion() - self.withPrefix = withPrefix - self.maxDigits = maxDigits - self.ignoreIntlNumbers = ignoreIntlNumbers - } - - public var defaultRegion: String { - didSet { - self.updateMetadataForDefaultRegion() - } - } - - public var maxDigits: Int? - - func updateMetadataForDefaultRegion() { - guard let metadataManager = metadataManager else { return } - if let regionMetadata = metadataManager.filterTerritories(byCountry: defaultRegion) { - self.defaultMetadata = metadataManager.mainTerritory(forCode: regionMetadata.countryCode) - } else { - self.defaultMetadata = nil - } - self.currentMetadata = self.defaultMetadata - } - - var defaultMetadata: MetadataTerritory? - var currentMetadata: MetadataTerritory? - var prefixBeforeNationalNumber = String() - var shouldAddSpaceAfterNationalPrefix = false - var withPrefix = true - var ignoreIntlNumbers = false - - // MARK: Status - - public var currentRegion: String { - if ignoreIntlNumbers, currentMetadata?.codeID == "001" { - return defaultRegion - } else { - let countryCode = self.phoneNumberKit.countryCode(for: self.defaultRegion) - if countryCode != 1, countryCode != 7 { - return currentMetadata?.codeID ?? "US" - } else { - return self.currentMetadata?.countryCode == 1 || self.currentMetadata?.countryCode == 7 - ? self.defaultRegion - : self.currentMetadata?.codeID ?? self.defaultRegion - } - } - } - - public func nationalNumber(from rawNumber: String) -> String { - guard let parser = parser else { return rawNumber } - - let iddFreeNumber = self.extractIDD(rawNumber) - var nationalNumber = parser.normalizePhoneNumber(iddFreeNumber) - if self.prefixBeforeNationalNumber.count > 0 { - nationalNumber = self.extractCountryCallingCode(nationalNumber) - } - - nationalNumber = self.extractNationalPrefix(nationalNumber) - - if let maxDigits = maxDigits { - let extra = nationalNumber.count - maxDigits - - if extra > 0 { - nationalNumber = String(nationalNumber.dropLast(extra)) - } - } - - return nationalNumber - } - - // MARK: Lifecycle - - /** - Formats a partial string (for use in TextField) - - - parameter rawNumber: Unformatted phone number string - - - returns: Formatted phone number string. - */ - public func formatPartial(_ rawNumber: String) -> String { - // Always reset variables with each new raw number - self.resetVariables() - - guard self.isValidRawNumber(rawNumber) else { - return rawNumber - } - let split = splitNumberAndPausesOrWaits(rawNumber) - - var nationalNumber = self.nationalNumber(from: split.number) - if let formats = availableFormats(nationalNumber) { - if let formattedNumber = applyFormat(nationalNumber, formats: formats) { - nationalNumber = formattedNumber - } else { - for format in formats { - if let template = createFormattingTemplate(format, rawNumber: nationalNumber) { - nationalNumber = self.applyFormattingTemplate(template, rawNumber: nationalNumber) - break - } - } - } - } - - var finalNumber = String() - if self.withPrefix, self.prefixBeforeNationalNumber.count > 0 { - finalNumber.append(self.prefixBeforeNationalNumber) - } - if self.withPrefix, self.shouldAddSpaceAfterNationalPrefix, self.prefixBeforeNationalNumber.count > 0, self.prefixBeforeNationalNumber.last != PhoneNumberConstants.separatorBeforeNationalNumber.first { - finalNumber.append(PhoneNumberConstants.separatorBeforeNationalNumber) - } - if nationalNumber.count > 0 { - finalNumber.append(nationalNumber) - } - if finalNumber.last == PhoneNumberConstants.separatorBeforeNationalNumber.first { - finalNumber = String(finalNumber[.. Bool { - do { - // In addition to validPhoneNumberPattern, - // accept any sequence of digits and whitespace, prefixed or not by a plus sign - let validPartialPattern = "[++]?(\\s*\\d)+\\s*$|\(PhoneNumberPatterns.validPhoneNumberPattern)" - let validNumberMatches = try regexManager?.regexMatches(validPartialPattern, string: rawNumber) - let validStart = self.regexManager?.stringPositionByRegex(PhoneNumberPatterns.validStartPattern, string: rawNumber) - if validNumberMatches?.count == 0 || validStart != 0 { - return false - } - } catch { - return false - } - return true - } - - internal func isNanpaNumberWithNationalPrefix(_ rawNumber: String) -> Bool { - guard self.currentMetadata?.countryCode == 1, rawNumber.count > 1 else { return false } - - let firstCharacter: String = String(describing: rawNumber.first) - let secondCharacter: String = String(describing: rawNumber[rawNumber.index(rawNumber.startIndex, offsetBy: 1)]) - return (firstCharacter == "1" && secondCharacter != "0" && secondCharacter != "1") - } - - func isFormatEligible(_ format: MetadataPhoneNumberFormat) -> Bool { - guard let phoneFormat = format.format else { - return false - } - do { - let validRegex = try regexManager?.regexWithPattern(PhoneNumberPatterns.eligibleAsYouTypePattern) - if validRegex?.firstMatch(in: phoneFormat, options: [], range: NSRange(location: 0, length: phoneFormat.count)) != nil { - return true - } - } catch {} - return false - } - - // MARK: Formatting Extractions - - func extractIDD(_ rawNumber: String) -> String { - var processedNumber = rawNumber - do { - if let internationalPrefix = currentMetadata?.internationalPrefix { - let prefixPattern = String(format: PhoneNumberPatterns.iddPattern, arguments: [internationalPrefix]) - let matches = try regexManager?.matchedStringByRegex(prefixPattern, string: rawNumber) - if let m = matches?.first { - let startCallingCode = m.count - let index = rawNumber.index(rawNumber.startIndex, offsetBy: startCallingCode) - processedNumber = String(rawNumber[index...]) - self.prefixBeforeNationalNumber = String(rawNumber[.. String { - var processedNumber = rawNumber - var startOfNationalNumber: Int = 0 - if self.isNanpaNumberWithNationalPrefix(rawNumber) { - self.prefixBeforeNationalNumber.append("1 ") - } else { - do { - if let nationalPrefix = currentMetadata?.nationalPrefixForParsing { - let nationalPrefixPattern = String(format: PhoneNumberPatterns.nationalPrefixParsingPattern, arguments: [nationalPrefix]) - let matches = try regexManager?.matchedStringByRegex(nationalPrefixPattern, string: rawNumber) - if let m = matches?.first { - startOfNationalNumber = m.count - } - } - } catch { - return processedNumber - } - } - let index = rawNumber.index(rawNumber.startIndex, offsetBy: startOfNationalNumber) - processedNumber = String(rawNumber[index...]) - self.prefixBeforeNationalNumber.append(String(rawNumber[.. String { - var processedNumber = rawNumber - if rawNumber.isEmpty { - return rawNumber - } - var numberWithoutCountryCallingCode = String() - if self.prefixBeforeNationalNumber.isEmpty == false, self.prefixBeforeNationalNumber.first != "+" { - self.prefixBeforeNationalNumber.append(PhoneNumberConstants.separatorBeforeNationalNumber) - } - if let potentialCountryCode = parser?.extractPotentialCountryCode(rawNumber, nationalNumber: &numberWithoutCountryCallingCode), potentialCountryCode != 0 { - processedNumber = numberWithoutCountryCallingCode - self.currentMetadata = self.metadataManager?.mainTerritory(forCode: potentialCountryCode) - let potentialCountryCodeString = String(potentialCountryCode) - prefixBeforeNationalNumber.append(potentialCountryCodeString) - self.prefixBeforeNationalNumber.append(" ") - } else if self.withPrefix == false, self.prefixBeforeNationalNumber.isEmpty { - let potentialCountryCodeString = String(describing: currentMetadata?.countryCode) - self.prefixBeforeNationalNumber.append(potentialCountryCodeString) - self.prefixBeforeNationalNumber.append(" ") - } - return processedNumber - } - - func splitNumberAndPausesOrWaits(_ rawNumber: String) -> (number: String, pausesOrWaits: String) { - if rawNumber.isEmpty { - return (rawNumber, "") - } - - let splitByComma = rawNumber.split(separator: ",", maxSplits: 1, omittingEmptySubsequences: false) - let splitBySemiColon = rawNumber.split(separator: ";", maxSplits: 1, omittingEmptySubsequences: false) - - if splitByComma[0].count != splitBySemiColon[0].count { - let foundCommasFirst = splitByComma[0].count < splitBySemiColon[0].count - - if foundCommasFirst { - return (String(splitByComma[0]), "," + splitByComma[1]) - } - else { - return (String(splitBySemiColon[0]), ";" + splitBySemiColon[1]) - } - } - return (rawNumber, "") - } - - func availableFormats(_ rawNumber: String) -> [MetadataPhoneNumberFormat]? { - guard let regexManager = regexManager else { return nil } - var tempPossibleFormats = [MetadataPhoneNumberFormat]() - var possibleFormats = [MetadataPhoneNumberFormat]() - if let metadata = currentMetadata { - let formatList = metadata.numberFormats - for format in formatList { - if self.isFormatEligible(format) { - tempPossibleFormats.append(format) - if let leadingDigitPattern = format.leadingDigitsPatterns?.last { - if regexManager.stringPositionByRegex(leadingDigitPattern, string: String(rawNumber)) == 0 { - possibleFormats.append(format) - } - } else { - if regexManager.matchesEntirely(format.pattern, string: String(rawNumber)) { - possibleFormats.append(format) - } - } - } - } - if possibleFormats.count == 0 { - possibleFormats.append(contentsOf: tempPossibleFormats) - } - return possibleFormats - } - return nil - } - - func applyFormat(_ rawNumber: String, formats: [MetadataPhoneNumberFormat]) -> String? { - guard let regexManager = regexManager else { return nil } - for format in formats { - if let pattern = format.pattern, let formatTemplate = format.format { - let patternRegExp = String(format: PhoneNumberPatterns.formatPattern, arguments: [pattern]) - do { - let matches = try regexManager.regexMatches(patternRegExp, string: rawNumber) - if matches.count > 0 { - if let nationalPrefixFormattingRule = format.nationalPrefixFormattingRule { - let separatorRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.prefixSeparatorPattern) - let nationalPrefixMatches = separatorRegex.matches(in: nationalPrefixFormattingRule, options: [], range: NSRange(location: 0, length: nationalPrefixFormattingRule.count)) - if nationalPrefixMatches.count > 0 { - self.shouldAddSpaceAfterNationalPrefix = true - } - } - let formattedNumber = regexManager.replaceStringByRegex(pattern, string: rawNumber, template: formatTemplate) - return formattedNumber - } - } catch {} - } - } - return nil - } - - func createFormattingTemplate(_ format: MetadataPhoneNumberFormat, rawNumber: String) -> String? { - guard var numberPattern = format.pattern, let numberFormat = format.format, let regexManager = regexManager else { - return nil - } - guard numberPattern.range(of: "|") == nil else { - return nil - } - do { - let characterClassRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.characterClassPattern) - numberPattern = characterClassRegex.stringByReplacingMatches(in: numberPattern, withTemplate: "\\\\d") - - let standaloneDigitRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.standaloneDigitPattern) - numberPattern = standaloneDigitRegex.stringByReplacingMatches(in: numberPattern, withTemplate: "\\\\d") - - if let tempTemplate = getFormattingTemplate(numberPattern, numberFormat: numberFormat, rawNumber: rawNumber) { - if let nationalPrefixFormattingRule = format.nationalPrefixFormattingRule { - let separatorRegex = try regexManager.regexWithPattern(PhoneNumberPatterns.prefixSeparatorPattern) - let nationalPrefixMatch = separatorRegex.firstMatch(in: nationalPrefixFormattingRule, options: [], range: NSRange(location: 0, length: nationalPrefixFormattingRule.count)) - if nationalPrefixMatch != nil { - self.shouldAddSpaceAfterNationalPrefix = true - } - } - return tempTemplate - } - } catch {} - return nil - } - - func getFormattingTemplate(_ numberPattern: String, numberFormat: String, rawNumber: String) -> String? { - guard let regexManager = regexManager else { return nil } - do { - let matches = try regexManager.matchedStringByRegex(numberPattern, string: PhoneNumberConstants.longPhoneNumber) - if let match = matches.first { - if match.count < rawNumber.count { - return nil - } - var template = regexManager.replaceStringByRegex(numberPattern, string: match, template: numberFormat) - template = regexManager.replaceStringByRegex("9", string: template, template: PhoneNumberConstants.digitPlaceholder) - return template - } - } catch {} - return nil - } - - func applyFormattingTemplate(_ template: String, rawNumber: String) -> String { - var rebuiltString = String() - var rebuiltIndex = 0 - for character in template { - if character == PhoneNumberConstants.digitPlaceholder.first { - if rebuiltIndex < rawNumber.count { - let nationalCharacterIndex = rawNumber.index(rawNumber.startIndex, offsetBy: rebuiltIndex) - rebuiltString.append(rawNumber[nationalCharacterIndex]) - rebuiltIndex += 1 - } - } else { - if rebuiltIndex < rawNumber.count { - rebuiltString.append(character) - } - } - } - if rebuiltIndex < rawNumber.count { - let nationalCharacterIndex = rawNumber.index(rawNumber.startIndex, offsetBy: rebuiltIndex) - let remainingNationalNumber: String = String(rawNumber[nationalCharacterIndex...]) - rebuiltString.append(remainingNationalNumber) - } - rebuiltString = rebuiltString.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) - - return rebuiltString - } -} -#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift deleted file mode 100644 index 4f284b3..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber+Codable.swift +++ /dev/null @@ -1,144 +0,0 @@ -// -// PhoneNumber+Codable.swift -// PhoneNumberKit -// -// Created by David Roman on 16/11/2021. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -/// The strategy used to decode a `PhoneNumber` value. -public enum PhoneNumberDecodingStrategy { - /// Decode `PhoneNumber` properties as key-value pairs. This is the default strategy. - case properties - /// Decode `PhoneNumber` as a E164 formatted string. - case e164 - /// The default `PhoneNumber` encoding strategy. - public static var `default` = properties -} - -/// The strategy used to encode a `PhoneNumber` value. -public enum PhoneNumberEncodingStrategy { - /// Encode `PhoneNumber` properties as key-value pairs. This is the default strategy. - case properties - /// Encode `PhoneNumber` as a E164 formatted string. - case e164 - /// The default `PhoneNumber` encoding strategy. - public static var `default` = properties -} - -public enum PhoneNumberDecodingUtils { - /// The default `PhoneNumberKit` instance used for parsing when decoding, if needed. - public static var defaultPhoneNumberKit: () -> PhoneNumberKit = { .init() } -} - -public enum PhoneNumberEncodingUtils { - /// The default `PhoneNumberKit` instance used for formatting when encoding, if needed. - public static var defaultPhoneNumberKit: () -> PhoneNumberKit = { .init() } -} - -extension JSONDecoder { - /// The strategy used to decode a `PhoneNumber` value. - public var phoneNumberDecodingStrategy: PhoneNumberDecodingStrategy { - get { - return userInfo[.phoneNumberDecodingStrategy] as? PhoneNumberDecodingStrategy ?? .default - } - set { - userInfo[.phoneNumberDecodingStrategy] = newValue - } - } - - /// The `PhoneNumberKit` instance used for parsing when decoding, if needed. - public var phoneNumberKit: () -> PhoneNumberKit { - get { - return userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberDecodingUtils.defaultPhoneNumberKit - } - set { - userInfo[.phoneNumberKit] = newValue - } - } -} - -extension JSONEncoder { - /// The strategy used to encode a `PhoneNumber` value. - public var phoneNumberEncodingStrategy: PhoneNumberEncodingStrategy { - get { - return userInfo[.phoneNumberEncodingStrategy] as? PhoneNumberEncodingStrategy ?? .default - } - set { - userInfo[.phoneNumberEncodingStrategy] = newValue - } - } - - /// The `PhoneNumberKit` instance used for formatting when encoding, if needed. - public var phoneNumberKit: () -> PhoneNumberKit { - get { - return userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberEncodingUtils.defaultPhoneNumberKit - } - set { - userInfo[.phoneNumberKit] = newValue - } - } -} - -extension PhoneNumber: Codable { - public init(from decoder: Decoder) throws { - let strategy = decoder.userInfo[.phoneNumberDecodingStrategy] as? PhoneNumberDecodingStrategy ?? .default - switch strategy { - case .properties: - let container = try decoder.container(keyedBy: CodingKeys.self) - try self.init( - numberString: container.decode(String.self, forKey: .numberString), - countryCode: container.decode(UInt64.self, forKey: .countryCode), - leadingZero: container.decode(Bool.self, forKey: .leadingZero), - nationalNumber: container.decode(UInt64.self, forKey: .nationalNumber), - numberExtension: container.decodeIfPresent(String.self, forKey: .numberExtension), - type: container.decode(PhoneNumberType.self, forKey: .type), - regionID: container.decodeIfPresent(String.self, forKey: .regionID) - ) - case .e164: - let container = try decoder.singleValueContainer() - let e164String = try container.decode(String.self) - let phoneNumberKit = decoder.userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberDecodingUtils.defaultPhoneNumberKit - self = try phoneNumberKit().parse(e164String, ignoreType: true) - } - } - - public func encode(to encoder: Encoder) throws { - let strategy = encoder.userInfo[.phoneNumberEncodingStrategy] as? PhoneNumberEncodingStrategy ?? .default - switch strategy { - case .properties: - var container = encoder.container(keyedBy: CodingKeys.self) - try container.encode(numberString, forKey: .numberString) - try container.encode(countryCode, forKey: .countryCode) - try container.encode(leadingZero, forKey: .leadingZero) - try container.encode(nationalNumber, forKey: .nationalNumber) - try container.encode(numberExtension, forKey: .numberExtension) - try container.encode(type, forKey: .type) - try container.encode(regionID, forKey: .regionID) - case .e164: - var container = encoder.singleValueContainer() - let phoneNumberKit = encoder.userInfo[.phoneNumberKit] as? () -> PhoneNumberKit ?? PhoneNumberEncodingUtils.defaultPhoneNumberKit - let e164String = phoneNumberKit().format(self, toType: .e164) - try container.encode(e164String) - } - } - - private enum CodingKeys: String, CodingKey { - case numberString - case countryCode - case leadingZero - case nationalNumber - case numberExtension - case type - case regionID - } -} - -extension CodingUserInfoKey { - static let phoneNumberDecodingStrategy = Self(rawValue: "com.roymarmelstein.PhoneNumberKit.decoding-strategy")! - static let phoneNumberEncodingStrategy = Self(rawValue: "com.roymarmelstein.PhoneNumberKit.encoding-strategy")! - - static let phoneNumberKit = Self(rawValue: "com.roymarmelstein.PhoneNumberKit.instance")! -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift deleted file mode 100644 index d25962f..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumber.swift +++ /dev/null @@ -1,95 +0,0 @@ -// -// PhoneNumber.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 26/09/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -/** - Parsed phone number object - - - numberString: String used to generate phone number struct - - countryCode: Country dialing code as an unsigned. Int. - - leadingZero: Some countries (e.g. Italy) require leading zeros. Bool. - - nationalNumber: National number as an unsigned. Int. - - numberExtension: Extension if available. String. Optional - - type: Computed phone number type on access. Returns from an enumeration - PNPhoneNumberType. - */ -public struct PhoneNumber { - public let numberString: String - public let countryCode: UInt64 - public let leadingZero: Bool - public let nationalNumber: UInt64 - public let numberExtension: String? - public let type: PhoneNumberType - public let regionID: String? -} - -extension PhoneNumber: Equatable { - public static func == (lhs: PhoneNumber, rhs: PhoneNumber) -> Bool { - return (lhs.countryCode == rhs.countryCode) - && (lhs.leadingZero == rhs.leadingZero) - && (lhs.nationalNumber == rhs.nationalNumber) - && (lhs.numberExtension == rhs.numberExtension) - } -} - -extension PhoneNumber: Hashable { - public func hash(into hasher: inout Hasher) { - hasher.combine(self.countryCode) - hasher.combine(self.nationalNumber) - hasher.combine(self.leadingZero) - if let numberExtension = numberExtension { - hasher.combine(numberExtension) - } else { - hasher.combine(0) - } - } -} - -extension PhoneNumber { - public static func notPhoneNumber() -> PhoneNumber { - return PhoneNumber(numberString: "", countryCode: 0, leadingZero: false, nationalNumber: 0, numberExtension: nil, type: .notParsed, regionID: nil) - } - - public func notParsed() -> Bool { - return self.type == .notParsed - } - - /** - Get a callable URL from the number. - - Returns: A callable URL. - */ - public var url: URL? { - return URL(string: "tel://" + numberString) - } -} - -/// In past versions of PhoneNumberKit you were able to initialize a PhoneNumber object to parse a String. Please use a PhoneNumberKit object's methods. -public extension PhoneNumber { - /** - DEPRECATED. - Parse a string into a phone number object using default region. Can throw. - - Parameter rawNumber: String to be parsed to phone number struct. - */ - @available(*, unavailable, message: "use PhoneNumberKit instead to produce PhoneNumbers") - init(rawNumber: String) throws { - assertionFailure(PhoneNumberError.deprecated.localizedDescription) - throw PhoneNumberError.deprecated - } - - /** - DEPRECATED. - Parse a string into a phone number object using custom region. Can throw. - - Parameter rawNumber: String to be parsed to phone number struct. - - Parameter region: ISO 3166 compliant region code. - */ - @available(*, unavailable, message: "use PhoneNumberKit instead to produce PhoneNumbers") - init(rawNumber: String, region: String) throws { - throw PhoneNumberError.deprecated - } -} - diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift deleted file mode 100644 index 47fa218..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberFormatter.swift +++ /dev/null @@ -1,223 +0,0 @@ -// -// PhoneNumberFormatter.swift -// PhoneNumberKit -// -// Created by Jean-Daniel. -// Copyright © 2019 Xenonium. All rights reserved. -// - -#if canImport(ObjectiveC) -import Foundation - -open class PhoneNumberFormatter: Foundation.Formatter { - public let phoneNumberKit: PhoneNumberKit - - private let partialFormatter: PartialFormatter - - // We declare all properties as @objc, so we can configure them though IB (using custom property) - @objc public dynamic - var generatesPhoneNumber = false - - /// Override region to set a custom region. Automatically uses the default region code. - @objc public dynamic - var defaultRegion = PhoneNumberKit.defaultRegionCode() { - didSet { - self.partialFormatter.defaultRegion = self.defaultRegion - } - } - - @objc public dynamic - var withPrefix: Bool = true { - didSet { - self.partialFormatter.withPrefix = self.withPrefix - } - } - - @objc public dynamic - var currentRegion: String { - return self.partialFormatter.currentRegion - } - - // MARK: Lifecycle - - public init(phoneNumberKit pnk: PhoneNumberKit = PhoneNumberKit(), defaultRegion: String = PhoneNumberKit.defaultRegionCode(), withPrefix: Bool = true) { - self.phoneNumberKit = pnk - self.partialFormatter = PartialFormatter(phoneNumberKit: self.phoneNumberKit, defaultRegion: defaultRegion, withPrefix: withPrefix) - super.init() - } - - public required init?(coder aDecoder: NSCoder) { - self.phoneNumberKit = PhoneNumberKit() - self.partialFormatter = PartialFormatter(phoneNumberKit: self.phoneNumberKit, defaultRegion: self.defaultRegion, withPrefix: self.withPrefix) - super.init(coder: aDecoder) - } -} - -// MARK: - - -// MARK: NSFormatter implementation - -extension PhoneNumberFormatter { - open override func string(for obj: Any?) -> String? { - if let pn = obj as? PhoneNumber { - return self.phoneNumberKit.format(pn, toType: self.withPrefix ? .international : .national) - } - if let str = obj as? String { - return self.partialFormatter.formatPartial(str) - } - return nil - } - - open override func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer?, for string: String, errorDescription error: AutoreleasingUnsafeMutablePointer?) -> Bool { - if self.generatesPhoneNumber { - do { - obj?.pointee = try self.phoneNumberKit.parse(string) as AnyObject? - return true - } catch (let e) { - error?.pointee = e.localizedDescription as NSString - return false - } - } else { - obj?.pointee = string as NSString - return true - } - } - - // MARK: Phone number formatting - - /** - * To keep the cursor position, we find the character immediately after the cursor and count the number of times it repeats in the remaining string as this will remain constant in every kind of editing. - */ - private struct CursorPosition { - let numberAfterCursor: unichar - let repetitionCountFromEnd: Int - } - - private func extractCursorPosition(from text: NSString, selection selectedTextRange: NSRange) -> CursorPosition? { - var repetitionCountFromEnd = 0 - - // The selection range is based on NSString representation - var cursorEnd = selectedTextRange.location + selectedTextRange.length - - guard cursorEnd < text.length else { - // Cursor at end of string - return nil - } - - // Get the character after the cursor - var char: unichar - repeat { - char = text.character(at: cursorEnd) // should work even if char is start of compound sequence - cursorEnd += 1 - // We consider only digit as other characters may be inserted by the formatter (especially spaces) - } while !char.isDigit() && cursorEnd < text.length - - guard cursorEnd < text.length else { - // Cursor at end of string - return nil - } - - // Look for the next valid number after the cursor, when found return a CursorPosition struct - for i in cursorEnd.. Action { - // If origin range length > 0, this is a delete or replace action - if range.length == 0 { - return .insert - } - - // If proposed length = orig length - orig range length -> this is delete action - if origString.length - range.length == proposedString.length { - return .delete - } - // If proposed length > orig length - orig range length -> this is replace action - return .replace - } - - open override func isPartialStringValid( - _ partialStringPtr: AutoreleasingUnsafeMutablePointer, - proposedSelectedRange proposedSelRangePtr: NSRangePointer?, - originalString origString: String, - originalSelectedRange origSelRange: NSRange, - errorDescription error: AutoreleasingUnsafeMutablePointer? - ) -> Bool { - guard let proposedSelRangePtr = proposedSelRangePtr else { - // I guess this is an annotation issue. I can't see a valid case where the pointer can be null - return true - } - - // We want to allow space deletion or insertion - let orig = origString as NSString - let action = self.action(for: orig, range: origSelRange, proposedString: partialStringPtr.pointee, proposedRange: proposedSelRangePtr.pointee) - if action == .delete && orig.isWhiteSpace(in: origSelRange) { - // Deleting white space - return true - } - - // Also allow to add white space ? - if action == .insert || action == .replace { - // Determine the inserted text range. This is the range starting at orig selection index and with length = ∆length - let length = partialStringPtr.pointee.length - orig.length + origSelRange.length - if partialStringPtr.pointee.isWhiteSpace(in: NSRange(location: origSelRange.location, length: length)) { - return true - } - } - - let text = partialStringPtr.pointee as String - let formattedNationalNumber = self.partialFormatter.formatPartial(text) - guard formattedNationalNumber != text else { - // No change, no need to update the text - return true - } - - // Fix selection - - // The selection range is based on NSString representation - let formattedTextNSString = formattedNationalNumber as NSString - if let cursor = extractCursorPosition(from: partialStringPtr.pointee, selection: proposedSelRangePtr.pointee) { - var remaining = cursor.repetitionCountFromEnd - for i in stride(from: formattedTextNSString.length - 1, through: 0, by: -1) { - if formattedTextNSString.character(at: i) == cursor.numberAfterCursor { - if remaining > 0 { - remaining -= 1 - } else { - // We are done - proposedSelRangePtr.pointee = NSRange(location: i, length: 0) - break - } - } - } - } else { - // assume the pointer is at end of string - proposedSelRangePtr.pointee = NSRange(location: formattedTextNSString.length, length: 0) - } - - partialStringPtr.pointee = formattedNationalNumber as NSString - return false - } -} - -private extension NSString { - func isWhiteSpace(in range: NSRange) -> Bool { - return rangeOfCharacter(from: CharacterSet.whitespacesAndNewlines.inverted, options: [.literal], range: range).location == NSNotFound - } -} - -private extension unichar { - func isDigit() -> Bool { - return self >= 0x30 && self <= 0x39 // '0' < '9' - } -} -#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift deleted file mode 100644 index e1a7765..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberKit.swift +++ /dev/null @@ -1,362 +0,0 @@ -// -// PhoneNumberKit.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 03/10/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation -#if canImport(Contacts) -import Contacts -#endif - -public typealias MetadataCallback = (() throws -> Data?) - -public final class PhoneNumberKit { - // Manager objects - let metadataManager: MetadataManager - let parseManager: ParseManager - let regexManager = RegexManager() - - // MARK: Lifecycle - - public init(metadataCallback: @escaping MetadataCallback = PhoneNumberKit.defaultMetadataCallback) { - self.metadataManager = MetadataManager(metadataCallback: metadataCallback) - self.parseManager = ParseManager(metadataManager: self.metadataManager, regexManager: self.regexManager) - } - - // MARK: Parsing - - /// Parses a number string, used to create PhoneNumber objects. Throws. - /// - /// - Parameters: - /// - numberString: the raw number string. - /// - region: ISO 3166 compliant region code. - /// - ignoreType: Avoids number type checking for faster performance. - /// - Returns: PhoneNumber object. - public func parse(_ numberString: String, withRegion region: String = PhoneNumberKit.defaultRegionCode(), ignoreType: Bool = false) throws -> PhoneNumber { - let region = region.uppercased() - do { - return try self.parseManager.parse(numberString, withRegion: region, ignoreType: ignoreType) - } catch { - guard numberString.first != "+", let regionMetadata = metadataManager.filterTerritories(byCountry: region) else { - throw error - } - let countryCode = String(regionMetadata.countryCode) - guard numberString.prefix(countryCode.count) == countryCode else { - throw error - } - return try self.parse("+\(numberString)", withRegion: region, ignoreType: ignoreType) - } - } - - /// Parses an array of number strings. Optimised for performance. Invalid numbers are ignored in the resulting array - /// - /// - parameter numberStrings: array of raw number strings. - /// - parameter region: ISO 3166 compliant region code. - /// - parameter ignoreType: Avoids number type checking for faster performance. - /// - /// - returns: array of PhoneNumber objects. - public func parse(_ numberStrings: [String], withRegion region: String = PhoneNumberKit.defaultRegionCode(), ignoreType: Bool = false, shouldReturnFailedEmptyNumbers: Bool = false) -> [PhoneNumber] { - return self.parseManager.parseMultiple(numberStrings, withRegion: region, ignoreType: ignoreType, shouldReturnFailedEmptyNumbers: shouldReturnFailedEmptyNumbers) - } - - // MARK: Checking - - /// Checks if a number string is a valid PhoneNumber object - /// - /// - Parameters: - /// - numberString: the raw number string. - /// - region: ISO 3166 compliant region code. - /// - ignoreType: Avoids number type checking for faster performance. - /// - Returns: Bool - public func isValidPhoneNumber(_ numberString: String, withRegion region: String = PhoneNumberKit.defaultRegionCode(), ignoreType: Bool = false) -> Bool { - return (try? self.parse(numberString, withRegion: region, ignoreType: ignoreType)) != nil - } - - // MARK: Formatting - - /// Formats a PhoneNumber object for display. - /// - /// - parameter phoneNumber: PhoneNumber object. - /// - parameter formatType: PhoneNumberFormat enum. - /// - parameter prefix: whether or not to include the prefix. - /// - /// - returns: Formatted representation of the PhoneNumber. - public func format(_ phoneNumber: PhoneNumber, toType formatType: PhoneNumberFormat, withPrefix prefix: Bool = true) -> String { - if formatType == .e164 { - let formattedNationalNumber = phoneNumber.adjustedNationalNumber() - if prefix == false { - return formattedNationalNumber - } - return "+\(phoneNumber.countryCode)\(formattedNationalNumber)" - } else { - let formatter = Formatter(phoneNumberKit: self) - let regionMetadata = self.metadataManager.mainTerritory(forCode: phoneNumber.countryCode) - let formattedNationalNumber = formatter.format(phoneNumber: phoneNumber, formatType: formatType, regionMetadata: regionMetadata) - if formatType == .international, prefix == true { - return "+\(phoneNumber.countryCode) \(formattedNationalNumber)" - } else { - return formattedNationalNumber - } - } - } - - // MARK: Country and region code - - /// Get a list of all the countries in the metadata database - /// - /// - returns: An array of ISO 3166 compliant region codes. - public func allCountries() -> [String] { - let results = self.metadataManager.territories.map { $0.codeID } - return results - } - - /// Get an array of ISO 3166 compliant region codes corresponding to a given country code. - /// - /// - parameter countryCode: international country code (e.g 44 for the UK). - /// - /// - returns: optional array of ISO 3166 compliant region codes. - public func countries(withCode countryCode: UInt64) -> [String]? { - let results = self.metadataManager.filterTerritories(byCode: countryCode)?.map { $0.codeID } - return results - } - - /// Get an main ISO 3166 compliant region code for a given country code. - /// - /// - parameter countryCode: international country code (e.g 1 for the US). - /// - /// - returns: ISO 3166 compliant region code string. - public func mainCountry(forCode countryCode: UInt64) -> String? { - let country = self.metadataManager.mainTerritory(forCode: countryCode) - return country?.codeID - } - - /// Get an international country code for an ISO 3166 compliant region code - /// - /// - parameter country: ISO 3166 compliant region code. - /// - /// - returns: international country code (e.g. 33 for France). - public func countryCode(for country: String) -> UInt64? { - let results = self.metadataManager.filterTerritories(byCountry: country)?.countryCode - return results - } - - /// Get leading digits for an ISO 3166 compliant region code. - /// - /// - parameter country: ISO 3166 compliant region code. - /// - /// - returns: leading digits (e.g. 876 for Jamaica). - public func leadingDigits(for country: String) -> String? { - let leadingDigits = self.metadataManager.filterTerritories(byCountry: country)?.leadingDigits - return leadingDigits - } - - /// Determine the region code of a given phone number. - /// - /// - parameter phoneNumber: PhoneNumber object - /// - /// - returns: Region code, eg "US", or nil if the region cannot be determined. - public func getRegionCode(of phoneNumber: PhoneNumber) -> String? { - return self.parseManager.getRegionCode(of: phoneNumber.nationalNumber, countryCode: phoneNumber.countryCode, leadingZero: phoneNumber.leadingZero) - } - - /// Get an example phone number for an ISO 3166 compliant region code. - /// - /// - parameter countryCode: ISO 3166 compliant region code. - /// - parameter type: The `PhoneNumberType` desired. default: `.mobile` - /// - /// - returns: An example phone number - public func getExampleNumber(forCountry countryCode: String, ofType type: PhoneNumberType = .mobile) -> PhoneNumber? { - let metadata = self.metadata(for: countryCode) - let example: String? - switch type { - case .fixedLine: example = metadata?.fixedLine?.exampleNumber - case .mobile: example = metadata?.mobile?.exampleNumber - case .fixedOrMobile: example = metadata?.mobile?.exampleNumber - case .pager: example = metadata?.pager?.exampleNumber - case .personalNumber: example = metadata?.personalNumber?.exampleNumber - case .premiumRate: example = metadata?.premiumRate?.exampleNumber - case .sharedCost: example = metadata?.sharedCost?.exampleNumber - case .tollFree: example = metadata?.tollFree?.exampleNumber - case .voicemail: example = metadata?.voicemail?.exampleNumber - case .voip: example = metadata?.voip?.exampleNumber - case .uan: example = metadata?.uan?.exampleNumber - case .unknown: return nil - case .notParsed: return nil - } - do { - return try example.flatMap { try parse($0, withRegion: countryCode, ignoreType: false) } - } catch { - print("[PhoneNumberKit] Failed to parse example number for \(countryCode) region") - return nil - } - } - - /// Get a formatted example phone number for an ISO 3166 compliant region code. - /// - /// - parameter countryCode: ISO 3166 compliant region code. - /// - parameter type: `PhoneNumberType` desired. default: `.mobile` - /// - parameter format: `PhoneNumberFormat` to use for formatting. default: `.international` - /// - parameter prefix: Whether or not to include the prefix. - /// - /// - returns: A formatted example phone number - public func getFormattedExampleNumber( - forCountry countryCode: String, ofType type: PhoneNumberType = .mobile, - withFormat format: PhoneNumberFormat = .international, withPrefix prefix: Bool = true - ) -> String? { - return self.getExampleNumber(forCountry: countryCode, ofType: type) - .flatMap { self.format($0, toType: format, withPrefix: prefix) } - } - - /// Get the MetadataTerritory objects for an ISO 3166 compliant region code. - /// - /// - parameter country: ISO 3166 compliant region code (e.g "GB" for the UK). - /// - /// - returns: A MetadataTerritory object, or nil if no metadata was found for the country code - public func metadata(for country: String) -> MetadataTerritory? { - return self.metadataManager.filterTerritories(byCountry: country) - } - - /// Get an array of MetadataTerritory objects corresponding to a given country code. - /// - /// - parameter countryCode: international country code (e.g 44 for the UK) - public func metadata(forCode countryCode: UInt64) -> [MetadataTerritory]? { - return self.metadataManager.filterTerritories(byCode: countryCode) - } - - /// Get an array of possible phone number lengths for the country, as specified by the parameters. - /// - /// - parameter country: ISO 3166 compliant region code. - /// - parameter phoneNumberType: PhoneNumberType enum. - /// - parameter lengthType: PossibleLengthType enum. - /// - /// - returns: Array of possible lengths for the country. May be empty. - public func possiblePhoneNumberLengths(forCountry country: String, phoneNumberType: PhoneNumberType, lengthType: PossibleLengthType) -> [Int] { - guard let territory = metadataManager.filterTerritories(byCountry: country) else { return [] } - - let possibleLengths = possiblePhoneNumberLengths(forTerritory: territory, phoneNumberType: phoneNumberType) - - switch lengthType { - case .national: return possibleLengths?.national.flatMap { self.parsePossibleLengths($0) } ?? [] - case .localOnly: return possibleLengths?.localOnly.flatMap { self.parsePossibleLengths($0) } ?? [] - } - } - - private func possiblePhoneNumberLengths(forTerritory territory: MetadataTerritory, phoneNumberType: PhoneNumberType) -> MetadataPossibleLengths? { - switch phoneNumberType { - case .fixedLine: return territory.fixedLine?.possibleLengths - case .mobile: return territory.mobile?.possibleLengths - case .pager: return territory.pager?.possibleLengths - case .personalNumber: return territory.personalNumber?.possibleLengths - case .premiumRate: return territory.premiumRate?.possibleLengths - case .sharedCost: return territory.sharedCost?.possibleLengths - case .tollFree: return territory.tollFree?.possibleLengths - case .voicemail: return territory.voicemail?.possibleLengths - case .voip: return territory.voip?.possibleLengths - case .uan: return territory.uan?.possibleLengths - case .fixedOrMobile: return nil // caller needs to combine results for .fixedLine and .mobile - case .unknown: return nil - case .notParsed: return nil - } - } - - /// Parse lengths string into array of Int, e.g. "6,[8-10]" becomes [6,8,9,10] - private func parsePossibleLengths(_ lengths: String) -> [Int] { - let components = lengths.components(separatedBy: ",") - let results = components.reduce([Int](), { result, component in - let newComponents = parseLengthComponent(component) - return result + newComponents - }) - - return results - } - - /// Parses numbers and ranges into array of Int - private func parseLengthComponent(_ component: String) -> [Int] { - if let int = Int(component) { - return [int] - } else { - let trimmedComponent = component.trimmingCharacters(in: CharacterSet(charactersIn: "[]")) - let rangeLimits = trimmedComponent.components(separatedBy: "-").compactMap { Int($0) } - - guard rangeLimits.count == 2, - let rangeStart = rangeLimits.first, - let rangeEnd = rangeLimits.last - else { return [] } - - return Array(rangeStart...rangeEnd) - } - } - - // MARK: Class functions - - /// Get a user's default region code - /// - /// - returns: A computed value for the user's current region - based on the iPhone's carrier and if not available, the device region. - public class func defaultRegionCode() -> String { - #if canImport(Contacts) - if #available(iOS 12.0, macOS 10.13, macCatalyst 13.1, watchOS 4.0, *) { - // macCatalyst OS bug if language is set to Korean - // CNContactsUserDefaults.shared().countryCode will return ko instead of kr - // Failed parsing any phone number. - let countryCode = CNContactsUserDefaults.shared().countryCode.uppercased() - #if targetEnvironment(macCatalyst) - if "ko".caseInsensitiveCompare(countryCode) == .orderedSame { - return "KR" - } - #endif - return countryCode - } - #endif - - let currentLocale = Locale.current - if let countryCode = (currentLocale as NSLocale).object(forKey: .countryCode) as? String { - return countryCode.uppercased() - } - return PhoneNumberConstants.defaultCountry - } - - - - /// Default metadata callback, reads metadata from PhoneNumberMetadata.json file in bundle - /// - /// - returns: an optional Data representation of the metadata. - public static func defaultMetadataCallback() throws -> Data? { - let frameworkBundle = Bundle.phoneNumberKit - guard - let jsonPath = frameworkBundle.path(forResource: "PhoneNumberMetadata", ofType: "json"), - let handle = FileHandle(forReadingAtPath: jsonPath) else { - throw PhoneNumberError.metadataNotFound - } - - defer { - if #available(iOS 13.0, macOS 10.15, macCatalyst 13.1, tvOS 13.0, watchOS 6.0, *) { - try? handle.close() - } else { - handle.closeFile() - } - } - - let data = handle.readDataToEndOfFile() - return data - } -} - -#if canImport(UIKit) -extension PhoneNumberKit { - - /// Configuration for the CountryCodePicker presented from PhoneNumberTextField if `withDefaultPickerUI` is `true` - public enum CountryCodePicker { - /// Common Country Codes are shown below the Current section in the CountryCodePicker by default - public static var commonCountryCodes: [String] = [] - - /// When the Picker is shown from the textfield it is presented modally - public static var forceModalPresentation: Bool = false - - /// Set the search bar of the Picker to always visible - public static var alwaysShowsSearchBar: Bool = false - } -} -#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift deleted file mode 100644 index 391d04c..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/PhoneNumberParser.swift +++ /dev/null @@ -1,299 +0,0 @@ -// -// PhoneNumberParser.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 26/09/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -/** - Parser. Contains parsing functions. - */ -final class PhoneNumberParser { - let metadata: MetadataManager - let regex: RegexManager - - init(regex: RegexManager, metadata: MetadataManager) { - self.regex = regex - self.metadata = metadata - } - - // MARK: Normalizations - - /** - Normalize a phone number (e.g +33 612-345-678 to 33612345678). - - Parameter number: Phone number string. - - Returns: Normalized phone number string. - */ - func normalizePhoneNumber(_ number: String) -> String { - let normalizationMappings = PhoneNumberPatterns.allNormalizationMappings - return self.regex.stringByReplacingOccurrences(number, map: normalizationMappings) - } - - // MARK: Extractions - - /** - Extract country code (e.g +33 612-345-678 to 33). - - Parameter number: Number string. - - Parameter nationalNumber: National number string - inout. - - Parameter metadata: Metadata territory object. - - Returns: Country code is UInt64. - */ - func extractCountryCode(_ number: String, nationalNumber: inout String, metadata: MetadataTerritory) throws -> UInt64 { - var fullNumber = number - guard let possibleCountryIddPrefix = metadata.internationalPrefix else { - return 0 - } - let countryCodeSource = self.stripInternationalPrefixAndNormalize(&fullNumber, possibleIddPrefix: possibleCountryIddPrefix) - if countryCodeSource != .defaultCountry { - if fullNumber.count <= PhoneNumberConstants.minLengthForNSN { - throw PhoneNumberError.tooShort - } - if let potentialCountryCode = extractPotentialCountryCode(fullNumber, nationalNumber: &nationalNumber), potentialCountryCode != 0 { - return potentialCountryCode - } else { - return 0 - } - } else { - let defaultCountryCode = String(metadata.countryCode) - if fullNumber.hasPrefix(defaultCountryCode) { - let nsFullNumber = fullNumber as NSString - var potentialNationalNumber = nsFullNumber.substring(from: defaultCountryCode.count) - guard let validNumberPattern = metadata.generalDesc?.nationalNumberPattern, let possibleNumberPattern = metadata.generalDesc?.possibleNumberPattern else { - return 0 - } - self.stripNationalPrefix(&potentialNationalNumber, metadata: metadata) - let potentialNationalNumberStr = potentialNationalNumber - if (!self.regex.matchesEntirely(validNumberPattern, string: fullNumber) && self.regex.matchesEntirely(validNumberPattern, string: potentialNationalNumberStr)) || self.regex.testStringLengthAgainstPattern(possibleNumberPattern, string: fullNumber as String) == false { - nationalNumber = potentialNationalNumberStr - if let countryCode = UInt64(defaultCountryCode) { - return UInt64(countryCode) - } - } - } - } - return 0 - } - - /** - Extract potential country code (e.g +33 612-345-678 to 33). - - Parameter fullNumber: Full number string. - - Parameter nationalNumber: National number string. - - Returns: Country code is UInt64. Optional. - */ - func extractPotentialCountryCode(_ fullNumber: String, nationalNumber: inout String) -> UInt64? { - let nsFullNumber = fullNumber as NSString - if nsFullNumber.length == 0 || nsFullNumber.substring(to: 1) == "0" { - return 0 - } - let numberLength = nsFullNumber.length - let maxCountryCode = PhoneNumberConstants.maxLengthCountryCode - var startPosition = 0 - if fullNumber.hasPrefix("+") { - if nsFullNumber.length == 1 { - return 0 - } - startPosition = 1 - } - for i in 1...min(numberLength - startPosition, maxCountryCode) { - let stringRange = NSRange(location: startPosition, length: i) - let subNumber = nsFullNumber.substring(with: stringRange) - if let potentialCountryCode = UInt64(subNumber), metadata.filterTerritories(byCode: potentialCountryCode) != nil { - nationalNumber = nsFullNumber.substring(from: i) - return potentialCountryCode - } - } - return 0 - } - - // MARK: Validations - - func checkNumberType(_ nationalNumber: String, metadata: MetadataTerritory, leadingZero: Bool = false) -> PhoneNumberType { - if leadingZero { - let type = self.checkNumberType("0" + String(nationalNumber), metadata: metadata) - if type != .unknown { - return type - } - } - - guard let generalNumberDesc = metadata.generalDesc else { - return .unknown - } - if self.regex.hasValue(generalNumberDesc.nationalNumberPattern) == false || self.isNumberMatchingDesc(nationalNumber, numberDesc: generalNumberDesc) == false { - return .unknown - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.pager) { - return .pager - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.premiumRate) { - return .premiumRate - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.tollFree) { - return .tollFree - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.sharedCost) { - return .sharedCost - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.voip) { - return .voip - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.personalNumber) { - return .personalNumber - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.uan) { - return .uan - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.voicemail) { - return .voicemail - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.fixedLine) { - if metadata.fixedLine?.nationalNumberPattern == metadata.mobile?.nationalNumberPattern { - return .fixedOrMobile - } else if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.mobile) { - return .fixedOrMobile - } else { - return .fixedLine - } - } - if self.isNumberMatchingDesc(nationalNumber, numberDesc: metadata.mobile) { - return .mobile - } - return .unknown - } - - /** - Checks if number matches description. - - Parameter nationalNumber: National number string. - - Parameter numberDesc: MetadataPhoneNumberDesc of a given phone number type. - - Returns: True or false. - */ - func isNumberMatchingDesc(_ nationalNumber: String, numberDesc: MetadataPhoneNumberDesc?) -> Bool { - return self.regex.matchesEntirely(numberDesc?.nationalNumberPattern, string: nationalNumber) - } - - /** - Checks and strips if prefix is international dialing pattern. - - Parameter number: Number string. - - Parameter iddPattern: iddPattern for a given country. - - Returns: True or false and modifies the number accordingly. - */ - func parsePrefixAsIdd(_ number: inout String, iddPattern: String) -> Bool { - if self.regex.stringPositionByRegex(iddPattern, string: number) == 0 { - do { - guard let matched = try regex.regexMatches(iddPattern as String, string: number as String).first else { - return false - } - let matchedString = number.substring(with: matched.range) - let matchEnd = matchedString.count - let remainString = (number as NSString).substring(from: matchEnd) - let capturingDigitPatterns = try NSRegularExpression(pattern: PhoneNumberPatterns.capturingDigitPattern, options: NSRegularExpression.Options.caseInsensitive) - let matchedGroups = capturingDigitPatterns.matches(in: remainString as String) - if let firstMatch = matchedGroups.first { - let digitMatched = remainString.substring(with: firstMatch.range) as NSString - if digitMatched.length > 0 { - let normalizedGroup = self.regex.stringByReplacingOccurrences(digitMatched as String, map: PhoneNumberPatterns.allNormalizationMappings) - if normalizedGroup == "0" { - return false - } - } - } - number = remainString as String - return true - } catch { - return false - } - } - return false - } - - // MARK: Strip helpers - - /** - Strip an extension (e.g +33 612-345-678 ext.89 to 89). - - Parameter number: Number string. - - Returns: Modified number without extension and optional extension as string. - */ - func stripExtension(_ number: inout String) -> String? { - do { - let matches = try regex.regexMatches(PhoneNumberPatterns.extnPattern, string: number) - if let match = matches.first { - let adjustedRange = NSRange(location: match.range.location + 1, length: match.range.length - 1) - let matchString = number.substring(with: adjustedRange) - let stringRange = NSRange(location: 0, length: match.range.location) - number = number.substring(with: stringRange) - return matchString - } - return nil - } catch { - return nil - } - } - - /** - Strip international prefix. - - Parameter number: Number string. - - Parameter possibleIddPrefix: Possible idd prefix for a given country. - - Returns: Modified normalized number without international prefix and a PNCountryCodeSource enumeration. - */ - func stripInternationalPrefixAndNormalize(_ number: inout String, possibleIddPrefix: String?) -> PhoneNumberCountryCodeSource { - if self.regex.matchesAtStart(PhoneNumberPatterns.leadingPlusCharsPattern, string: number as String) { - number = self.regex.replaceStringByRegex(PhoneNumberPatterns.leadingPlusCharsPattern, string: number as String) - return .numberWithPlusSign - } - number = self.normalizePhoneNumber(number as String) - guard let possibleIddPrefix = possibleIddPrefix else { - return .numberWithoutPlusSign - } - let prefixResult = self.parsePrefixAsIdd(&number, iddPattern: possibleIddPrefix) - if prefixResult == true { - return .numberWithIDD - } else { - return .defaultCountry - } - } - - /** - Strip national prefix. - - Parameter number: Number string. - - Parameter metadata: Final country's metadata. - - Returns: Modified number without national prefix. - */ - func stripNationalPrefix(_ number: inout String, metadata: MetadataTerritory) { - guard let possibleNationalPrefix = metadata.nationalPrefixForParsing else { - return - } - #if canImport(ObjectiveC) - let prefixPattern = String(format: "^(?:%@)", possibleNationalPrefix) - #else - // FIX: String format with %@ doesn't work without ObjectiveC (e.g. Linux) - let prefixPattern = "^(?:\(possibleNationalPrefix))" - #endif - do { - let matches = try regex.regexMatches(prefixPattern, string: number) - if let firstMatch = matches.first { - let nationalNumberRule = metadata.generalDesc?.nationalNumberPattern - let firstMatchString = number.substring(with: firstMatch.range) - let numOfGroups = firstMatch.numberOfRanges - 1 - var transformedNumber: String = String() - let firstRange = firstMatch.range(at: numOfGroups) - let firstMatchStringWithGroup = (firstRange.location != NSNotFound && firstRange.location < number.count) ? number.substring(with: firstRange) : String() - let firstMatchStringWithGroupHasValue = self.regex.hasValue(firstMatchStringWithGroup) - if let transformRule = metadata.nationalPrefixTransformRule, firstMatchStringWithGroupHasValue == true { - transformedNumber = self.regex.replaceFirstStringByRegex(prefixPattern, string: number, templateString: transformRule) - } else { - let index = number.index(number.startIndex, offsetBy: firstMatchString.count) - transformedNumber = String(number[index...]) - } - if self.regex.hasValue(nationalNumberRule), self.regex.matchesEntirely(nationalNumberRule, string: number), self.regex.matchesEntirely(nationalNumberRule, string: transformedNumber) == false { - return - } - number = transformedNumber - return - } - } catch { - return - } - } -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift deleted file mode 100644 index a007368..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/RegexManager.swift +++ /dev/null @@ -1,208 +0,0 @@ -// -// RegexManager.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 04/10/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -import Foundation - -final class RegexManager { - public init() { - var characterSet = CharacterSet(charactersIn: PhoneNumberConstants.nonBreakingSpace) - characterSet.formUnion(.whitespacesAndNewlines) - spaceCharacterSet = characterSet - } - - // MARK: Regular expression pool - - var regularExpressionPool = [String: NSRegularExpression]() - - private let regularExpressionPoolQueue = DispatchQueue(label: "com.phonenumberkit.regexpool", target: .global()) - - var spaceCharacterSet: CharacterSet - - // MARK: Regular expression - - func regexWithPattern(_ pattern: String) throws -> NSRegularExpression { - var cached: NSRegularExpression? - cached = regularExpressionPoolQueue.sync { - regularExpressionPool[pattern] - } - - if let cached = cached { - return cached - } - - do { - let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive) - - regularExpressionPoolQueue.sync { - regularExpressionPool[pattern] = regex - } - - return regex - } catch { - throw PhoneNumberError.generalError - } - } - - func regexMatches(_ pattern: String, string: String) throws -> [NSTextCheckingResult] { - do { - let internalString = string - let currentPattern = try regexWithPattern(pattern) - let matches = currentPattern.matches(in: internalString) - return matches - } catch { - throw PhoneNumberError.generalError - } - } - - func phoneDataDetectorMatch(_ string: String) throws -> NSTextCheckingResult { - let fallBackMatches = try regexMatches(PhoneNumberPatterns.validPhoneNumberPattern, string: string) - if let firstMatch = fallBackMatches.first { - return firstMatch - } else { - throw PhoneNumberError.invalidNumber - } - } - - // MARK: Match helpers - - func matchesAtStart(_ pattern: String, string: String) -> Bool { - do { - let matches = try regexMatches(pattern, string: string) - for match in matches { - if match.range.location == 0 { - return true - } - } - } catch {} - return false - } - - func stringPositionByRegex(_ pattern: String, string: String) -> Int { - do { - let matches = try regexMatches(pattern, string: string) - if let match = matches.first { - return (match.range.location) - } - return -1 - } catch { - return -1 - } - } - - func matchesExist(_ pattern: String?, string: String) -> Bool { - guard let pattern = pattern else { - return false - } - do { - let matches = try regexMatches(pattern, string: string) - return matches.count > 0 - } catch { - return false - } - } - - func matchesEntirely(_ pattern: String?, string: String) -> Bool { - guard var pattern = pattern else { - return false - } - pattern = "^(\(pattern))$" - return matchesExist(pattern, string: string) - } - - func matchedStringByRegex(_ pattern: String, string: String) throws -> [String] { - do { - let matches = try regexMatches(pattern, string: string) - var matchedStrings = [String]() - for match in matches { - let processedString = string.substring(with: match.range) - matchedStrings.append(processedString) - } - return matchedStrings - } catch {} - return [] - } - - // MARK: String and replace - - func replaceStringByRegex(_ pattern: String, string: String, template: String = "") -> String { - do { - var replacementResult = string - let regex = try regexWithPattern(pattern) - let matches = regex.matches(in: string) - if matches.count == 1 { - let range = regex.rangeOfFirstMatch(in: string) - if range != nil { - replacementResult = regex.stringByReplacingMatches(in: string, options: [], range: range, withTemplate: template) - } - return replacementResult - } else if matches.count > 1 { - replacementResult = regex.stringByReplacingMatches(in: string, withTemplate: template) - } - return replacementResult - } catch { - return string - } - } - - func replaceFirstStringByRegex(_ pattern: String, string: String, templateString: String) -> String { - do { - let regex = try regexWithPattern(pattern) - let range = regex.rangeOfFirstMatch(in: string) - if range != nil { - return regex.stringByReplacingMatches(in: string, options: [], range: range, withTemplate: templateString) - } - return string - } catch { - return String() - } - } - - func stringByReplacingOccurrences(_ string: String, map: [String: String], keepUnmapped: Bool = false) -> String { - var targetString = String() - for i in 0 ..< string.count { - let oneChar = string[string.index(string.startIndex, offsetBy: i)] - let keyString = String(oneChar).uppercased() - if let mappedValue = map[keyString] { - targetString.append(mappedValue) - } else if keepUnmapped { - targetString.append(keyString) - } - } - return targetString - } - - // MARK: Validations - - func hasValue(_ value: String?) -> Bool { - if let valueString = value { - if valueString.trimmingCharacters(in: spaceCharacterSet).count == 0 { - return false - } - return true - } else { - return false - } - } - - func testStringLengthAgainstPattern(_ pattern: String, string: String) -> Bool { - if matchesEntirely(pattern, string: string) { - return true - } else { - return false - } - } -} - -// MARK: Extensions - -extension String { - func substring(with range: NSRange) -> String { - let nsString = self as NSString - return nsString.substring(with: range) - } -} diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json deleted file mode 100644 index ec5f541..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/Resources/PhoneNumberMetadata.json +++ /dev/null @@ -1 +0,0 @@ -{ "phoneNumberMetadata": {"territories": {"territory": [{"id": "AC","countryCode": "247","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "(?:[01589]\\d|[46])\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "62889","nationalNumberPattern": "6[2-467]\\d{3}"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "40123","nationalNumberPattern": "4\\d{4}"},"uan": {"possibleLengths": {"national": "6"},"exampleNumber": "542011","nationalNumberPattern": "(?:0[1-9]|[1589]\\d)\\d{4}"}},{"id": "AD","countryCode": "376","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[135-9]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "6","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1|6\\d)\\d{7}|[135-9]\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "1800\\d{4}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "712345","nationalNumberPattern": "[78]\\d{5}"},"mobile": {"possibleLengths": {"national": "6,9"},"exampleNumber": "312345","nationalNumberPattern": "690\\d{6}|[356]\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "18001234","nationalNumberPattern": "180[02]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "912345","nationalNumberPattern": "[19]\\d{5}"}},{"id": "AE","countryCode": "971","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2,9})","leadingDigits": "60|8","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[236]|[479][2-8]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d)(\\d{5})","leadingDigits": "[479]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22345678","nationalNumberPattern": "[2-4679][2-8]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "501234567","nationalNumberPattern": "5[024-68]\\d{7}"},"tollFree": {"possibleLengths": {"national": "[5-12]"},"exampleNumber": "800123456","nationalNumberPattern": "400\\d{6}|800\\d{2,9}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900234567","nationalNumberPattern": "900[02]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "700012345","nationalNumberPattern": "700[05]\\d{5}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "600212345","nationalNumberPattern": "600[25]\\d{5}"}},{"id": "AF","countryCode": "93","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[1-9]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-7]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[2-7]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "234567890","nationalNumberPattern": "(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "701234567","nationalNumberPattern": "7\\d{8}"}},{"id": "AG","countryCode": "1","leadingDigits": "268","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([457]\\d{6})$|1","nationalPrefixTransformRule": "268$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:268|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684601234","nationalNumberPattern": "268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684641234","nationalNumberPattern": "268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}"},"pager": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684061234","nationalNumberPattern": "26840[69]\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2684801234","nationalNumberPattern": "26848[01]\\d{4}"}},{"id": "AI","countryCode": "1","leadingDigits": "264","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2457]\\d{6})$|1","nationalPrefixTransformRule": "264$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:264|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2644612345","nationalNumberPattern": "264(?:292|4(?:6[12]|9[78]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2642351234","nationalNumberPattern": "264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}"},"pager": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2647241234","nationalNumberPattern": "264724\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "AL","countryCode": "355","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "80|9","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4[2-6]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2358][2-5]|4","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23578]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "[5-7]"},"exampleNumber": "22345678","nationalNumberPattern": "4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "672123456","nationalNumberPattern": "6(?:[78][2-9]|9\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "900123","nationalNumberPattern": "900[1-9]\\d\\d"},"sharedCost": {"possibleLengths": {"national": "6"},"exampleNumber": "808123","nationalNumberPattern": "808[1-9]\\d\\d"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70021234","nationalNumberPattern": "700[2-9]\\d{4}"}},{"id": "AM","countryCode": "374","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[89]0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2|3[12]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "1|47","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-9]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[1-489]\\d|55|60|77)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "5,6"},"exampleNumber": "10123456","nationalNumberPattern": "(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "77123456","nationalNumberPattern": "(?:33|4[1349]|55|77|88|9[13-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[016]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "80[1-4]\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "60271234","nationalNumberPattern": "60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}"}},{"id": "AO","countryCode": "244","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[29]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[29]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "923123456","nationalNumberPattern": "9[1-59]\\d{7}"}},{"id": "AR","countryCode": "54","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "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)?","nationalPrefixTransformRule": "9$1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})","leadingDigits": "0|1(?:0[0-35-7]|1[02-5]|2[015]|3[47]|4[478])|911","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "[1-9]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[1-8]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2-$3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1","format": "$1 $2-$3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[68]","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[23]","format": "$1 $2-$3"},{"pattern": "(\\d)(\\d{4})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$2 15-$3-$4","intlFormat": "$1 $2 $3-$4"},{"pattern": "(\\d)(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "91","format": "$2 15-$3-$4","intlFormat": "$1 $2 $3-$4"},{"pattern": "(\\d{3})(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2-$3"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$2 15-$3-$4","intlFormat": "$1 $2 $3-$4"}]},"generalDesc": {"nationalNumberPattern": "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "810\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "[6-8]"},"exampleNumber": "1123456789","nationalNumberPattern": "3888[013-9]\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6])))\\d{6}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"},"mobile": {"possibleLengths": {"national": "10,11","localOnly": "[6-8]"},"exampleNumber": "91123456789","nationalNumberPattern": "93(?:7(?:1[15]|81)[46]|8(?:(?:21|4[16]|69|9[12])[46]|88[013-9]))\\d{5}|9(?:29(?:54|66)|3(?:7(?:55|77)|865))[2-8]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:284|3(?:02|23)|657|920)|3(?:4(?:8[27]|92)|541|878))[2-7]\\d{5}|9(?:2(?:(?:26|62)2|320|477|9(?:42|83))|3(?:329|4(?:[47]6|62|89)|564))[2-6]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[235][4-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|[17][2-6]|3[4-6]|[58][3-6]))))\\d{6}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"},"tollFree": {"possibleLengths": {"national": "10,11"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7,8}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "6001234567","nationalNumberPattern": "60[04579]\\d{7}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "8101234567","nationalNumberPattern": "810\\d{7}"}},{"id": "AS","countryCode": "1","leadingDigits": "684","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([267]\\d{6})$|1","nationalPrefixTransformRule": "684$1","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|684|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6846221234","nationalNumberPattern": "6846(?:22|33|44|55|77|88|9[19])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6847331234","nationalNumberPattern": "684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "AT","countryCode": "43","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "14","format": "$1","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3,12})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:11|[2-9])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "517","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5[079]","format": "$1 $2"},{"pattern": "(\\d{6})","leadingDigits": "[18]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3,9})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-467]|5[2-6]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[4-13]","localOnly": "3"},"exampleNumber": "1234567890","nationalNumberPattern": "1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}"},"mobile": {"possibleLengths": {"national": "[7-13]"},"exampleNumber": "664123456","nationalNumberPattern": "6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}"},"tollFree": {"possibleLengths": {"national": "[9-13]"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,10}"},"premiumRate": {"possibleLengths": {"national": "[9-13]"},"exampleNumber": "900123456","nationalNumberPattern": "(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}"},"sharedCost": {"possibleLengths": {"national": "[8-13]"},"exampleNumber": "810123456","nationalNumberPattern": "8(?:10|2[018])\\d{6,10}|828\\d{5}"},"voip": {"possibleLengths": {"national": "[5-13]"},"exampleNumber": "780123456","nationalNumberPattern": "5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}"}},{"id": "AU","mainCountryForCode": "true","countryCode": "61","preferredInternationalPrefix": "0011","internationalPrefix": "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","nationalPrefix": "0","nationalPrefixForParsing": "(183[12])|0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "16","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "13","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "19","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": ["180","1802"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{3,4})","leadingDigits": "19","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "16","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "14|4","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","carrierCodeFormattingRule": "$CC ($FG)","leadingDigits": "[2378]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1(?:30|[89])","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})(\\d{4})","leadingDigits": "130","format": "$1 $2 $3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}"},"noInternationalDialling": {"possibleLengths": {"national": "[6-8],10,12"},"nationalNumberPattern": "1(?:3(?:00\\d{5}|45[0-4])|802)\\d{3}|1[38]00\\d{6}|13\\d{4}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "212345678","nationalNumberPattern": "(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|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]))|(?: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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}"},"pager": {"possibleLengths": {"national": "[5-9]"},"exampleNumber": "1631234","nationalNumberPattern": "163\\d{2,6}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "180(?:0\\d{3}|2)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "190[0-26]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "6,8,10,12"},"exampleNumber": "1300123456","nationalNumberPattern": "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "147101234","nationalNumberPattern": "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}"}},{"id": "AW","countryCode": "297","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[25-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[25-79]\\d\\d|800)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "5212345","nationalNumberPattern": "5(?:2\\d|8[1-9])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "5601234","nationalNumberPattern": "(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9001234","nationalNumberPattern": "900\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "5011234","nationalNumberPattern": "(?:28\\d|501)\\d{4}"}},{"id": "AX","countryCode": "358","leadingDigits": "18","preferredInternationalPrefix": "00","internationalPrefix": "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "181234567","nationalNumberPattern": "18[1-8]\\d{3,6}"},"mobile": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "412345678","nationalNumberPattern": "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "8,9"},"exampleNumber": "600123456","nationalNumberPattern": "[67]00\\d{5,6}"},"uan": {"possibleLengths": {"national": "[5-12]"},"exampleNumber": "10112345","nationalNumberPattern": "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"}},{"id": "AZ","countryCode": "994","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[1-9]","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "90","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "123123456","nationalNumberPattern": "(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "401234567","nationalNumberPattern": "36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "881234567","nationalNumberPattern": "88\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900200123","nationalNumberPattern": "900200\\d{3}"}},{"id": "BA","countryCode": "387","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[2-9]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6[1-3]|[7-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-5]|6[56]","format": "$1 $2-$3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "30212345","nationalNumberPattern": "(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "61123456","nationalNumberPattern": "6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "8[08]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "9[0246]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "82123456","nationalNumberPattern": "8[12]\\d{6}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "70341234","nationalNumberPattern": "703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}"}},{"id": "BB","countryCode": "1","leadingDigits": "246","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "246$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:246|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2464123456","nationalNumberPattern": "246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2462501234","nationalNumberPattern": "246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "9002123456","nationalNumberPattern": "(?:246976|900[2-9]\\d\\d)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2463101234","nationalNumberPattern": "24631\\d{5}"},"uan": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2464301234","nationalNumberPattern": "246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}"}},{"id": "BD","countryCode": "880","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "31[5-8]|[459]1","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{3,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "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]","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{3,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-9]|22","format": "$1-$2"},{"pattern": "(\\d)(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1-$2"}]},"generalDesc": {"nationalNumberPattern": "[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}"},"fixedLine": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "27111234","nationalNumberPattern": "(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:222|[45]\\d)\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "1812345678","nationalNumberPattern": "(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "80[03]\\d{7}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "9604123456","nationalNumberPattern": "96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\d{6}"}},{"id": "BE","countryCode": "32","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:80|9)0","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[239]|4[23]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[15-8]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "4\\d{8}|[1-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "470123456","nationalNumberPattern": "4[5-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800[1-9]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "(?:70(?:2[0-57]|3[04-7]|44|6[4-69]|7[0579])|90\\d\\d)\\d{4}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "78791234","nationalNumberPattern": "7879\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "78102345","nationalNumberPattern": "78(?:0[57]|1[014-8]|2[25]|3[15-8]|48|[56]0|7[06-8]|9\\d)\\d{4}"}},{"id": "BF","countryCode": "226","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[025-7]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[025-7]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20491234","nationalNumberPattern": "2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70123456","nationalNumberPattern": "(?:0[1-35-7]|5[0-8]|[67]\\d)\\d{6}"}},{"id": "BG","countryCode": "359","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{6})","leadingDigits": "1","format": "$1","intlFormat": "NA"},{"pattern": "(\\d)(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "43[1-6]|70[1-9]","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:70|8)0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "43[1-7]|7","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[48]|9[08]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}"},"fixedLine": {"possibleLengths": {"national": "[6-8]","localOnly": "4,5"},"exampleNumber": "2123456","nationalNumberPattern": "2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "43012345","nationalNumberPattern": "(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}"},"tollFree": {"possibleLengths": {"national": "8,12"},"exampleNumber": "80012345","nationalNumberPattern": "(?:00800\\d\\d|800)\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "90\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "700\\d{5}"}},{"id": "BH","countryCode": "973","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[13679]|8[02-4679]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[136-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "17001234","nationalNumberPattern": "(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "36001234","nationalNumberPattern": "(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "8[02369]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "(?:87|9[0-8])\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "84123456","nationalNumberPattern": "84\\d{6}"}},{"id": "BI","countryCode": "257","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2367]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:[267]\\d|31)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22201234","nationalNumberPattern": "(?:22|31)\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "79561234","nationalNumberPattern": "(?:29|[67][125-9])\\d{6}"}},{"id": "BJ","countryCode": "229","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[24-689]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[24-689]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20211234","nationalNumberPattern": "2(?:02|1[037]|2[45]|3[68]|4\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "90011234","nationalNumberPattern": "(?:4[0-356]|[56]\\d|9[013-9])\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "85751234","nationalNumberPattern": "857[58]\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "81123456","nationalNumberPattern": "81\\d{6}"}},{"id": "BL","countryCode": "590","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "590\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "590271234","nationalNumberPattern": "590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "690001234","nationalNumberPattern": "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:395|76[018])\\d|475[0-5])\\d{4}"}},{"id": "BM","countryCode": "1","leadingDigits": "441","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "441$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:441|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4414123456","nationalNumberPattern": "441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4413701234","nationalNumberPattern": "441(?:[2378]\\d|5[0-39]|92)\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "BN","countryCode": "673","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-578]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[2-578]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2345678","nationalNumberPattern": "22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7123456","nationalNumberPattern": "(?:22[89]|[78]\\d\\d)\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "5345678","nationalNumberPattern": "5[34]\\d{5}"}},{"id": "BO","countryCode": "591","internationalPrefix": "00(?:1\\d)?","nationalPrefix": "0","nationalPrefixForParsing": "0(1\\d)?","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{7})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "[23]|4[46]","format": "$1 $2"},{"pattern": "(\\d{8})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "[67]","format": "$1"},{"pattern": "(\\d{3})(\\d{2})(\\d{4})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-467]\\d\\d|8001)\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "8001[07]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22123456","nationalNumberPattern": "(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "71234567","nationalNumberPattern": "[67]\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800171234","nationalNumberPattern": "8001[07]\\d{4}"}},{"id": "BQ","countryCode": "599","leadingDigits": "[347]","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "(?:[34]1|7\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "7151234","nationalNumberPattern": "(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3181234","nationalNumberPattern": "(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}"}},{"id": "BR","countryCode": "55","internationalPrefix": "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","nationalPrefix": "0","nationalPrefixForParsing": "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","nationalPrefixTransformRule": "$2","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3,6})","leadingDigits": "1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"],"format": "$1-$2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["[2-57]","[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"],"format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{2,3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:[358]|90)0","format": "$1 $2 $3"},{"pattern": "(\\d{5})(\\d{4})","leadingDigits": "9","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($FG)","carrierCodeFormattingRule": "$NP $CC ($FG)","leadingDigits": "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]","format": "$1 $2-$3"},{"pattern": "(\\d{2})(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "($FG)","carrierCodeFormattingRule": "$NP $CC ($FG)","leadingDigits": "[16][1-9]|[2-57-9]","format": "$1 $2-$3"}]},"generalDesc": {"nationalNumberPattern": "(?:[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}"},"noInternationalDialling": {"possibleLengths": {"national": "[8-10]"},"nationalNumberPattern": "30(?:0\\d{5,7}|3\\d{7})|40(?:0\\d|20)\\d{4}|800\\d{6,7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "8"},"exampleNumber": "1123456789","nationalNumberPattern": "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}"},"mobile": {"possibleLengths": {"national": "10,11","localOnly": "8,9"},"exampleNumber": "11961234567","nationalNumberPattern": "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,7}"},"premiumRate": {"possibleLengths": {"national": "9,10"},"exampleNumber": "300123456","nationalNumberPattern": "300\\d{6}|[59]00\\d{6,7}"},"sharedCost": {"possibleLengths": {"national": "8,10"},"exampleNumber": "40041234","nationalNumberPattern": "(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370))\\d{4}|300\\d{5}"}},{"id": "BS","countryCode": "1","leadingDigits": "242","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([3-8]\\d{6})$|1","nationalPrefixTransformRule": "242$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:242|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2423456789","nationalNumberPattern": "242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2423591234","nationalNumberPattern": "242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8002123456","nationalNumberPattern": "242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "2422250123","nationalNumberPattern": "242225\\d{4}"}},{"id": "BT","countryCode": "975","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[2-7]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3})(\\d{3})","leadingDigits": "[2-68]|7[246]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "1[67]|7","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[17]\\d{7}|[2-8]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7","localOnly": "6"},"exampleNumber": "2345678","nationalNumberPattern": "(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "17123456","nationalNumberPattern": "(?:1[67]|77)\\d{6}"}},{"id": "BW","countryCode": "267","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "90","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[24-6]|3[15-9]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[37]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2401234","nationalNumberPattern": "(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "71123456","nationalNumberPattern": "(?:321|7(?:[1-7]\\d|8[0-4]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "0800012345","nationalNumberPattern": "(?:0800|800\\d)\\d{6}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9012345","nationalNumberPattern": "90\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "79101234","nationalNumberPattern": "79(?:1(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}"}},{"id": "BY","countryCode": "375","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","nationalPrefixForParsing": "0|80?","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "800","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,4})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "800","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP 0$FG","leadingDigits": ["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])"],"format": "$1 $2-$3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP 0$FG","leadingDigits": "1(?:[56]|7[467])|2[1-3]","format": "$1 $2-$3-$4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP 0$FG","leadingDigits": "[1-4]","format": "$1 $2-$3-$4"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[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}"},"noInternationalDialling": {"possibleLengths": {"national": "[6-11]"},"nationalNumberPattern": "800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "[5-7]"},"exampleNumber": "152450911","nationalNumberPattern": "(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "294911911","nationalNumberPattern": "(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "[6-11]"},"exampleNumber": "8011234567","nationalNumberPattern": "800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9021234567","nationalNumberPattern": "(?:810|902)\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "249123456","nationalNumberPattern": "249\\d{6}"}},{"id": "BZ","countryCode": "501","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-8]","format": "$1-$2"},{"pattern": "(\\d)(\\d{3})(\\d{4})(\\d{3})","leadingDigits": "0","format": "$1-$2-$3-$4"}]},"generalDesc": {"nationalNumberPattern": "(?:0800\\d|[2-8])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2221234","nationalNumberPattern": "(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "6221234","nationalNumberPattern": "6[0-35-7]\\d{5}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "08001234123","nationalNumberPattern": "0800\\d{7}"}},{"id": "CA","countryCode": "1","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[2-8]\\d|90)\\d{8}|3\\d{6}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "5062345678","nationalNumberPattern": "(?: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|73)|90[25])[2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "5062345678","nationalNumberPattern": "(?: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|73)|90[25])[2-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "6002012345","nationalNumberPattern": "600[2-9]\\d{6}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "3101234","nationalNumberPattern": "310\\d{4}"}},{"id": "CC","countryCode": "61","preferredInternationalPrefix": "0011","internationalPrefix": "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","nationalPrefix": "0","nationalPrefixForParsing": "([59]\\d{7})$|0","nationalPrefixTransformRule": "8$1","generalDesc": {"nationalNumberPattern": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "891621234","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "180(?:0\\d{3}|2)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "190[0-26]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "6,8,10,12"},"exampleNumber": "1300123456","nationalNumberPattern": "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "147101234","nationalNumberPattern": "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}"}},{"id": "CD","countryCode": "243","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "88","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-6]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[189]\\d{8}|[1-68]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,9"},"exampleNumber": "1234567","nationalNumberPattern": "12\\d{7}|[1-6]\\d{6}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "991234567","nationalNumberPattern": "88\\d{5}|(?:8[0-59]|9[017-9])\\d{7}"}},{"id": "CF","countryCode": "236","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[278]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:[27]\\d{3}|8776)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21612345","nationalNumberPattern": "2[12]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "7[024-7]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "87761234","nationalNumberPattern": "8776\\d{4}"}},{"id": "CG","countryCode": "242","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{4})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "[02]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "222\\d{6}|(?:0\\d|80)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "222[1-589]\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "061234567","nationalNumberPattern": "026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80[0-2]\\d{6}"}},{"id": "CH","countryCode": "41","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[047]|90","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-79]|81","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "8\\d{11}|[2-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "212345678","nationalNumberPattern": "(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "781234567","nationalNumberPattern": "7[35-9]\\d{7}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "740123456","nationalNumberPattern": "74[0248]\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90[016]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "840123456","nationalNumberPattern": "84[0248]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "878123456","nationalNumberPattern": "878\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "581234567","nationalNumberPattern": "5[18]\\d{7}"},"voicemail": {"possibleLengths": {"national": "12"},"exampleNumber": "860123456789","nationalNumberPattern": "860\\d{9}"}},{"id": "CI","countryCode": "225","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d)(\\d{5})","leadingDigits": "2","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[02]\\d{9}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2123456789","nationalNumberPattern": "2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "0123456789","nationalNumberPattern": "0[157]\\d{8}"}},{"id": "CK","countryCode": "682","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})","leadingDigits": "[2-578]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[2-578]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "21234","nationalNumberPattern": "(?:2\\d|3[13-7]|4[1-5])\\d{3}"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "71234","nationalNumberPattern": "[578]\\d{4}"}},{"id": "CL","countryCode": "56","internationalPrefix": "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "1(?:[03-589]|21)|[29]0|78","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "($FG)","leadingDigits": ["219","2196"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "44","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($FG)","leadingDigits": "2[1-36]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","leadingDigits": "9[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($FG)","leadingDigits": "3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","leadingDigits": "60|8","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{3})","leadingDigits": "60","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}"},"noInternationalDialling": {"possibleLengths": {"national": "10,11"},"nationalNumberPattern": "600\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "221234567","nationalNumberPattern": "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "221234567","nationalNumberPattern": "2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|3(?:2\\d\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-3])|600)|646[59])|80[1-9]\\d\\d|9(?:3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|7[1-9]\\d\\d|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2458])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9,11"},"exampleNumber": "800123456","nationalNumberPattern": "(?:123|8)00\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10,11"},"exampleNumber": "6001234567","nationalNumberPattern": "600\\d{7,8}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "441234567","nationalNumberPattern": "44\\d{7}"}},{"id": "CM","countryCode": "237","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "88","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[26]|88","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "[26]\\d{8}|88\\d{6,7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "2(?:22|33)\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "671234567","nationalNumberPattern": "(?:24[23]|6[25-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "88012345","nationalNumberPattern": "88\\d{6,7}"}},{"id": "CN","countryCode": "86","preferredInternationalPrefix": "00","internationalPrefix": "00|1(?:[12]\\d|79)\\d\\d00","nationalPrefix": "0","nationalPrefixForParsing": "(1(?:[12]\\d|79)\\d\\d)|0","availableFormats": {"numberFormat": [{"pattern": "(\\d{5,6})","leadingDigits": "10|96","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","10(?:10|9[56])|2[0-57-9](?:100|9[56])"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": ["[1-9]","1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])","1(?:0(?:[0-8]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])|6)|[3-9]"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "16[08]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["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])"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["[1-9]","1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|2(?:[0-57-9](?:[0-8]|9[0-47-9])|6)|[3-9]","1(?:0(?:[02-8]|1[1-9]|9[0-47-9])|[1-9])|26|3(?:[0268]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|8[1-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23][0-8])|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:33|85[23]9)[0-46-9]|(?:2[0-57-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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])","1(?:0[02-8]|[1-9])|2(?:[0-57-9][0-8]|6)|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:10|2[0-57-9])9[0-47-9]|(?:101|58|85[23]10)[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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "(?:4|80)0","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["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])"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "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]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{7,8})","leadingDigits": "9","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "80","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[3-578]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "1[3-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[12]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}"},"noInternationalDialling": {"possibleLengths": {"national": "[10-12]"},"nationalNumberPattern": "(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "[7-11]","localOnly": "5,6"},"exampleNumber": "1012345678","nationalNumberPattern": "(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|21(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))\\d{5}|(?:43[35]|754)\\d{7,8}|8(?:078\\d{7}|51\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\d\\d|95\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[1-9]\\d{6})|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[1-9]\\d{5})|9(?:[0-46-9]\\d{5}|5\\d{3,5}))"},"mobile": {"possibleLengths": {"national": "11"},"exampleNumber": "13123456789","nationalNumberPattern": "1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}"},"tollFree": {"possibleLengths": {"national": "10,12"},"exampleNumber": "8001234567","nationalNumberPattern": "(?:(?:10|21)8|8)00\\d{7}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "16812345","nationalNumberPattern": "16[08]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "[7-11]","localOnly": "5,6"},"exampleNumber": "4001234567","nationalNumberPattern": "10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-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[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}"}},{"id": "CO","countryCode": "57","internationalPrefix": "00(?:4(?:[14]4|56)|[579])","nationalPrefix": "0","nationalPrefixForParsing": "0(4(?:[14]4|56)|[579])?","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "($FG)","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "6","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7})","carrierCodeFormattingRule": "$NP$CC $FG","leadingDigits": "3[0-357]|91","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1-$2-$3","intlFormat": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:60\\d\\d|9101)\\d{6}|(?:1\\d|3)\\d{9}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6012345678","nationalNumberPattern": "601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|60[124-8][2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "3211234567","nationalNumberPattern": "3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|(?:3(?:24[1-9]|3(?:00|3[0-24-9]))|9101)\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "18001234567","nationalNumberPattern": "1800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "11"},"exampleNumber": "19001234567","nationalNumberPattern": "19(?:0[01]|4[78])\\d{7}"}},{"id": "CR","countryCode": "506","internationalPrefix": "00","nationalPrefixForParsing": "(19(?:0[0-2468]|1[09]|20|66|77|99))","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[2-7]|8[3-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[89]","format": "$1-$2-$3"}]},"generalDesc": {"nationalNumberPattern": "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "83123456","nationalNumberPattern": "(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "90[059]\\d{7}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "40001234","nationalNumberPattern": "(?:210[0-6]|4\\d{3}|5100)\\d{4}"}},{"id": "CU","countryCode": "53","internationalPrefix": "119","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4,6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[1-4]|[34]","format": "$1 $2"},{"pattern": "(\\d)(\\d{6,7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "7","format": "$1 $2"},{"pattern": "(\\d)(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[56]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[27]\\d{6,7}|[34]\\d{5,7}|63\\d{6}|(?:5|8\\d\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "[6-8],10","localOnly": "4,5"},"exampleNumber": "71234567","nationalNumberPattern": "(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "51234567","nationalNumberPattern": "(?:5\\d|63)\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "8071234567","nationalNumberPattern": "807\\d{7}"}},{"id": "CV","countryCode": "238","internationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[2-589]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:[2-59]\\d\\d|800)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2211234","nationalNumberPattern": "2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "9911234","nationalNumberPattern": "(?:36|5[1-389]|9\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "3401234","nationalNumberPattern": "(?:3[3-5]|4[356])\\d{5}"}},{"id": "CW","mainCountryForCode": "true","countryCode": "599","leadingDigits": "[69]","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[3467]","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{4})","leadingDigits": "9[4-8]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7,8"},"exampleNumber": "94351234","nationalNumberPattern": "9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "95181234","nationalNumberPattern": "953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}"},"pager": {"possibleLengths": {"national": "8"},"exampleNumber": "95581234","nationalNumberPattern": "955\\d{5}"},"sharedCost": {"possibleLengths": {"national": "7"},"exampleNumber": "6001234","nationalNumberPattern": "60[0-2]\\d{4}"}},{"id": "CX","countryCode": "61","preferredInternationalPrefix": "0011","internationalPrefix": "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","nationalPrefix": "0","nationalPrefixForParsing": "([59]\\d{7})$|0","nationalPrefixTransformRule": "8$1","generalDesc": {"nationalNumberPattern": "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "891641234","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "4(?:(?:79|94)[01]|83[0-389])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[016-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "180(?:0\\d{3}|2)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "190[0-26]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "6,8,10,12"},"exampleNumber": "1300123456","nationalNumberPattern": "13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "147101234","nationalNumberPattern": "14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}"}},{"id": "CY","countryCode": "357","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{6})","leadingDigits": "[257-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[279]\\d|[58]0)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22345678","nationalNumberPattern": "2[2-6]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "96123456","nationalNumberPattern": "9(?:10|[4-79]\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80001234","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[09]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "80[1-9]\\d{5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "700\\d{5}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "77123456","nationalNumberPattern": "(?:50|77)\\d{6}"}},{"id": "CZ","countryCode": "420","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[2-8]|9[015-7]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{2})","leadingDigits": "96","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "212345678","nationalNumberPattern": "(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "601123456","nationalNumberPattern": "(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "9(?:0[05689]|76)\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "811234567","nationalNumberPattern": "8[134]\\d{7}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "70[01]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "910123456","nationalNumberPattern": "9[17]0\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "972123456","nationalNumberPattern": "9(?:5\\d|7[2-4])\\d{6}"},"voicemail": {"possibleLengths": {"national": "[9-12]"},"exampleNumber": "93123456789","nationalNumberPattern": "9(?:3\\d{9}|6\\d{7,10})"}},{"id": "DE","countryCode": "49","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,13})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3[02]|40|[68]9","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3,12})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{2,11})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[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]"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "138","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{2,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,11})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "181","format": "$1 $2"},{"pattern": "(\\d{3})(\\d)(\\d{4,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:3|80)|9","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[67]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7,12})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["185","1850","18500"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "18[68]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15[0568]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15[1279]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "18","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:6[023]|7)","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15[279]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[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}"},"fixedLine": {"possibleLengths": {"national": "[5-15]","localOnly": "[2-4]"},"exampleNumber": "30123456","nationalNumberPattern": "32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}"},"mobile": {"possibleLengths": {"national": "10,11"},"exampleNumber": "15123456789","nationalNumberPattern": "15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}"},"pager": {"possibleLengths": {"national": "[4-14]"},"exampleNumber": "16412345","nationalNumberPattern": "16(?:4\\d{1,10}|[89]\\d{1,11})"},"tollFree": {"possibleLengths": {"national": "[10-15]"},"exampleNumber": "8001234567890","nationalNumberPattern": "800\\d{7,12}"},"premiumRate": {"possibleLengths": {"national": "10,11"},"exampleNumber": "9001234567","nationalNumberPattern": "(?:137[7-9]|900(?:[135]|9\\d))\\d{6}"},"sharedCost": {"possibleLengths": {"national": "[7-14]"},"exampleNumber": "18012345","nationalNumberPattern": "180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "11"},"exampleNumber": "70012345678","nationalNumberPattern": "700\\d{8}"},"uan": {"possibleLengths": {"national": "[8-14]"},"exampleNumber": "18500123456","nationalNumberPattern": "18(?:1\\d{5,11}|[2-9]\\d{8})"},"voicemail": {"possibleLengths": {"national": "12,13"},"exampleNumber": "177991234567","nationalNumberPattern": "1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}"}},{"id": "DJ","countryCode": "253","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[27]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:2\\d|77)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21360003","nationalNumberPattern": "2(?:1[2-5]|7[45])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "77831001","nationalNumberPattern": "77\\d{6}"}},{"id": "DK","countryCode": "45","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2-9]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "32123456","nationalNumberPattern": "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "32123456","nationalNumberPattern": "(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "90\\d{6}"}},{"id": "DM","countryCode": "1","leadingDigits": "767","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-7]\\d{6})$|1","nationalPrefixTransformRule": "767$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|767|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7674201234","nationalNumberPattern": "767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7672251234","nationalNumberPattern": "767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "DO","countryCode": "1","leadingDigits": "8001|8[024]9","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8092345678","nationalNumberPattern": "8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8092345678","nationalNumberPattern": "8[024]9[2-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00(?:14|[2-9]\\d)|(?:33|44|55|66|77|88)[2-9]\\d)\\d{5}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "DZ","countryCode": "213","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-4]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[5-8]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[1-4]|[5-79]\\d|80)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "12345678","nationalNumberPattern": "9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "551234567","nationalNumberPattern": "(?:5(?:4[0-29]|5\\d|6[0-2])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "808123456","nationalNumberPattern": "80[3-689]1\\d{5}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "801123456","nationalNumberPattern": "80[12]1\\d{5}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "983123456","nationalNumberPattern": "98[23]\\d{6}"}},{"id": "EC","countryCode": "593","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-7]","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2-7]","format": "$1 $2-$3","intlFormat": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3,4})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22123456","nationalNumberPattern": "[2-7][2-7]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "991234567","nationalNumberPattern": "964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "10,11"},"exampleNumber": "18001234567","nationalNumberPattern": "1800\\d{7}|1[78]00\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "28901234","nationalNumberPattern": "[2-7]890\\d{4}"}},{"id": "EE","countryCode": "372","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": ["[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"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3,4})","leadingDigits": ["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "7"},"nationalNumberPattern": "800[2-9]\\d{3}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3212345","nationalNumberPattern": "(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "51234567","nationalNumberPattern": "(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}"},"tollFree": {"possibleLengths": {"national": "7,8,10"},"exampleNumber": "80012345","nationalNumberPattern": "800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}"},"premiumRate": {"possibleLengths": {"national": "7,8"},"exampleNumber": "9001234","nationalNumberPattern": "(?:40\\d\\d|900)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "70[0-2]\\d{5}"}},{"id": "EG","countryCode": "20","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{7,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[35]|[4-6]|8[2468]|9[235-7]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "234567890","nationalNumberPattern": "13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "1001234567","nationalNumberPattern": "1[0-25]\\d{8}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "900\\d{7}"}},{"id": "EH","countryCode": "212","leadingDigits": "528[89]","internationalPrefix": "00","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "[5-8]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "528812345","nationalNumberPattern": "528[89]\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "650123456","nationalNumberPattern": "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891234567","nationalNumberPattern": "89\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "592401234","nationalNumberPattern": "592(?:4[0-2]|93)\\d{4}"}},{"id": "ER","countryCode": "291","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[178]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[178]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7","localOnly": "6"},"exampleNumber": "8370362","nationalNumberPattern": "(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7123456","nationalNumberPattern": "(?:17[1-3]|7\\d\\d)\\d{4}"}},{"id": "ES","countryCode": "34","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "905","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{6})","leadingDigits": "[79]9","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[89]00","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[5-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[5-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "810123456","nationalNumberPattern": "96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "612345678","nationalNumberPattern": "(?:590[16]00\\d|9(?:6906(?:09|10)|7390\\d\\d))\\d\\d|(?:6\\d|7[1-48])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "[89]00\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "803123456","nationalNumberPattern": "80[367]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "901123456","nationalNumberPattern": "90[12]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "70\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "511234567","nationalNumberPattern": "51\\d{7}"}},{"id": "ET","countryCode": "251","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-579]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:11|[2-579]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "111112345","nationalNumberPattern": "11667[01]\\d{3}|(?:11(?:1(?:1[124]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "911234567","nationalNumberPattern": "700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}"}},{"id": "FI","mainCountryForCode": "true","countryCode": "358","leadingDigits": "1[03-79]|[2-9]","preferredInternationalPrefix": "00","internationalPrefix": "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "75[12]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d)(\\d{4,9})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2568][1-8]|3(?:0[1-9]|[1-9])|9","format": "$1 $2"},{"pattern": "(\\d{6})","leadingDigits": "11","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]00|[368]|70[07-9]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1245]|7[135]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}"},"noInternationalDialling": {"possibleLengths": {"national": "[5-12]"},"nationalNumberPattern": "20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}"},"fixedLine": {"possibleLengths": {"national": "[5-9]"},"exampleNumber": "131234567","nationalNumberPattern": "(?:1[3-79][1-8]|[235689][1-8]\\d)\\d{2,6}"},"mobile": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "412345678","nationalNumberPattern": "4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "8,9"},"exampleNumber": "600123456","nationalNumberPattern": "[67]00\\d{5,6}"},"uan": {"possibleLengths": {"national": "[5-12]"},"exampleNumber": "10112345","nationalNumberPattern": "20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"}},{"id": "FJ","countryCode": "679","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|52)","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[235-9]|45","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "45\\d{5}|(?:0800\\d|[235-9])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3212345","nationalNumberPattern": "603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7012345","nationalNumberPattern": "(?:[279]\\d|45|5[01568]|8[034679])\\d{5}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "08001234567","nationalNumberPattern": "0800\\d{7}"}},{"id": "FK","countryCode": "500","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "[2-7]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "31234","nationalNumberPattern": "[2-47]\\d{4}"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "51234","nationalNumberPattern": "[56]\\d{4}"}},{"id": "FM","countryCode": "691","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[389]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[39]\\d\\d|820)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3201234","nationalNumberPattern": "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3501234","nationalNumberPattern": "31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}"}},{"id": "FO","countryCode": "298","internationalPrefix": "00","nationalPrefixForParsing": "(10(?:01|[12]0|88))","availableFormats": {"numberFormat": {"pattern": "(\\d{6})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[2-9]","format": "$1"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "201234","nationalNumberPattern": "(?:20|[34]\\d|8[19])\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "211234","nationalNumberPattern": "(?:[27][1-9]|5\\d|9[16])\\d{4}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "802123","nationalNumberPattern": "80[257-9]\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "901123","nationalNumberPattern": "90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d"},"voip": {"possibleLengths": {"national": "6"},"exampleNumber": "601234","nationalNumberPattern": "(?:6[0-36]|88)\\d{4}"}},{"id": "FR","countryCode": "33","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "10","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "8","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-79]","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "123456789","nationalNumberPattern": "59[1-9]\\d{6}|(?:[1-3]\\d|4[1-9]|5[0-8])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "612345678","nationalNumberPattern": "(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80[0-5]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891123456","nationalNumberPattern": "836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "884012345","nationalNumberPattern": "8(?:1[01]|2[0156]|4[02]|84)\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "9\\d{8}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "806123456","nationalNumberPattern": "80[6-9]\\d{6}"}},{"id": "GA","countryCode": "241","internationalPrefix": "00","nationalPrefixForParsing": "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","nationalPrefixTransformRule": "$1","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "0$FG","leadingDigits": "[2-7]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "0","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "0$FG","leadingDigits": "11|[67]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "01441234","nationalNumberPattern": "[01]1\\d{6}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "06031234","nationalNumberPattern": "(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}"}},{"id": "GB","mainCountryForCode": "true","countryCode": "44","internationalPrefix": "00","nationalPrefix": "0","preferredExtnPrefix": " x","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["800","8001","80011","800111","8001111"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["845","8454","84546","845464"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "800","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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)"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1(?:[2-69][02-9]|[78])","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1389]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9,10","localOnly": "[4-8]"},"exampleNumber": "1212345678","nationalNumberPattern": "(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0235])|4(?:[0-5]\\d\\d|69[7-9]|70[0-79])|(?:(?: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-2]))|(?: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}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7400123456","nationalNumberPattern": "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}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "7640123456","nationalNumberPattern": "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}"},"tollFree": {"possibleLengths": {"national": "7,9,10"},"exampleNumber": "8001234567","nationalNumberPattern": "80[08]\\d{7}|800\\d{6}|8001111"},"premiumRate": {"possibleLengths": {"national": "7,10"},"exampleNumber": "9012345678","nationalNumberPattern": "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "(?:3[0347]|55)\\d{8}"}},{"id": "GD","countryCode": "1","leadingDigits": "473","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "473$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:473|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4732691234","nationalNumberPattern": "473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "4734031234","nationalNumberPattern": "473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "GE","countryCode": "995","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "70","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "32","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[57]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[348]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[3-57]\\d\\d|800)\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "70[67]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "6,7"},"exampleNumber": "322123456","nationalNumberPattern": "(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "555123456","nationalNumberPattern": "5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|(?:5(?:00(?:0\\d|11|22|33|44|5[05]|77|88|99)|1(?:1(?:00|[124]\\d|3[01])|4\\d\\d)|(?:44|68)\\d\\d|5(?:[0157-9]\\d\\d|200)|7(?:[0147-9]\\d\\d|5(?:00|[57]5))|8(?:0(?:[01]\\d|2[0-4])|58[89]|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}|5(?:0(?:070|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "706123456","nationalNumberPattern": "70[67]\\d{6}"}},{"id": "GF","countryCode": "594","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[56]|9[47]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[56]94\\d{6}|(?:80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "594101234","nationalNumberPattern": "594(?:[02-49]\\d|1[0-4]|5[6-9]|6[0-3]|80)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "694201234","nationalNumberPattern": "694(?:[0-249]\\d|3[0-8])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:396|76\\d)\\d|476[0-5])\\d{4}"}},{"id": "GG","countryCode": "44","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([25-9]\\d{5})$|0","nationalPrefixTransformRule": "1481$1","generalDesc": {"nationalNumberPattern": "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "1481256789","nationalNumberPattern": "1481[25-9]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7781123456","nationalNumberPattern": "7(?:(?:781|839)\\d|911[17])\\d{5}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "7640123456","nationalNumberPattern": "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}"},"tollFree": {"possibleLengths": {"national": "7,9,10"},"exampleNumber": "8001234567","nationalNumberPattern": "80[08]\\d{7}|800\\d{6}|8001111"},"premiumRate": {"possibleLengths": {"national": "7,10"},"exampleNumber": "9012345678","nationalNumberPattern": "(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "(?:3[0347]|55)\\d{8}"}},{"id": "GH","countryCode": "233","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[237]|8[0-2]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[235]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[235]\\d{3}|800)\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "800\\d{5}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "302345678","nationalNumberPattern": "3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "231234567","nationalNumberPattern": "(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"}},{"id": "GI","countryCode": "350","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{5})","leadingDigits": "2","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[25]\\d|60)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20012345","nationalNumberPattern": "2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "57123456","nationalNumberPattern": "5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}"}},{"id": "GL","countryCode": "299","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "19|[2-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:19|[2-689]\\d|70)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "321000","nationalNumberPattern": "(?:19|3[1-7]|[68][1-9]|70|9\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "221234","nationalNumberPattern": "[245]\\d{5}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "801234","nationalNumberPattern": "80\\d{4}"},"voip": {"possibleLengths": {"national": "6"},"exampleNumber": "381234","nationalNumberPattern": "3[89]\\d{4}"}},{"id": "GM","countryCode": "220","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "5661234","nationalNumberPattern": "(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3012345","nationalNumberPattern": "(?:[23679]\\d|5[0-489])\\d{5}"}},{"id": "GN","countryCode": "224","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "3","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[67]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "722\\d{6}|(?:3|6\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "30241234","nationalNumberPattern": "3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "601123456","nationalNumberPattern": "6[0-356]\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "722123456","nationalNumberPattern": "722\\d{6}"}},{"id": "GP","mainCountryForCode": "true","countryCode": "590","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[569]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "590\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "590201234","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "690001234","nationalNumberPattern": "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:395|76[018])\\d|475[0-5])\\d{4}"}},{"id": "GQ","countryCode": "240","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[235]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{6})","leadingDigits": "[89]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "333091234","nationalNumberPattern": "33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "222123456","nationalNumberPattern": "(?:222|55\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80\\d[1-9]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90\\d[1-9]\\d{5}"}},{"id": "GR","countryCode": "30","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4})(\\d{4})","leadingDigits": "21|7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{6})","leadingDigits": "2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "[2689]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{5})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2123456789","nationalNumberPattern": "2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "6912345678","nationalNumberPattern": "68[57-9]\\d{7}|(?:69|94)\\d{8}"},"tollFree": {"possibleLengths": {"national": "[10-12]"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7,9}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9091234567","nationalNumberPattern": "90[19]\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "8011234567","nationalNumberPattern": "8(?:0[16]|12|[27]5|50)\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5005000123","nationalNumberPattern": "5005000\\d{3}"}},{"id": "GT","countryCode": "502","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2-7]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1\\d{3}|[2-7])\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22456789","nationalNumberPattern": "[267][2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "51234567","nationalNumberPattern": "[3-5]\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "18001112222","nationalNumberPattern": "18[01]\\d{8}"},"premiumRate": {"possibleLengths": {"national": "11"},"exampleNumber": "19001112222","nationalNumberPattern": "19\\d{9}"}},{"id": "GU","countryCode": "1","leadingDigits": "671","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([3-9]\\d{6})$|1","nationalPrefixTransformRule": "671$1","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|671|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6713001234","nationalNumberPattern": "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6713001234","nationalNumberPattern": "671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-46-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "GW","countryCode": "245","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "40","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[49]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[49]\\d{8}|4\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "443201234","nationalNumberPattern": "443\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "955012345","nationalNumberPattern": "9(?:5\\d|6[569]|77)\\d{6}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "4012345","nationalNumberPattern": "40\\d{5}"}},{"id": "GY","countryCode": "592","internationalPrefix": "001","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "9008\\d{3}|(?:[2-467]\\d\\d|510|862)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2201234","nationalNumberPattern": "(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "6091234","nationalNumberPattern": "(?:510|6\\d\\d|7(?:0\\d|1[0-8]|25|49))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "2891234","nationalNumberPattern": "(?:289|862)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9008123","nationalNumberPattern": "9008\\d{3}"}},{"id": "HK","countryCode": "852","preferredInternationalPrefix": "00","internationalPrefix": "00(?:30|5[09]|[126-9]?)","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2,5})","leadingDigits": ["900","9003"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2-7]|8[1-4]|9(?:0[1-9]|[1-8])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:[45][0-8]|6[01]|9\\d))|58(?:0[1-9]|1[2-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "51234567","nationalNumberPattern": "(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}"},"pager": {"possibleLengths": {"national": "8"},"exampleNumber": "71123456","nationalNumberPattern": "7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "[5-8],11"},"exampleNumber": "90012345678","nationalNumberPattern": "900(?:[0-24-9]\\d{7}|3\\d{1,4})"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "81123456","nationalNumberPattern": "8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "30161234","nationalNumberPattern": "30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}"}},{"id": "HN","countryCode": "504","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[237-9]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "8\\d{10}|[237-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "11"},"nationalNumberPattern": "8002\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-6]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "91234567","nationalNumberPattern": "[37-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "80021234567","nationalNumberPattern": "8002\\d{7}"}},{"id": "HR","countryCode": "385","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6[01]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[67]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-5]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "12345678","nationalNumberPattern": "1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "921234567","nationalNumberPattern": "9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|77|9[67])))\\d{4}|98\\d{6}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "800123456","nationalNumberPattern": "80[01]\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "[6-8]"},"exampleNumber": "611234","nationalNumberPattern": "6[01459]\\d{6}|6[01]\\d{4,5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "74123456","nationalNumberPattern": "7[45]\\d{6}"},"uan": {"possibleLengths": {"national": "8,9"},"exampleNumber": "62123456","nationalNumberPattern": "62\\d{6,7}|72\\d{6}"}},{"id": "HT","countryCode": "509","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "[2-589]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:[2-489]\\d|55)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22453300","nationalNumberPattern": "2(?:2\\d|5[1-5]|81|9[149])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "34101234","nationalNumberPattern": "(?:[34]\\d|55)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "8\\d{7}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "98901234","nationalNumberPattern": "9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}"}},{"id": "HU","countryCode": "36","internationalPrefix": "00","nationalPrefix": "06","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[2-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[235-7]\\d{8}|[1-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8,9"},"nationalNumberPattern": "(?:[48]0\\d|680[29])\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "12345678","nationalNumberPattern": "(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "201234567","nationalNumberPattern": "(?:[257]0|3[01])\\d{7}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "80123456","nationalNumberPattern": "(?:[48]0\\d|680[29])\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "9[01]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "211234567","nationalNumberPattern": "21\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "381234567","nationalNumberPattern": "38\\d{7}"}},{"id": "ID","countryCode": "62","internationalPrefix": "00[89]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","leadingDigits": "15","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{5,9})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[124]|[36]1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "800","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,8})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2-79]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-35-9]","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{6,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "804","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "80","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{4})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "001","format": "$1 $2 $3 $4","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "10,12,13"},"nationalNumberPattern": "001803\\d{6,7}|(?:007803\\d|8071)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "[7-11]","localOnly": "5,6"},"exampleNumber": "218350123","nationalNumberPattern": "2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}"},"mobile": {"possibleLengths": {"national": "[9-12]"},"exampleNumber": "812345678","nationalNumberPattern": "8[1-35-9]\\d{7,10}"},"tollFree": {"possibleLengths": {"national": "[8-13]"},"exampleNumber": "8001234567","nationalNumberPattern": "00[17]803\\d{7}|(?:177\\d|800)\\d{5,7}|001803\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "8091234567","nationalNumberPattern": "809\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "8041234567","nationalNumberPattern": "804\\d{7}"},"uan": {"possibleLengths": {"national": "7,10"},"exampleNumber": "8071123456","nationalNumberPattern": "(?:1500|8071\\d{3})\\d{3}"}},{"id": "IE","countryCode": "353","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[24-9]|47|58|6[237-9]|9[35-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[45]0","format": "$1 $2"},{"pattern": "(\\d)(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2569]|4[1-69]|7[14]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "70","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "81","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[78]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "4","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "18[59]0\\d{6}"},"fixedLine": {"possibleLengths": {"national": "[7-10]","localOnly": "5,6"},"exampleNumber": "2212345","nationalNumberPattern": "(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "850123456","nationalNumberPattern": "8(?:22|[35-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1800123456","nationalNumberPattern": "1800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1520123456","nationalNumberPattern": "15(?:1[2-8]|[2-8]0|9[089])\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "1850123456","nationalNumberPattern": "18[59]0\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "700\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "761234567","nationalNumberPattern": "76\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "818123456","nationalNumberPattern": "818\\d{6}"},"voicemail": {"possibleLengths": {"national": "10"},"exampleNumber": "8551234567","nationalNumberPattern": "88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}"}},{"id": "IL","countryCode": "972","internationalPrefix": "0(?:0|1[2-9])","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{3})","leadingDigits": "125","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{2})(\\d{2})","leadingDigits": "121","format": "$1-$2-$3"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-489]","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[57]","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "12","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{6})","leadingDigits": "159","format": "$1-$2"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "1[7-9]","format": "$1-$2-$3-$4"},{"pattern": "(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","leadingDigits": "15","format": "$1-$2 $3-$4"}]},"generalDesc": {"nationalNumberPattern": "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "1700\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8,11,12","localOnly": "7"},"exampleNumber": "21234567","nationalNumberPattern": "153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "502345678","nationalNumberPattern": "55410\\d{4}|5(?:(?:[02][02-9]|[149][2-9]|[36]\\d|8[3-7])\\d|5(?:01|2[2-9]|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "1800123456","nationalNumberPattern": "1(?:255|80[019]\\d{3})\\d{3}"},"premiumRate": {"possibleLengths": {"national": "8,10"},"exampleNumber": "1919123456","nationalNumberPattern": "1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "1700123456","nationalNumberPattern": "1700\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "771234567","nationalNumberPattern": "7(?:38(?:0\\d|5[09]|88)|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "1599123456","nationalNumberPattern": "1599\\d{6}"},"voicemail": {"possibleLengths": {"national": "11,12"},"exampleNumber": "15112340000","nationalNumberPattern": "151\\d{8,9}"}},{"id": "IM","countryCode": "44","leadingDigits": "74576|(?:16|7[56])24","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([25-8]\\d{5})$|0","nationalPrefixTransformRule": "1624$1","generalDesc": {"nationalNumberPattern": "1624\\d{6}|(?:[3578]\\d|90)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "1624756789","nationalNumberPattern": "1624(?:230|[5-8]\\d\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7924123456","nationalNumberPattern": "76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8081624567","nationalNumberPattern": "808162\\d{4}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9016247890","nationalNumberPattern": "8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}"}},{"id": "IN","countryCode": "91","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{7})","leadingDigits": "575","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{8})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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)"],"format": "$1"},{"pattern": "(\\d{4})(\\d{4,5})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["180","1800"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "140","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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])"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2 $3"},{"pattern": "(\\d{5})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[6-9]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{2,4})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["1(?:6|8[06])","1(?:6|8[06]0)"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})(\\d{3})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "18","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}"},"noInternationalDialling": {"possibleLengths": {"national": "[8-13]"},"nationalNumberPattern": "1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "[6-8]"},"exampleNumber": "7410410123","nationalNumberPattern": "2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "8123456789","nationalNumberPattern": "(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|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]|881))[0189]\\d{5}"},"tollFree": {"possibleLengths": {"national": "[8-13]"},"exampleNumber": "1800123456","nationalNumberPattern": "000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))"},"premiumRate": {"possibleLengths": {"national": "13"},"exampleNumber": "1861123456789","nationalNumberPattern": "186[12]\\d{9}"},"sharedCost": {"possibleLengths": {"national": "11"},"exampleNumber": "18603451234","nationalNumberPattern": "1860\\d{7}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "1409305260","nationalNumberPattern": "140\\d{7}"}},{"id": "IO","countryCode": "246","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "3","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "3\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3709100","nationalNumberPattern": "37\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3801234","nationalNumberPattern": "38\\d{5}"}},{"id": "IQ","countryCode": "964","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-6]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "12345678","nationalNumberPattern": "1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7912345678","nationalNumberPattern": "7[3-9]\\d{8}"}},{"id": "IR","countryCode": "98","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "96","format": "$1"},{"pattern": "(\\d{2})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-8]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}"},"noInternationalDialling": {"possibleLengths": {"national": "4,5,10"},"nationalNumberPattern": "9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))"},"fixedLine": {"possibleLengths": {"national": "6,7,10","localOnly": "4,5,8"},"exampleNumber": "2123456789","nationalNumberPattern": "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9123456789","nationalNumberPattern": "9(?:(?:0(?:[0-35]\\d|4[4-6])|(?:[13]\\d|2[0-3])\\d)\\d|9(?:[0-46]\\d\\d|5[15]0|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}"},"uan": {"possibleLengths": {"national": "4,5"},"exampleNumber": "9601","nationalNumberPattern": "96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])"}},{"id": "IS","countryCode": "354","preferredInternationalPrefix": "00","internationalPrefix": "00|1(?:0(?:01|[12]0)|100)","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[4-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "3","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:38\\d|[4-9])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "4101234","nationalNumberPattern": "(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "6111234","nationalNumberPattern": "(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "80[0-8]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9001234","nationalNumberPattern": "90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "4921234","nationalNumberPattern": "49[0-24-79]\\d{4}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "8091234","nationalNumberPattern": "809\\d{4}"},"voicemail": {"possibleLengths": {"national": "7"},"exampleNumber": "6891234","nationalNumberPattern": "(?:689|8(?:7[18]|80)|95[48])\\d{4}"}},{"id": "IT","mainCountryForCode": "true","countryCode": "39","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4,5})","leadingDigits": ["1(?:0|9[246])","1(?:0|9(?:2[2-9]|[46]))"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{6})","leadingDigits": "1(?:1|92)","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4,6})","leadingDigits": "0[26]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3,6})","leadingDigits": ["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]))"],"format": "$1 $2"},{"pattern": "(\\d{4})(\\d{2,6})","leadingDigits": "0(?:[13-579][2-46-8]|8[236-8])","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "894","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","leadingDigits": "0[26]|5","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","leadingDigits": "1(?:44|[679])|[378]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3,4})(\\d{4})","leadingDigits": "0[13-57-9][0159]|14","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{5})","leadingDigits": "0[26]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4,5})","leadingDigits": "3","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "848\\d{6}"},"fixedLine": {"possibleLengths": {"national": "[6-11]"},"exampleNumber": "0212345678","nationalNumberPattern": "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}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "3123456789","nationalNumberPattern": "3[1-9]\\d{8}|3[2-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "6,9"},"exampleNumber": "800123456","nationalNumberPattern": "80(?:0\\d{3}|3)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6,[8-10]"},"exampleNumber": "899123456","nationalNumberPattern": "(?: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}"},"sharedCost": {"possibleLengths": {"national": "6,9"},"exampleNumber": "848123456","nationalNumberPattern": "84(?:[08]\\d{3}|[17])\\d{3}"},"personalNumber": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1781234567","nationalNumberPattern": "1(?:78\\d|99)\\d{6}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "55\\d{8}"},"voicemail": {"possibleLengths": {"national": "11,12"},"exampleNumber": "33101234501","nationalNumberPattern": "3[2-8]\\d{9,10}"}},{"id": "JE","countryCode": "44","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([0-24-8]\\d{5})$|0","nationalPrefixTransformRule": "1534$1","generalDesc": {"nationalNumberPattern": "1534\\d{6}|(?:[3578]\\d|90)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "1534456789","nationalNumberPattern": "1534[0-24-8]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7797712345","nationalNumberPattern": "7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "7640123456","nationalNumberPattern": "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}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8007354567","nationalNumberPattern": "80(?:07(?:35|81)|8901)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9018105678","nationalNumberPattern": "(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "7015115678","nationalNumberPattern": "701511\\d{4}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5612345678","nationalNumberPattern": "56\\d{8}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "(?: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}"}},{"id": "JM","countryCode": "1","leadingDigits": "658|876","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|658|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8765230123","nationalNumberPattern": "8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8762101234","nationalNumberPattern": "(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "JO","countryCode": "962","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[2356]|87","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "70","format": "$1 $2"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "62001234","nationalNumberPattern": "87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "790123456","nationalNumberPattern": "7(?:[78][0-25-9]|9\\d)\\d{6}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "746612345","nationalNumberPattern": "74(?:66|77)\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "9\\d{7}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "85012345","nationalNumberPattern": "85\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "70\\d{7}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "88101234","nationalNumberPattern": "8(?:10|8\\d)\\d{5}"}},{"id": "JP","countryCode": "81","internationalPrefix": "010","nationalPrefix": "0","nationalPrefixForParsing": "(000[259]\\d{6})$|(?:(?:003768)0?)|0","nationalPrefixTransformRule": "$1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": ["007","0077","00777","00777[01]"],"format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:12|57|99)0","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d)(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "60","format": "$1-$2-$3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[14]|[289][2-9]|5[3-9]|7[2-4679]","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{2})(\\d{3,4})","leadingDigits": ["007","0077"],"format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{2})(\\d{4})","leadingDigits": "008","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "800","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[257-9]","format": "$1-$2-$3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3,4})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})(\\d{4,5})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{5})(\\d{5,6})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{6})(\\d{6,7})","leadingDigits": "0","format": "$1-$2-$3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "[8-17]"},"nationalNumberPattern": "00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66|78)\\d{6,13}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "312345678","nationalNumberPattern": "(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9012345678","nationalNumberPattern": "[7-9]0[1-9]\\d{7}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "2012345678","nationalNumberPattern": "20\\d{8}"},"tollFree": {"possibleLengths": {"national": "[8-17]"},"exampleNumber": "120123456","nationalNumberPattern": "00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "990123456","nationalNumberPattern": "990\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "601234567","nationalNumberPattern": "60\\d{7}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5012345678","nationalNumberPattern": "50[1-9]\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "570123456","nationalNumberPattern": "570\\d{6}"}},{"id": "KE","countryCode": "254","internationalPrefix": "000","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[24-6]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[17]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}"},"fixedLine": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "202012345","nationalNumberPattern": "(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712123456","nationalNumberPattern": "(?:1(?:0[0-6]|1[0-5]|2[014]|30)|7\\d\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800223456","nationalNumberPattern": "800[2-8]\\d{5,6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900223456","nationalNumberPattern": "900[02-9]\\d{5}"}},{"id": "KG","countryCode": "996","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3(?:1[346]|[24-79])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[235-79]|88","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d)(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "8\\d{9}|[235-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "5,6"},"exampleNumber": "312123456","nationalNumberPattern": "312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "700123456","nationalNumberPattern": "312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|9(?:12|9[05-9]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,7}"}},{"id": "KH","countryCode": "855","internationalPrefix": "00[14-9]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-9]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{9}|[1-9]\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "23756789","nationalNumberPattern": "23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "91234567","nationalNumberPattern": "(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1800123456","nationalNumberPattern": "1800(?:1\\d|2[019])\\d{4}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "1900(?:1\\d|2[09])\\d{4}"}},{"id": "KI","countryCode": "686","internationalPrefix": "00","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "5,8"},"exampleNumber": "31234","nationalNumberPattern": "(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "72001234","nationalNumberPattern": "(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "30010000","nationalNumberPattern": "30(?:0[01]\\d\\d|12(?:11|20))\\d\\d"}},{"id": "KM","countryCode": "269","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[3478]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[3478]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7","localOnly": "4"},"exampleNumber": "7712345","nationalNumberPattern": "7[4-7]\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "3212345","nationalNumberPattern": "[34]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "8\\d{6}"}},{"id": "KN","countryCode": "1","leadingDigits": "869","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-7]\\d{6})$|1","nationalPrefixTransformRule": "869$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8692361234","nationalNumberPattern": "869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8697652917","nationalNumberPattern": "869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "KP","countryCode": "850","internationalPrefix": "00|99","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-7]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "85\\d{6}|(?:19\\d|[2-7])\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8,10","localOnly": "6,7"},"exampleNumber": "21234567","nationalNumberPattern": "(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "1921234567","nationalNumberPattern": "19[1-3]\\d{7}"}},{"id": "KR","countryCode": "82","internationalPrefix": "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","nationalPrefix": "0","nationalPrefixForParsing": "0(8(?:[1-46-8]|5\\d\\d))?","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["1[016-9]1","1[016-9]11","1[016-9]114"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "(?:3[1-3]|[46][1-4]|5[1-5])1","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "1","format": "$1-$2"},{"pattern": "(\\d)(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "2","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "60|8","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "[1346]|5[1-5]","format": "$1-$2-$3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "[57]","format": "$1-$2-$3"},{"pattern": "(\\d{5})(\\d{3})(\\d{3})","leadingDigits": ["003","0030"],"format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$NP$CC-$FG","leadingDigits": "5","format": "$1-$2-$3"},{"pattern": "(\\d{5})(\\d{3,4})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{5})(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "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}"},"noInternationalDialling": {"possibleLengths": {"national": "[11-14]"},"nationalNumberPattern": "00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})"},"fixedLine": {"possibleLengths": {"national": "5,6,[8-10]","localOnly": "3,4,7"},"exampleNumber": "22123456","nationalNumberPattern": "(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1020000000","nationalNumberPattern": "1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[0-46-9]|[16-9]\\d|2[013-9])\\d{6,7}"},"pager": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1523456789","nationalNumberPattern": "15\\d{7,8}"},"tollFree": {"possibleLengths": {"national": "9,[11-14]"},"exampleNumber": "801234567","nationalNumberPattern": "00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|80)\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "602345678","nationalNumberPattern": "60[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10,11"},"exampleNumber": "5012345678","nationalNumberPattern": "50\\d{8,9}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "7012345678","nationalNumberPattern": "70\\d{8}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "15441234","nationalNumberPattern": "1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[168]|88)|8(?:00|33|55|77|99))\\d{4}"}},{"id": "KW","countryCode": "965","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{3,4})","leadingDigits": "[169]|2(?:[235]|4[1-35-9])|52","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","leadingDigits": "[245]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "18\\d{5}|(?:[2569]\\d|41)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22345678","nationalNumberPattern": "2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "50012345","nationalNumberPattern": "(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|66)|222|3[36]3|444|7(?:0[013-9]|[67]\\d)|888|9(?:[069]\\d|3[039]))|9(?:(?:0[09]|[4679]\\d|8[057-9])\\d|1(?:1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "1801234","nationalNumberPattern": "18\\d{5}"}},{"id": "KY","countryCode": "1","leadingDigits": "345","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "345$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:345|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3452221234","nationalNumberPattern": "345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|[48]8)|9(?:14|4[035-9]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3453231234","nationalNumberPattern": "345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "3458491234","nationalNumberPattern": "345849\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "(?:345976|900[2-9]\\d\\d)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "KZ","countryCode": "7","leadingDigits": "33|7","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","generalDesc": {"nationalNumberPattern": "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}"},"noInternationalDialling": {"possibleLengths": {"national": "10"},"nationalNumberPattern": "751\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "[5-7]"},"exampleNumber": "7123456789","nationalNumberPattern": "(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "7710009998","nationalNumberPattern": "7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}"},"tollFree": {"possibleLengths": {"national": "10,14"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:00|108\\d{3})\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "8091234567","nationalNumberPattern": "809\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "8081234567","nationalNumberPattern": "808\\d{7}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "7511234567","nationalNumberPattern": "751\\d{7}"}},{"id": "LA","countryCode": "856","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2[13]|3[14]|[4-8]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "30[013-9]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "21212862","nationalNumberPattern": "(?:2[13]|[35-7][14]|41|8[1468])\\d{6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "2023123456","nationalNumberPattern": "(?:20(?:[2359]\\d|7[6-8]|88)|302\\d)\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "301234567","nationalNumberPattern": "30[013-9]\\d{6}"}},{"id": "LB","countryCode": "961","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[27-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[27-9]\\d{7}|[13-9]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,8"},"exampleNumber": "1123456","nationalNumberPattern": "7(?:62|8[0-7]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "71123456","nationalNumberPattern": "793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "9[01]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{6}"}},{"id": "LC","countryCode": "1","leadingDigits": "758","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-8]\\d{6})$|1","nationalPrefixTransformRule": "758$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|758|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7584305678","nationalNumberPattern": "758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7582845678","nationalNumberPattern": "758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "LI","countryCode": "423","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "(1001)|0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": ["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "69","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "6","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2345678","nationalNumberPattern": "(?:2(?:01|1[27]|2[02]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "660234567","nationalNumberPattern": "(?:6(?:(?:4[5-9]|5[0-4])\\d|6(?:[0245]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7,9"},"exampleNumber": "8002222","nationalNumberPattern": "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9002222","nationalNumberPattern": "90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "8702812","nationalNumberPattern": "870(?:28|87)\\d\\d"},"voicemail": {"possibleLengths": {"national": "9"},"exampleNumber": "697861234","nationalNumberPattern": "697(?:42|56|[78]\\d)\\d{4}"}},{"id": "LK","countryCode": "94","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-689]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "112345678","nationalNumberPattern": "(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "7(?:[0-25-8]\\d|4[0-4])\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "197312345","nationalNumberPattern": "1973\\d{5}"}},{"id": "LR","countryCode": "231","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[4-6]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23578]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[25]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "2\\d{7}"},"mobile": {"possibleLengths": {"national": "7,9"},"exampleNumber": "770123456","nationalNumberPattern": "(?:(?:(?:22|33)0|555|(?:77|88)\\d)\\d|4[67])\\d{5}|[56]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "332021234","nationalNumberPattern": "332(?:02|[34]\\d)\\d{4}"}},{"id": "LS","countryCode": "266","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2568]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[256]\\d\\d|800)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "2\\d{7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "50123456","nationalNumberPattern": "[56]\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80021234","nationalNumberPattern": "800[256]\\d{4}"}},{"id": "LT","countryCode": "370","internationalPrefix": "00","nationalPrefix": "8","nationalPrefixForParsing": "[08]","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP-$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "52[0-7]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP $FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[7-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP-$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "37|4(?:[15]|6[1-8])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP-$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[3-6]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[3469]\\d|52|[78]0)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "31234567","nationalNumberPattern": "(?:3[1478]|4[124-6]|52)\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "61234567","nationalNumberPattern": "6\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80[02]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "9(?:0[0239]|10)\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80812345","nationalNumberPattern": "808\\d{5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "70[05]\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "[89]01\\d{5}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "70712345","nationalNumberPattern": "70[67]\\d{5}"}},{"id": "LU","countryCode": "352","internationalPrefix": "00","nationalPrefixForParsing": "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "20[2-689]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:[0367]|4[3-8])","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "80[01]|90[015]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "20","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "6","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "2(?:[0367]|4[3-8])","format": "$1 $2 $3 $4 $5"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}"},"fixedLine": {"possibleLengths": {"national": "[4-11]"},"exampleNumber": "27123456","nationalNumberPattern": "(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "628123456","nationalNumberPattern": "6(?:[269][18]|5[1568]|7[189]|81)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[015]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "801\\d{5}"},"voip": {"possibleLengths": {"national": "[4-10]"},"exampleNumber": "20201234","nationalNumberPattern": "20(?:1\\d{5}|[2-689]\\d{1,7})"}},{"id": "LV","countryCode": "371","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[269]|8[01]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:[268]\\d|90)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "63123456","nationalNumberPattern": "6\\d{7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "23(?:23[0-57-9]|33[0238])\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[024-9]|3[0-24-9]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "90\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81123456","nationalNumberPattern": "81\\d{6}"}},{"id": "LY","countryCode": "218","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-9]","format": "$1-$2"}},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "212345678","nationalNumberPattern": "(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "9[1-6]\\d{7}"}},{"id": "MA","mainCountryForCode": "true","countryCode": "212","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["5(?:29|38)","5(?:29[1289]|389)","529(?:1[1-46-9]|2[013-8]|90)|5(?:298|389)[0-46-9]"],"format": "$1-$2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5[45]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"format": "$1-$2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[5-7]","format": "$1-$2"}]},"generalDesc": {"nationalNumberPattern": "[5-8]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "520123456","nationalNumberPattern": "5293[01]\\d{4}|5(?:2(?:[0-25-7]\\d|3[1-578]|4[02-46-8]|8[0235-7]|9[0-289])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[0189]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "650123456","nationalNumberPattern": "(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[017]\\d|2[0-2]|6[0-8]|8[0-3]))\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891234567","nationalNumberPattern": "89\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "592401234","nationalNumberPattern": "592(?:4[0-2]|93)\\d{4}"}},{"id": "MC","countryCode": "377","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{2})","leadingDigits": "87","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[389]","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "(?:[3489]|6\\d)\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "8[07]0\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "99123456","nationalNumberPattern": "(?:870|9[2-47-9]\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "8,9"},"exampleNumber": "612345678","nationalNumberPattern": "4(?:[46]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "90123456","nationalNumberPattern": "(?:800|90\\d)\\d{5}"}},{"id": "MD","countryCode": "373","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "22|3","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[25-7]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[235-7]\\d|[89]0)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22212345","nationalNumberPattern": "(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "62112345","nationalNumberPattern": "562\\d{5}|(?:6\\d|7[16-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "90[056]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80812345","nationalNumberPattern": "808\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "30123456","nationalNumberPattern": "3[08]\\d{6}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "80312345","nationalNumberPattern": "803\\d{5}"}},{"id": "ME","countryCode": "382","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "30234567","nationalNumberPattern": "(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "67622901","nationalNumberPattern": "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "80080002","nationalNumberPattern": "80(?:[0-2578]|9\\d)\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "94515151","nationalNumberPattern": "9(?:4[1568]|5[178])\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "78108780","nationalNumberPattern": "78[1-49]\\d{5}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "77273012","nationalNumberPattern": "77[1-9]\\d{5}"}},{"id": "MF","countryCode": "590","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "590\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "590271234","nationalNumberPattern": "590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "690001234","nationalNumberPattern": "69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976012345","nationalNumberPattern": "9(?:(?:395|76[018])\\d|475[0-5])\\d{4}"}},{"id": "MG","countryCode": "261","internationalPrefix": "00","nationalPrefix": "0","nationalPrefixForParsing": "([24-9]\\d{6})$|0","nationalPrefixTransformRule": "20$1","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[23]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "202123456","nationalNumberPattern": "2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "321234567","nationalNumberPattern": "3[2-47-9]\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "221234567","nationalNumberPattern": "22\\d{7}"}},{"id": "MH","countryCode": "692","internationalPrefix": "011","nationalPrefix": "1","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-6]","format": "$1-$2"}},"generalDesc": {"nationalNumberPattern": "329\\d{4}|(?:[256]\\d|45)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2471234","nationalNumberPattern": "(?:247|45[78]|528|625)\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "2351234","nationalNumberPattern": "(?:(?:23|54)5|329|45[356])\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "6351234","nationalNumberPattern": "635\\d{4}"}},{"id": "MK","countryCode": "389","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2|34[47]|4(?:[37]7|5[47]|64)","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[347]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[58]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[2-578]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "22012345","nationalNumberPattern": "(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "72345678","nationalNumberPattern": "7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-48]\\d|7[01578])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "50012345","nationalNumberPattern": "5\\d{7}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80123456","nationalNumberPattern": "8(?:0[1-9]|[1-9]\\d)\\d{5}"}},{"id": "ML","countryCode": "223","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": ["67[057-9]|74[045]","67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[24-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[24-9]\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "80\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20212345","nationalNumberPattern": "2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "65012345","nationalNumberPattern": "2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[2-49])\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80\\d{6}"}},{"id": "MM","countryCode": "95","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "16|2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[4-7]|8[1-35]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{4,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:2[0-4]|[35-9]|4[137-9])","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "92","format": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}"},"fixedLine": {"possibleLengths": {"national": "[6-9]","localOnly": "5"},"exampleNumber": "1234567","nationalNumberPattern": "(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[29]|62|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|[26]2|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:(?:3\\d|8[01459])\\d|4[67]0)))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}"},"mobile": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "92123456","nationalNumberPattern": "(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8008001234","nationalNumberPattern": "80080(?:0[1-9]|2\\d)\\d{3}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "13331234","nationalNumberPattern": "1333\\d{4}|[12]468\\d{4}"}},{"id": "MN","countryCode": "976","internationalPrefix": "001","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]1","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[5-9]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]2[1-3]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[12]\\d{7,9}|[5-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "[8-10]","localOnly": "[4-6]"},"exampleNumber": "53123456","nationalNumberPattern": "[12]2[1-3]\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\d\\d|7(?:0(?:[0-5]\\d|7[078]|80)|128))\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "88123456","nationalNumberPattern": "(?:83[01]|92[039])\\d{5}|(?:5[05]|6[069]|8[015689]|9[013-9])\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "75123456","nationalNumberPattern": "712[0-79]\\d{4}|7(?:1[013-9]|[25-9]\\d)\\d{5}"}},{"id": "MO","countryCode": "853","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{3})","leadingDigits": "0","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[268]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "0800\\d{3}|(?:28|[68]\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "28212345","nationalNumberPattern": "(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "66123456","nationalNumberPattern": "6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "0800501","nationalNumberPattern": "0800\\d{3}"}},{"id": "MP","countryCode": "1","leadingDigits": "670","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "670$1","generalDesc": {"nationalNumberPattern": "[58]\\d{9}|(?:67|90)0\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6702345678","nationalNumberPattern": "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6702345678","nationalNumberPattern": "670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "MQ","countryCode": "596","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[569]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "596\\d{6}|(?:69|80|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "596301234","nationalNumberPattern": "596(?:[03-7]\\d|10|2[7-9]|8[0-39]|9[04-9])\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "696201234","nationalNumberPattern": "69(?:6(?:[0-46-9]\\d|5[0-6])|727)\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "976612345","nationalNumberPattern": "9(?:397[0-2]|477[0-5]|76(?:6\\d|7[0-367]))\\d{4}"}},{"id": "MR","countryCode": "222","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2-48]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:[2-4]\\d\\d|800)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "35123456","nationalNumberPattern": "(?:25[08]|35\\d|45[1-7])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "22123456","nationalNumberPattern": "[2-4][0-46-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"}},{"id": "MS","countryCode": "1","leadingDigits": "664","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([34]\\d{6})$|1","nationalPrefixTransformRule": "664$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|664|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6644912345","nationalNumberPattern": "6644(?:1[0-3]|91)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6644923456","nationalNumberPattern": "664(?:3(?:49|9[1-6])|49[2-6])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "MT","countryCode": "356","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[2357-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21001234","nationalNumberPattern": "20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "96961234","nationalNumberPattern": "(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}"},"pager": {"possibleLengths": {"national": "8"},"exampleNumber": "71171234","nationalNumberPattern": "7117\\d{4}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80071234","nationalNumberPattern": "800(?:02|[3467]\\d)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "50037123","nationalNumberPattern": "5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "35501234","nationalNumberPattern": "3550\\d{4}"},"uan": {"possibleLengths": {"national": "8"},"exampleNumber": "50112345","nationalNumberPattern": "501\\d{5}"}},{"id": "MU","countryCode": "230","preferredInternationalPrefix": "020","internationalPrefix": "0(?:0|[24-7]0|3[03])","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-46]|8[013]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[57]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{5})","leadingDigits": "8","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,8"},"exampleNumber": "54480123","nationalNumberPattern": "(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-8])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "52512345","nationalNumberPattern": "5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-2]|3[013]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "7,10"},"exampleNumber": "8001234","nationalNumberPattern": "802\\d{7}|80[0-2]\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "3012345","nationalNumberPattern": "30\\d{5}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "3201234","nationalNumberPattern": "3(?:20|9\\d)\\d{4}"}},{"id": "MV","countryCode": "960","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|19)","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[34679]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "6701234","nationalNumberPattern": "(?:3(?:0[0-3]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7712345","nationalNumberPattern": "(?:46[46]|[79]\\d\\d)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "900\\d{7}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "4001234","nationalNumberPattern": "4(?:0[01]|50)\\d{4}"}},{"id": "MW","countryCode": "265","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[137-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,9"},"exampleNumber": "1234567","nationalNumberPattern": "(?:1[2-9]|2[12]\\d\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "991234567","nationalNumberPattern": "111\\d{6}|(?:31|77|[89][89])\\d{7}"}},{"id": "MX","countryCode": "52","preferredInternationalPrefix": "00","internationalPrefix": "0[09]","nationalPrefix": "01","nationalPrefixForParsing": "0(?:[12]|4[45])|1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","leadingDigits": "53","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "33|5[56]|81","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{2})(\\d{4})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1(?:33|5[56]|81)","format": "$2 $3 $4"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1","format": "$2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "1(?:(?:[27]2|44|99)[1-9]|65[0-689])\\d{7}|(?:1(?:[01]\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-9]|8[1-79]|9[1-8])|[2-9]\\d)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7,8"},"exampleNumber": "2001234567","nationalNumberPattern": "657[12]\\d{6}|(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}"},"mobile": {"possibleLengths": {"national": "10,11","localOnly": "7,8"},"exampleNumber": "12221234567","nationalNumberPattern": "657[12]\\d{6}|(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[25-7][1-9]|3[1-8]|4\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|6[1-9]|7[12]|8[1-8]|9\\d))\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:00|88)\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "900\\d{7}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "3001234567","nationalNumberPattern": "300\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5001234567","nationalNumberPattern": "500\\d{7}"}},{"id": "MY","countryCode": "60","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[4-79]","format": "$1-$2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"format": "$1-$2 $3"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3","format": "$1-$2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{2})(\\d{4})","leadingDigits": "1(?:[367]|80)","format": "$1-$2-$3-$4"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "15","format": "$1-$2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1-$2 $3"}]},"generalDesc": {"nationalNumberPattern": "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "323856789","nationalNumberPattern": "(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "123456789","nationalNumberPattern": "1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-7]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1300123456","nationalNumberPattern": "1[378]00\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1600123456","nationalNumberPattern": "1600\\d{6}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "1546012345","nationalNumberPattern": "15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}"}},{"id": "MZ","countryCode": "258","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","leadingDigits": "2|8[2-79]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:2|8\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21123456","nationalNumberPattern": "2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "821234567","nationalNumberPattern": "8[2-79]\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"}},{"id": "NA","countryCode": "264","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "88","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "87","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[68]\\d{7,8}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "61221234","nationalNumberPattern": "64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "811234567","nationalNumberPattern": "(?:60|8[1245])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "870123456","nationalNumberPattern": "8701\\d{5}"},"voip": {"possibleLengths": {"national": "8,9"},"exampleNumber": "88612345","nationalNumberPattern": "8(?:3\\d\\d|86)\\d{5}"}},{"id": "NC","countryCode": "687","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})","leadingDigits": "5[6-8]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[02-57-9]","format": "$1.$2.$3"}]},"generalDesc": {"nationalNumberPattern": "(?:050|[2-57-9]\\d\\d)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "201234","nationalNumberPattern": "(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "751234","nationalNumberPattern": "(?:5[0-4]|[79]\\d|8[0-79])\\d{4}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "050012","nationalNumberPattern": "050\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6"},"exampleNumber": "366711","nationalNumberPattern": "36\\d{4}"}},{"id": "NE","countryCode": "227","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "08","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[089]|2[013]|7[047]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[027-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "20201234","nationalNumberPattern": "2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "93123456","nationalNumberPattern": "(?:23|7[047]|[89]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "08123456","nationalNumberPattern": "08\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "09123456","nationalNumberPattern": "09\\d{6}"}},{"id": "NF","countryCode": "672","internationalPrefix": "00","nationalPrefixForParsing": "([0-258]\\d{4})$","nationalPrefixTransformRule": "3$1","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "1[0-3]","format": "$1 $2"},{"pattern": "(\\d)(\\d{5})","leadingDigits": "[13]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[13]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6","localOnly": "5"},"exampleNumber": "106609","nationalNumberPattern": "(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "6","localOnly": "5"},"exampleNumber": "381234","nationalNumberPattern": "(?:14|3[58])\\d{4}"}},{"id": "NG","countryCode": "234","internationalPrefix": "009","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "78","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12]|9(?:0[3-9]|[1-9])","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-7]|8[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[7-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[78]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{5})(\\d{5,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[78]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}"},"fixedLine": {"possibleLengths": {"national": "7,8","localOnly": "5,6"},"exampleNumber": "18040123","nationalNumberPattern": "(?:(?:[1-356]\\d|4[02-8]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|7(?:0(?:[013-689]\\d|2[0-24-9])\\d{3,4}|[1-79]\\d{6})|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[1-3578])\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "8021234567","nationalNumberPattern": "(?:702[0-24-9]|819[01])\\d{6}|(?:70[13-689]|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-356]))\\d{7}"},"tollFree": {"possibleLengths": {"national": "[10-14]"},"exampleNumber": "80017591759","nationalNumberPattern": "800\\d{7,11}"},"uan": {"possibleLengths": {"national": "[10-14]"},"exampleNumber": "7001234567","nationalNumberPattern": "700\\d{7,11}"}},{"id": "NI","countryCode": "505","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[125-8]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:1800|[25-8]\\d{3})\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "2\\d{7}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "81234567","nationalNumberPattern": "(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "18001234","nationalNumberPattern": "1800\\d{4}"}},{"id": "NL","countryCode": "31","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})","leadingDigits": "1[238]|[34]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{3,4})","leadingDigits": "14","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{6})","leadingDigits": "1","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{4,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]0","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "66","format": "$1 $2"},{"pattern": "(\\d)(\\d{8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "6","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[16-8]|2[259]|3[124]|4[17-9]|5[124679]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-578]|91","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[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}"},"noInternationalDialling": {"possibleLengths": {"national": "5,6"},"nationalNumberPattern": "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "101234567","nationalNumberPattern": "(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "9,11"},"exampleNumber": "612345678","nationalNumberPattern": "(?:6[1-58]|970\\d)\\d{7}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "662345678","nationalNumberPattern": "66\\d{7}"},"tollFree": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4,7}"},"premiumRate": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "9061234","nationalNumberPattern": "90[069]\\d{4,7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "851234567","nationalNumberPattern": "(?:85|91)\\d{7}"},"uan": {"possibleLengths": {"national": "5,6,9"},"exampleNumber": "14020","nationalNumberPattern": "140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d"}},{"id": "NO","mainCountryForCode": "true","countryCode": "47","leadingDigits": "[02-689]|7[0-8]","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{3})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2-79]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:0|[2-9]\\d{3})\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "40612345","nationalNumberPattern": "(?:4[015-8]|9\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80[01]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "82012345","nationalNumberPattern": "82[09]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81021234","nationalNumberPattern": "810(?:0[0-6]|[2-8]\\d)\\d{3}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "88012345","nationalNumberPattern": "880\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "85012345","nationalNumberPattern": "85[0-5]\\d{5}"},"uan": {"possibleLengths": {"national": "5,8"},"exampleNumber": "02000","nationalNumberPattern": "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"},"voicemail": {"possibleLengths": {"national": "8"},"exampleNumber": "81212345","nationalNumberPattern": "81[23]\\d{5}"}},{"id": "NP","countryCode": "977","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[2-6]","format": "$1-$2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[01]|[2-8]|9(?:[1-59]|[67][2-6])","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{7})","leadingDigits": "9","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{2})(\\d{5})","leadingDigits": "1","format": "$1-$2-$3","intlFormat": "NA"}]},"generalDesc": {"nationalNumberPattern": "(?:1\\d|9)\\d{9}|[1-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "14567890","nationalNumberPattern": "(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9841234567","nationalNumberPattern": "9(?:6[0-3]|7[024-6]|8[0-24-68])\\d{7}"},"tollFree": {"possibleLengths": {"national": "11"},"exampleNumber": "16600101234","nationalNumberPattern": "1(?:66001|800\\d\\d)\\d{5}"}},{"id": "NR","countryCode": "674","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[4-68]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:444|(?:55|8\\d)\\d|666)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "4441234","nationalNumberPattern": "444\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "5551234","nationalNumberPattern": "(?:55[3-9]|666|8\\d\\d)\\d{4}"}},{"id": "NU","countryCode": "683","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[47]|888\\d)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "4"},"exampleNumber": "7012","nationalNumberPattern": "[47]\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "8884012","nationalNumberPattern": "888[4-9]\\d{3}"}},{"id": "NZ","countryCode": "64","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|161)","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,8})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-79]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["50[036-8]|8|90","50(?:[0367]|88)|8|90"],"format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "24|[346]|7[2-57-9]|9[2-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2(?:10|74)|[589]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1|2[028]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2(?:[169]|7[0-35-9])|7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[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}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "32345678","nationalNumberPattern": "24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}"},"mobile": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "211234567","nationalNumberPattern": "2(?:[0-27-9]\\d|6)\\d{6,7}|2(?:1\\d|75)\\d{5}"},"tollFree": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "800123456","nationalNumberPattern": "508\\d{6,7}|80\\d{6,8}"},"premiumRate": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "900123456","nationalNumberPattern": "(?:1[13-57-9]\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "70\\d{7}"},"uan": {"possibleLengths": {"national": "[5-10]"},"exampleNumber": "83012378","nationalNumberPattern": "8(?:1[16-9]|22|3\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\d{2,7}"}},{"id": "OM","countryCode": "968","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4,6})","leadingDigits": "[58]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","leadingDigits": "2","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[179]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "23123456","nationalNumberPattern": "2[1-6]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "92123456","nationalNumberPattern": "1505\\d{4}|(?:7(?:[1289]\\d|6[89]|7[0-5])|9(?:0[1-9]|[1-9]\\d))\\d{5}"},"tollFree": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "80071234","nationalNumberPattern": "8007\\d{4,5}|(?:500|800[05])\\d{4}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "900\\d{5}"}},{"id": "PA","countryCode": "507","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[1-57-9]","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[68]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2001234","nationalNumberPattern": "(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}"},"mobile": {"possibleLengths": {"national": "7,8"},"exampleNumber": "61234567","nationalNumberPattern": "(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "7,8,10,11"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4,5}|(?:00800|800\\d)\\d{6}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "8601234","nationalNumberPattern": "(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}"}},{"id": "PE","countryCode": "51","preferredInternationalPrefix": "00","internationalPrefix": "00|19(?:1[124]|77|90)00","nationalPrefix": "0","preferredExtnPrefix": " Anexo ","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "80","format": "$1 $2"},{"pattern": "(\\d)(\\d{7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[4-8]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[14-8]|9\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6,7"},"exampleNumber": "11234567","nationalNumberPattern": "(?:(?:4[34]|5[14])[0-8]\\d|7(?:173|3[0-8]\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "9\\d{8}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "80512345","nationalNumberPattern": "805\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "80112345","nationalNumberPattern": "801\\d{5}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "80212345","nationalNumberPattern": "80[24]\\d{5}"}},{"id": "PF","countryCode": "689","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "44","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "4|8[7-9]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "4\\d{5}(?:\\d{2})?|8\\d{7,8}"},"noInternationalDialling": {"possibleLengths": {"national": "6"},"nationalNumberPattern": "44\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "40412345","nationalNumberPattern": "4(?:0[4-689]|9[4-68])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "87123456","nationalNumberPattern": "8[7-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "49901234","nationalNumberPattern": "499\\d{5}"},"uan": {"possibleLengths": {"national": "6"},"exampleNumber": "440123","nationalNumberPattern": "44\\d{4}"}},{"id": "PG","countryCode": "675","preferredInternationalPrefix": "00","internationalPrefix": "00|140[1-3]","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "18|[2-69]|85","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[78]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "3123456","nationalNumberPattern": "(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70123456","nationalNumberPattern": "(?:7\\d|8[128])\\d{6}"},"pager": {"possibleLengths": {"national": "7"},"exampleNumber": "2700123","nationalNumberPattern": "27[01]\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "1801234","nationalNumberPattern": "180\\d{4}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "2751234","nationalNumberPattern": "2(?:0[0-57]|7[568])\\d{4}"}},{"id": "PH","countryCode": "63","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4,6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["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]))"],"format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"format": "$1 $2"},{"pattern": "(\\d)(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[3-7]|8[2-8]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}"},"fixedLine": {"possibleLengths": {"national": "6,[8-10]","localOnly": "4,5,7"},"exampleNumber": "232345678","nationalNumberPattern": "(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9051234567","nationalNumberPattern": "(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}"},"tollFree": {"possibleLengths": {"national": "[11-13]"},"exampleNumber": "180012345678","nationalNumberPattern": "1800\\d{7,9}"}},{"id": "PK","countryCode": "92","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{2,7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]0","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{5})","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{6,7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["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]"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7,8})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "58","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "3","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[24-9]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "9,10","localOnly": "[5-8]"},"exampleNumber": "2123456789","nationalNumberPattern": "(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?: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]))[2-9]\\d{5,6}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "3012345678","nationalNumberPattern": "3(?:[0-24]\\d|3[0-79]|55|64)\\d{7}"},"tollFree": {"possibleLengths": {"national": "8,11"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{5}(?:\\d{3})?"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90012345","nationalNumberPattern": "900\\d{5}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "122044444","nationalNumberPattern": "122\\d{6}"},"uan": {"possibleLengths": {"national": "11,12"},"exampleNumber": "21111825888","nationalNumberPattern": "(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}"}},{"id": "PL","countryCode": "48","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","leadingDigits": "19","format": "$1"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "11|20|64","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{3})","leadingDigits": ["(?: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"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2,3})","leadingDigits": "64","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "1[2-8]|[2-7]|8[1-79]|9[145]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7,9"},"exampleNumber": "123456789","nationalNumberPattern": "47\\d{7}|(?: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])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "512345678","nationalNumberPattern": "21(?:1(?:[145]\\d|3[1-5])|2\\d\\d)\\d{4}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}"},"pager": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "641234567","nationalNumberPattern": "64\\d{4,7}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6,7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "70[01346-8]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "801\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "391234567","nationalNumberPattern": "39\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "804123456","nationalNumberPattern": "804\\d{6}"}},{"id": "PM","countryCode": "508","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[45]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[45]\\d{5}|(?:708|80\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "430123","nationalNumberPattern": "(?:4[1-35-7]|5[01])\\d{4}"},"mobile": {"possibleLengths": {"national": "6,9"},"exampleNumber": "551234","nationalNumberPattern": "(?:4[02-4]|5[056]|708[45][0-5])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"}},{"id": "PR","countryCode": "1","leadingDigits": "787|939","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[589]\\d\\d|787)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7872345678","nationalNumberPattern": "(?:787|939)[2-9]\\d{6}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7872345678","nationalNumberPattern": "(?:787|939)[2-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "PS","countryCode": "970","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2489]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[2489]2\\d{6}|(?:1\\d|5)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "22234567","nationalNumberPattern": "(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "599123456","nationalNumberPattern": "5[69]\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "1800123456","nationalNumberPattern": "1800\\d{6}"},"sharedCost": {"possibleLengths": {"national": "10"},"exampleNumber": "1700123456","nationalNumberPattern": "1700\\d{6}"}},{"id": "PT","countryCode": "351","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "2[12]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "16|[236-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "212345678","nationalNumberPattern": "2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "6(?:[06]92(?:30|9\\d)|[35]92(?:3[03]|9\\d))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "622212345","nationalNumberPattern": "6222\\d{5}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80[02]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "760123456","nationalNumberPattern": "(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "808123456","nationalNumberPattern": "80(?:8\\d|9[1579])\\d{5}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "884123456","nationalNumberPattern": "884[0-4689]\\d{5}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "301234567","nationalNumberPattern": "30\\d{7}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "707123456","nationalNumberPattern": "70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}"},"voicemail": {"possibleLengths": {"national": "9"},"exampleNumber": "600110000","nationalNumberPattern": "600\\d{6}|6[06]9233\\d{3}"}},{"id": "PW","countryCode": "680","internationalPrefix": "01[12]","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[24-8]\\d\\d|345|900)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2771234","nationalNumberPattern": "(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "6201234","nationalNumberPattern": "(?:(?:46|83)[0-5]|6[2-4689]0)\\d{4}|(?:45|77|88)\\d{5}"}},{"id": "PY","countryCode": "595","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-9]0","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4,5})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "87","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:[5-79]|8[1-6])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-8]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}"},"fixedLine": {"possibleLengths": {"national": "[7-9]","localOnly": "5,6"},"exampleNumber": "212345678","nationalNumberPattern": "(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "961456789","nationalNumberPattern": "9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}"},"tollFree": {"possibleLengths": {"national": "[9-11]"},"exampleNumber": "98000123456","nationalNumberPattern": "9800\\d{5,7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "870012345","nationalNumberPattern": "8700[0-4]\\d{4}"},"uan": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "201234567","nationalNumberPattern": "[2-9]0\\d{4,7}"}},{"id": "QA","countryCode": "974","internationalPrefix": "00","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "2[16]|8","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[3-7]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "44123456","nationalNumberPattern": "4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "33123456","nationalNumberPattern": "[35-7]\\d{7}"},"pager": {"possibleLengths": {"national": "7"},"exampleNumber": "2123456","nationalNumberPattern": "2[16]\\d{5}"},"tollFree": {"possibleLengths": {"national": "7,9,11"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}|(?:0080[01]|800)\\d{6}"}},{"id": "RE","mainCountryForCode": "true","countryCode": "262","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2689]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:26|[689]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "262161234","nationalNumberPattern": "26(?:2\\d\\d|3(?:0\\d|1[0-5]))\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "692123456","nationalNumberPattern": "69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-27]|8[0-8]|9[0-479]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "891123456","nationalNumberPattern": "89[1-37-9]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "810123456","nationalNumberPattern": "8(?:1[019]|2[0156]|84|90)\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "939901234","nationalNumberPattern": "9(?:399[0-3]|479[0-5]|76(?:2[27]|3[0-37]))\\d{4}"}},{"id": "RO","countryCode": "40","internationalPrefix": "00","nationalPrefix": "0","preferredExtnPrefix": " int ","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["2[3-6]","2[3-6]\\d9"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "219|31","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]1","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[237-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[2378]\\d|90)\\d{7}|[23]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6,9"},"exampleNumber": "211234567","nationalNumberPattern": "[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712034567","nationalNumberPattern": "7020\\d{5}|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-29])\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90[0136]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "801123456","nationalNumberPattern": "801\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "372123456","nationalNumberPattern": "(?:37\\d|80[578])\\d{6}"}},{"id": "RS","countryCode": "381","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,9})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "(?:2[389]|39)0|[7-9]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5,10})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-36]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[7-12]","localOnly": "[4-6]"},"exampleNumber": "10234567","nationalNumberPattern": "(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}"},"mobile": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "601234567","nationalNumberPattern": "6(?:[0-689]|7\\d)\\d{6,7}"},"tollFree": {"possibleLengths": {"national": "[6-12]"},"exampleNumber": "80012345","nationalNumberPattern": "800\\d{3,9}"},"premiumRate": {"possibleLengths": {"national": "[6-10]"},"exampleNumber": "90012345","nationalNumberPattern": "(?:78\\d|90[0169])\\d{3,7}"},"uan": {"possibleLengths": {"national": "[6-12]"},"exampleNumber": "700123456","nationalNumberPattern": "7[06]\\d{4,10}"}},{"id": "RU","mainCountryForCode": "true","countryCode": "7","leadingDigits": "3[04-689]|[489]","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[0-79]","format": "$1-$2-$3","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{5})(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["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]"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP ($FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[349]|8(?:[02-7]|1[1-8])","format": "$1 $2-$3-$4"},{"pattern": "(\\d{4})(\\d{4})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP ($FG)","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "8\\d{13}|[347-9]\\d{9}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3011234567","nationalNumberPattern": "(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "9123456789","nationalNumberPattern": "9\\d{9}"},"tollFree": {"possibleLengths": {"national": "10,14"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:0[04]|108\\d{3})\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "8091234567","nationalNumberPattern": "80[39]\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "8081234567","nationalNumberPattern": "808\\d{7}"}},{"id": "RW","countryCode": "250","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "0","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[7-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:06|[27]\\d\\d|[89]00)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "250123456","nationalNumberPattern": "(?:06|2[23568]\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "720123456","nationalNumberPattern": "7[237-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "900\\d{6}"}},{"id": "SA","countryCode": "966","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{5})","leadingDigits": "9","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "5","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "81","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "92\\d{7}|(?:[15]|8\\d)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "7"},"exampleNumber": "112345678","nationalNumberPattern": "1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "512345678","nationalNumberPattern": "579[01]\\d{5}|5(?:[013-689]\\d|7[0-35-8])\\d{6}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "925012345","nationalNumberPattern": "925\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "920012345","nationalNumberPattern": "920\\d{6}"},"uan": {"possibleLengths": {"national": "10"},"exampleNumber": "8110123456","nationalNumberPattern": "811\\d{7}"}},{"id": "SB","countryCode": "677","internationalPrefix": "0[01]","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{5})","leadingDigits": "7|8[4-9]|9(?:[1-8]|9[0-8])","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[1-6]|[7-9]\\d\\d)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "40123","nationalNumberPattern": "(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}"},"mobile": {"possibleLengths": {"national": "5,7"},"exampleNumber": "7421234","nationalNumberPattern": "48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "5"},"exampleNumber": "18123","nationalNumberPattern": "1[38]\\d{3}"},"voip": {"possibleLengths": {"national": "5"},"exampleNumber": "51123","nationalNumberPattern": "5[12]\\d{3}"}},{"id": "SC","countryCode": "248","preferredInternationalPrefix": "00","internationalPrefix": "010|0[0-2]","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{3})(\\d{3})","leadingDigits": "[246]|9[57]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "800\\d{4}|(?:[249]\\d|64)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "4217123","nationalNumberPattern": "4[2-46]\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "2510123","nationalNumberPattern": "2[125-8]\\d{5}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8000000","nationalNumberPattern": "800[08]\\d{3}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "6412345","nationalNumberPattern": "971\\d{4}|(?:64|95)\\d{5}"}},{"id": "SD","countryCode": "249","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[19]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[19]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "153123456","nationalNumberPattern": "1(?:5\\d|8[35-7])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "911231234","nationalNumberPattern": "(?:1[0-2]|9[0-3569])\\d{7}"}},{"id": "SE","countryCode": "46","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2,3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "20","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:00|39|44|9)","format": "$1-$2","intlFormat": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[12][136]|3[356]|4[0246]|6[03]|90[1-9]","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d)(\\d{2,3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2,3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "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])","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2,3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9(?:00|39|44)","format": "$1-$2 $3","intlFormat": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "10|7","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1-$2 $3 $4","intlFormat": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[26]","format": "$1-$2 $3 $4 $5","intlFormat": "$1 $2 $3 $4 $5"}]},"generalDesc": {"nationalNumberPattern": "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}"},"fixedLine": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "8123456","nationalNumberPattern": "(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "7[02369]\\d{7}"},"pager": {"possibleLengths": {"national": "9"},"exampleNumber": "740123456","nationalNumberPattern": "74[02-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "[6-9]"},"exampleNumber": "20123456","nationalNumberPattern": "20\\d{4,7}"},"premiumRate": {"possibleLengths": {"national": "[7-10]"},"exampleNumber": "9001234567","nationalNumberPattern": "649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "771234567","nationalNumberPattern": "77[0-7]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "751234567","nationalNumberPattern": "75[1-8]\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "102345678","nationalNumberPattern": "10[1-8]\\d{6}"},"voicemail": {"possibleLengths": {"national": "12"},"exampleNumber": "254123456789","nationalNumberPattern": "(?:25[245]|67[3-68])\\d{9}"}},{"id": "SG","countryCode": "65","internationalPrefix": "0[0-3]\\d","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{4,5})","leadingDigits": ["1[013-9]|77","1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"],"format": "$1","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[369]|8(?:0[1-8]|[1-9])","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "8","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})(\\d{3})","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{4})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "61234567","nationalNumberPattern": "662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "81234567","nationalNumberPattern": "8(?:08[01]|95[0-2])\\d{4}|(?:8(?:0[1-7]|[1-8]\\d|9[0-4])|9[0-8]\\d)\\d{5}"},"tollFree": {"possibleLengths": {"national": "10,11"},"exampleNumber": "18001234567","nationalNumberPattern": "(?:18|8)00\\d{7}"},"premiumRate": {"possibleLengths": {"national": "11"},"exampleNumber": "19001234567","nationalNumberPattern": "1900\\d{7}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "31234567","nationalNumberPattern": "(?:3[12]\\d|666)\\d{5}"},"uan": {"possibleLengths": {"national": "11"},"exampleNumber": "70001234567","nationalNumberPattern": "7000\\d{7}"}},{"id": "SH","mainCountryForCode": "true","countryCode": "290","leadingDigits": "[256]","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "(?:[256]\\d|8)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "4,5"},"exampleNumber": "22158","nationalNumberPattern": "2(?:[0-57-9]\\d|6[4-9])\\d\\d"},"mobile": {"possibleLengths": {"national": "5"},"exampleNumber": "51234","nationalNumberPattern": "[56]\\d{4}"},"voip": {"possibleLengths": {"national": "5"},"exampleNumber": "26212","nationalNumberPattern": "262\\d\\d"}},{"id": "SI","countryCode": "386","preferredInternationalPrefix": "00","internationalPrefix": "00|10(?:22|66|88|99)","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[09]|9","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "59|8","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[37][01]|4[0139]|51|6","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[1-57]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "12345678","nationalNumberPattern": "(?:[1-357][2-8]|4[24-8])\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "31234567","nationalNumberPattern": "65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}"},"tollFree": {"possibleLengths": {"national": "[6-8]"},"exampleNumber": "80123456","nationalNumberPattern": "80\\d{4,6}"},"premiumRate": {"possibleLengths": {"national": "[5-8]"},"exampleNumber": "90123456","nationalNumberPattern": "89[1-3]\\d{2,5}|90\\d{4,6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "59012345","nationalNumberPattern": "(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}"}},{"id": "SJ","countryCode": "47","leadingDigits": "79","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "0\\d{4}|(?:[489]\\d|79)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "79123456","nationalNumberPattern": "79\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "41234567","nationalNumberPattern": "(?:4[015-8]|9\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80012345","nationalNumberPattern": "80[01]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "82012345","nationalNumberPattern": "82[09]\\d{5}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81021234","nationalNumberPattern": "810(?:0[0-6]|[2-8]\\d)\\d{3}"},"personalNumber": {"possibleLengths": {"national": "8"},"exampleNumber": "88012345","nationalNumberPattern": "880\\d{5}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "85012345","nationalNumberPattern": "85[0-5]\\d{5}"},"uan": {"possibleLengths": {"national": "5,8"},"exampleNumber": "02000","nationalNumberPattern": "(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"},"voicemail": {"possibleLengths": {"national": "8"},"exampleNumber": "81212345","nationalNumberPattern": "81[23]\\d{5}"}},{"id": "SK","countryCode": "421","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "21","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{2})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[3-5][1-8]1","[3-5][1-8]1[67]"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["909","9090"],"format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d)(\\d{3})(\\d{3})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1/$2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[689]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-5]","format": "$1/$2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}"},"noInternationalDialling": {"possibleLengths": {"national": "7,9"},"nationalNumberPattern": "9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}"},"fixedLine": {"possibleLengths": {"national": "6,7,9"},"exampleNumber": "221234567","nationalNumberPattern": "(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912123456","nationalNumberPattern": "909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}"},"pager": {"possibleLengths": {"national": "7"},"exampleNumber": "9090123","nationalNumberPattern": "9090\\d{3}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "9(?:00|[78]\\d)\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "850123456","nationalNumberPattern": "8[5-9]\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "690123456","nationalNumberPattern": "6(?:02|5[0-4]|9[0-6])\\d{6}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "961234567","nationalNumberPattern": "96\\d{7}"}},{"id": "SL","countryCode": "232","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": "[236-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:[237-9]\\d|66)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "6"},"exampleNumber": "22221234","nationalNumberPattern": "22[2-4][2-9]\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "25123456","nationalNumberPattern": "(?:25|3[0-5]|66|7[2-9]|8[08]|9[09])\\d{6}"}},{"id": "SM","countryCode": "378","internationalPrefix": "00","nationalPrefixForParsing": "([89]\\d{5})$","nationalPrefixTransformRule": "0549$1","availableFormats": {"numberFormat": [{"pattern": "(\\d{6})","leadingDigits": "[89]","format": "$1","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[5-7]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{4})(\\d{6})","leadingDigits": "0","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:0549|[5-7]\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "6"},"exampleNumber": "0549886377","nationalNumberPattern": "0549(?:8[0157-9]|9\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "66661212","nationalNumberPattern": "6[16]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "71123456","nationalNumberPattern": "7[178]\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "58001110","nationalNumberPattern": "5[158]\\d{6}"}},{"id": "SN","countryCode": "221","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "8","format": "$1 $2 $3 $4"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","leadingDigits": "[379]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[378]\\d|93)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "301012345","nationalNumberPattern": "3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "701234567","nationalNumberPattern": "7(?:(?:[06-8]\\d|21|90)\\d|5(?:01|[19]0|25|[38]3|[4-7]\\d))\\d{5}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "884123456","nationalNumberPattern": "88[4689]\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "810123456","nationalNumberPattern": "81[02468]\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "933301234","nationalNumberPattern": "(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}"}},{"id": "SO","countryCode": "252","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "8[125]","format": "$1 $2"},{"pattern": "(\\d{6})","leadingDigits": "[134]","format": "$1"},{"pattern": "(\\d)(\\d{6})","leadingDigits": "[15]|2[0-79]|3[0-46-8]|4[0-7]","format": "$1 $2"},{"pattern": "(\\d)(\\d{7})","leadingDigits": "(?:2|90)4|[67]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[348]|64|79|90","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{5,7})","leadingDigits": "1|28|6[0-35-9]|77|9[2-9]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6,7"},"exampleNumber": "4012345","nationalNumberPattern": "(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}"},"mobile": {"possibleLengths": {"national": "[7-9]"},"exampleNumber": "71123456","nationalNumberPattern": "(?:(?:15|(?:3[59]|4[89]|6\\d|7[79]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}"}},{"id": "SR","countryCode": "597","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "56","format": "$1-$2-$3"},{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[2-5]","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[6-8]","format": "$1-$2"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-5]|68|[78]\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "6,7"},"exampleNumber": "211234","nationalNumberPattern": "(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7412345","nationalNumberPattern": "(?:7[124-7]|8[124-9])\\d{5}"},"voip": {"possibleLengths": {"national": "6"},"exampleNumber": "561234","nationalNumberPattern": "56\\d{4}"}},{"id": "SS","countryCode": "211","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[19]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[19]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "181234567","nationalNumberPattern": "1[89]\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "977123456","nationalNumberPattern": "(?:12|9[1257-9])\\d{7}"}},{"id": "ST","countryCode": "239","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[29]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:22|9\\d)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2221234","nationalNumberPattern": "22\\d{5}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "9812345","nationalNumberPattern": "900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}"}},{"id": "SV","countryCode": "503","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[267]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "70123456","nationalNumberPattern": "[67]\\d{7}"},"tollFree": {"possibleLengths": {"national": "7,11"},"exampleNumber": "8001234","nationalNumberPattern": "800\\d{4}(?:\\d{4})?"},"premiumRate": {"possibleLengths": {"national": "7,11"},"exampleNumber": "9001234","nationalNumberPattern": "900\\d{4}(?:\\d{4})?"}},{"id": "SX","countryCode": "1","leadingDigits": "721","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "(5\\d{6})$|1","nationalPrefixTransformRule": "721$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7215425678","nationalNumberPattern": "7215(?:4[2-8]|8[239]|9[056])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7215205678","nationalNumberPattern": "7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002123456","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002123456","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "SY","countryCode": "963","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[1-5]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "9","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-39]\\d{8}|[1-5]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8,9","localOnly": "6,7"},"exampleNumber": "112345678","nationalNumberPattern": "21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "944567890","nationalNumberPattern": "9[1-689]\\d{7}"}},{"id": "SZ","countryCode": "268","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[0237]","format": "$1 $2"},{"pattern": "(\\d{5})(\\d{4})","leadingDigits": "9","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "0800\\d{4}|(?:[237]\\d|900)\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "8"},"nationalNumberPattern": "0800\\d{4}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22171234","nationalNumberPattern": "[23][2-5]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "76123456","nationalNumberPattern": "7[6-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "08001234","nationalNumberPattern": "0800\\d{4}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900012345","nationalNumberPattern": "900\\d{6}"},"voip": {"possibleLengths": {"national": "8"},"exampleNumber": "70012345","nationalNumberPattern": "70\\d{6}"}},{"id": "TA","countryCode": "290","leadingDigits": "8","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "8\\d{3}"},"fixedLine": {"possibleLengths": {"national": "4"},"exampleNumber": "8999","nationalNumberPattern": "8\\d{3}"}},{"id": "TC","countryCode": "1","leadingDigits": "649","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-479]\\d{6})$|1","nationalPrefixTransformRule": "649$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|649|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6497121234","nationalNumberPattern": "649(?:266|712|9(?:4\\d|50))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6492311234","nationalNumberPattern": "649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "6497101234","nationalNumberPattern": "649(?:71[01]|966)\\d{4}"}},{"id": "TD","countryCode": "235","preferredInternationalPrefix": "00","internationalPrefix": "00|16","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[2679]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "(?:22|[69]\\d|77)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22501234","nationalNumberPattern": "22(?:[37-9]0|5[0-5]|6[89])\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "63012345","nationalNumberPattern": "(?:6[0235689]|77|9\\d)\\d{6}"}},{"id": "TG","countryCode": "228","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[279]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "[279]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "22212345","nationalNumberPattern": "2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "90112345","nationalNumberPattern": "(?:7[019]|9[0-36-9])\\d{6}"}},{"id": "TH","countryCode": "66","internationalPrefix": "00[1-9]","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[13-9]","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3})(\\d{3})","leadingDigits": "1","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "21234567","nationalNumberPattern": "(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "812345678","nationalNumberPattern": "671[0-8]\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}"},"tollFree": {"possibleLengths": {"national": "10,13"},"exampleNumber": "1800123456","nationalNumberPattern": "(?:001800\\d|1800)\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "1900123456","nationalNumberPattern": "1900\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "601234567","nationalNumberPattern": "6[08]\\d{7}"}},{"id": "TJ","countryCode": "992","preferredInternationalPrefix": "8~10","internationalPrefix": "810","availableFormats": {"numberFormat": [{"pattern": "(\\d{6})(\\d)(\\d{2})","leadingDigits": ["331","3317"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{4})","leadingDigits": "44[04]|[34]7","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d)(\\d{4})","leadingDigits": "3[1-5]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","leadingDigits": "[0-57-9]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[0-57-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "3,[5-7]"},"exampleNumber": "372123456","nationalNumberPattern": "(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:4[046]|74|87))\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "917123456","nationalNumberPattern": "(?:41[18]|81[1-9])\\d{6}|(?:0[0-57-9]|1[017]|2[02]|[34]0|5[05]|7[0178]|8[078]|9\\d)\\d{7}"}},{"id": "TK","countryCode": "690","internationalPrefix": "00","generalDesc": {"nationalNumberPattern": "[2-47]\\d{3,6}"},"fixedLine": {"possibleLengths": {"national": "[4-7]"},"exampleNumber": "3101","nationalNumberPattern": "(?:2[2-4]|[34]\\d)\\d{2,5}"},"mobile": {"possibleLengths": {"national": "[4-7]"},"exampleNumber": "7290","nationalNumberPattern": "7[2-4]\\d{2,5}"}},{"id": "TL","countryCode": "670","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[2-489]|70","format": "$1 $2"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "7"},"exampleNumber": "2112345","nationalNumberPattern": "(?:2[1-5]|3[1-9]|4[1-4])\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "77212345","nationalNumberPattern": "7[2-8]\\d{6}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8012345","nationalNumberPattern": "80\\d{5}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9012345","nationalNumberPattern": "90\\d{5}"},"personalNumber": {"possibleLengths": {"national": "7"},"exampleNumber": "7012345","nationalNumberPattern": "70\\d{5}"}},{"id": "TM","countryCode": "993","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "12","format": "$1 $2-$3-$4"},{"pattern": "(\\d{3})(\\d)(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP $FG)","leadingDigits": "[1-5]","format": "$1 $2-$3-$4"},{"pattern": "(\\d{2})(\\d{6})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "6","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "[1-6]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "66123456","nationalNumberPattern": "6\\d{7}"}},{"id": "TN","countryCode": "216","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{3})","leadingDigits": "[2-57-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[2-57-9]\\d{7}"},"fixedLine": {"possibleLengths": {"national": "8"},"exampleNumber": "30010123","nationalNumberPattern": "81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "20123456","nationalNumberPattern": "3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-8])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80101234","nationalNumberPattern": "8010\\d{4}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "88123456","nationalNumberPattern": "88\\d{6}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "81101234","nationalNumberPattern": "8[12]10\\d{4}"}},{"id": "TO","countryCode": "676","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})","leadingDigits": "[2-4]|50|6[09]|7[0-24-69]|8[05]","format": "$1-$2"},{"pattern": "(\\d{4})(\\d{3})","leadingDigits": "0","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[5-9]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "20123","nationalNumberPattern": "(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "7715123","nationalNumberPattern": "(?:55[4-6]|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "0800222","nationalNumberPattern": "0800\\d{3}"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "5510123","nationalNumberPattern": "55[0-37-9]\\d{4}"}},{"id": "TR","countryCode": "90","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d)(\\d{3})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "444","format": "$1 $2 $3","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "512|8[01589]|90","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": ["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "($NP$FG)","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[24][1-8]|3[1-9]","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{6,7})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "80","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "7,10"},"nationalNumberPattern": "(?:444|811\\d{3})\\d{4}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2123456789","nationalNumberPattern": "(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "5012345678","nationalNumberPattern": "56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}"},"pager": {"possibleLengths": {"national": "10"},"exampleNumber": "5123456789","nationalNumberPattern": "512\\d{7}"},"tollFree": {"possibleLengths": {"national": "10,12,13"},"exampleNumber": "8001234567","nationalNumberPattern": "8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "(?:8[89]8|900)\\d{7}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5922121234","nationalNumberPattern": "592(?:21[12]|461)\\d{4}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "8500123456","nationalNumberPattern": "850\\d{7}"},"uan": {"possibleLengths": {"national": "7"},"exampleNumber": "4441444","nationalNumberPattern": "444\\d{4}"}},{"id": "TT","countryCode": "1","leadingDigits": "868","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-46-8]\\d{6})$|1","nationalPrefixTransformRule": "868$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8682211234","nationalNumberPattern": "868(?:2(?:01|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8682911234","nationalNumberPattern": "868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voicemail": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "8686191234","nationalNumberPattern": "868619\\d{4}"}},{"id": "TV","countryCode": "688","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3})","leadingDigits": "2","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{4})","leadingDigits": "90","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:2|7\\d\\d|90)\\d{4}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "20123","nationalNumberPattern": "2[02-9]\\d{3}"},"mobile": {"possibleLengths": {"national": "6,7"},"exampleNumber": "901234","nationalNumberPattern": "(?:7[01]\\d|90)\\d{4}"}},{"id": "TW","countryCode": "886","internationalPrefix": "0(?:0[25-79]|19)","nationalPrefix": "0","preferredExtnPrefix": "#","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d)(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "202","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[258]0","format": "$1 $2 $3"},{"pattern": "(\\d)(\\d{3,4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[49]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "221234567","nationalNumberPattern": "(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "(?:40001[0-2]|9[0-8]\\d{4})\\d{3}"},"tollFree": {"possibleLengths": {"national": "8,9"},"exampleNumber": "800123456","nationalNumberPattern": "80[0-79]\\d{6}|800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "7,9"},"exampleNumber": "203123456","nationalNumberPattern": "20(?:[013-9]\\d\\d|2)\\d{4}"},"personalNumber": {"possibleLengths": {"national": "9"},"exampleNumber": "990123456","nationalNumberPattern": "99\\d{7}"},"voip": {"possibleLengths": {"national": "10,11"},"exampleNumber": "7012345678","nationalNumberPattern": "7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}"},"uan": {"possibleLengths": {"national": "9"},"exampleNumber": "500123456","nationalNumberPattern": "50[0-46-9]\\d{6}"}},{"id": "TZ","countryCode": "255","internationalPrefix": "00[056]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{2})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[24]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{7})","leadingDigits": "5","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[67]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:[25-8]\\d|41|90)\\d{7}"},"noInternationalDialling": {"possibleLengths": {"national": "9"},"nationalNumberPattern": "(?:8(?:[04]0|6[01])|90\\d)\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "222345678","nationalNumberPattern": "2[2-8]\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "621234567","nationalNumberPattern": "77[2-9]\\d{6}|(?:6[125-9]|7[13-689])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "80[08]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "900123456","nationalNumberPattern": "90\\d{7}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "840123456","nationalNumberPattern": "8(?:40|6[01])\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "412345678","nationalNumberPattern": "41\\d{7}"}},{"id": "UA","countryCode": "380","preferredInternationalPrefix": "0~0","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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]"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["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])"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[3-7]|89|9[1-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[89]\\d{9}|[3-9]\\d{8}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "[5-7]"},"exampleNumber": "311234567","nationalNumberPattern": "(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "501234567","nationalNumberPattern": "(?:39|50|6[36-8]|7[1-3]|9[1-9])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9,10"},"exampleNumber": "800123456","nationalNumberPattern": "800[1-8]\\d{5,6}"},"premiumRate": {"possibleLengths": {"national": "9,10"},"exampleNumber": "900212345","nationalNumberPattern": "900[239]\\d{5,6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "891234567","nationalNumberPattern": "89[1-579]\\d{6}"}},{"id": "UG","countryCode": "256","internationalPrefix": "00[057]","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{4})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["202","2024"],"format": "$1 $2"},{"pattern": "(\\d{3})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[27-9]|4(?:6[45]|[7-9])","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[34]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "[5-7]"},"exampleNumber": "312345678","nationalNumberPattern": "20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "726[01]\\d{5}|7(?:[01578]\\d|20|36|4[0-4]|6[0-5]|9[89])\\d{6}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800[1-3]\\d{5}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "901123456","nationalNumberPattern": "90[1-3]\\d{6}"}},{"id": "US","mainCountryForCode": "true","countryCode": "1","internationalPrefix": "011","nationalPrefix": "1","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "310","format": "$1-$2"},{"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[24-9]|3(?:[02-9]|1[1-9])","format": "$1-$2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[2-9]","format": "($1) $2-$3","intlFormat": "$1-$2-$3"}]},"generalDesc": {"nationalNumberPattern": "[2-9]\\d{9}|3\\d{6}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2015550123","nationalNumberPattern": "5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|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]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|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}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2015550123","nationalNumberPattern": "5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|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]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|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}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "UY","countryCode": "598","preferredInternationalPrefix": "00","internationalPrefix": "0(?:0|1[3-9]\\d)","nationalPrefix": "0","preferredExtnPrefix": " int. ","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "405|8|90","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "9","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[124]","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "4","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "0","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:0004|4)\\d{9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8","localOnly": "7"},"exampleNumber": "21231234","nationalNumberPattern": "(?:1(?:770|987)|(?:2\\d|4[2-7])\\d\\d)\\d{4}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "94231234","nationalNumberPattern": "9[1-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "7,10,13"},"exampleNumber": "8001234","nationalNumberPattern": "(?:(?:0004|4)\\d{5}|80[05])\\d{4}|405\\d{4}"},"premiumRate": {"possibleLengths": {"national": "7"},"exampleNumber": "9001234","nationalNumberPattern": "90[0-8]\\d{4}"}},{"id": "UZ","countryCode": "998","preferredInternationalPrefix": "8~10","internationalPrefix": "810","nationalPrefix": "8","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP $FG","leadingDigits": "[235-9]","format": "$1 $2 $3 $4"}},"generalDesc": {"nationalNumberPattern": "200\\d{6}|(?:33|[5-79]\\d|88)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "669050123","nationalNumberPattern": "(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "(?:(?:200[01]|(?:33|50|88|9[0-57-9])\\d\\d)\\d|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}"}},{"id": "VA","countryCode": "39","leadingDigits": "06698","internationalPrefix": "00","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[6-11]"},"exampleNumber": "0669812345","nationalNumberPattern": "06698\\d{1,6}"},"mobile": {"possibleLengths": {"national": "9,10"},"exampleNumber": "3123456789","nationalNumberPattern": "3[1-9]\\d{8}|3[2-9]\\d{7}"},"tollFree": {"possibleLengths": {"national": "6,9"},"exampleNumber": "800123456","nationalNumberPattern": "80(?:0\\d{3}|3)\\d{3}"},"premiumRate": {"possibleLengths": {"national": "6,[8-10]"},"exampleNumber": "899123456","nationalNumberPattern": "(?: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}"},"sharedCost": {"possibleLengths": {"national": "6,9"},"exampleNumber": "848123456","nationalNumberPattern": "84(?:[08]\\d{3}|[17])\\d{3}"},"personalNumber": {"possibleLengths": {"national": "9,10"},"exampleNumber": "1781234567","nationalNumberPattern": "1(?:78\\d|99)\\d{6}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "5512345678","nationalNumberPattern": "55\\d{8}"},"voicemail": {"possibleLengths": {"national": "11,12"},"exampleNumber": "33101234501","nationalNumberPattern": "3[2-8]\\d{9,10}"}},{"id": "VC","countryCode": "1","leadingDigits": "784","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-7]\\d{6})$|1","nationalPrefixTransformRule": "784$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:[58]\\d\\d|784|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7842661234","nationalNumberPattern": "784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7844301234","nationalNumberPattern": "784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"},"voip": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "7845101234","nationalNumberPattern": "78451[0-2]\\d{4}"}},{"id": "VE","countryCode": "58","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","carrierCodeFormattingRule": "$CC $FG","leadingDigits": "[24-689]","format": "$1-$2"}},"generalDesc": {"nationalNumberPattern": "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2121234567","nationalNumberPattern": "(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}"},"mobile": {"possibleLengths": {"national": "10"},"exampleNumber": "4121234567","nationalNumberPattern": "4(?:1[24-8]|2[46])\\d{7}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8001234567","nationalNumberPattern": "800\\d{7}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9001234567","nationalNumberPattern": "90[01]\\d{7}"},"uan": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "5010123456","nationalNumberPattern": "501\\d{7}"}},{"id": "VG","countryCode": "1","leadingDigits": "284","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-578]\\d{6})$|1","nationalPrefixTransformRule": "284$1","mobileNumberPortableRegion": "true","generalDesc": {"nationalNumberPattern": "(?:284|[58]\\d\\d|900)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2842291234","nationalNumberPattern": "284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "2843001234","nationalNumberPattern": "284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "VI","countryCode": "1","leadingDigits": "340","internationalPrefix": "011","nationalPrefix": "1","nationalPrefixForParsing": "([2-9]\\d{6})$|1","nationalPrefixTransformRule": "340$1","generalDesc": {"nationalNumberPattern": "[58]\\d{9}|(?:34|90)0\\d{7}"},"fixedLine": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3406421234","nationalNumberPattern": "340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"},"mobile": {"possibleLengths": {"national": "10","localOnly": "7"},"exampleNumber": "3406421234","nationalNumberPattern": "340(?:2(?:0[0-368]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"},"tollFree": {"possibleLengths": {"national": "10"},"exampleNumber": "8002345678","nationalNumberPattern": "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"},"premiumRate": {"possibleLengths": {"national": "10"},"exampleNumber": "9002345678","nationalNumberPattern": "900[2-9]\\d{6}"},"personalNumber": {"possibleLengths": {"national": "10"},"exampleNumber": "5002345678","nationalNumberPattern": "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}"}},{"id": "VN","countryCode": "84","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[17]99","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{2})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "80","format": "$1 $2"},{"pattern": "(\\d{3})(\\d{4,5})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "69","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{4})(\\d{4,6})","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "1","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{2})(\\d{2})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "6","format": "$1 $2 $3 $4"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "[357-9]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "2[48]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","nationalPrefixOptionalWhenFormatting": "true","leadingDigits": "2","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}"},"noInternationalDialling": {"possibleLengths": {"national": "7,8"},"nationalNumberPattern": "[17]99\\d{4}|69\\d{5,6}"},"fixedLine": {"possibleLengths": {"national": "10"},"exampleNumber": "2101234567","nationalNumberPattern": "2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "912345678","nationalNumberPattern": "(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-8]|9[0-8])\\d{7}"},"tollFree": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "1800123456","nationalNumberPattern": "1800\\d{4,6}|12(?:0[13]|28)\\d{4}"},"premiumRate": {"possibleLengths": {"national": "[8-10]"},"exampleNumber": "1900123456","nationalNumberPattern": "1900\\d{4,6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "672012345","nationalNumberPattern": "672\\d{6}"},"uan": {"possibleLengths": {"national": "7,8"},"exampleNumber": "1992000","nationalNumberPattern": "(?:[17]99|80\\d)\\d{4}|69\\d{5,6}"}},{"id": "VU","countryCode": "678","internationalPrefix": "00","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{4})","leadingDigits": "[57-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}"},"fixedLine": {"possibleLengths": {"national": "5"},"exampleNumber": "22123","nationalNumberPattern": "(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}"},"mobile": {"possibleLengths": {"national": "7"},"exampleNumber": "5912345","nationalNumberPattern": "(?:[58]\\d|7[013-7])\\d{5}"},"tollFree": {"possibleLengths": {"national": "5"},"exampleNumber": "81123","nationalNumberPattern": "81[18]\\d\\d"},"voip": {"possibleLengths": {"national": "7"},"exampleNumber": "9010123","nationalNumberPattern": "9(?:0[1-9]|1[01])\\d{4}"},"uan": {"possibleLengths": {"national": "5,7"},"exampleNumber": "30123","nationalNumberPattern": "(?:3[03]|900\\d)\\d{3}"}},{"id": "WF","countryCode": "681","internationalPrefix": "00","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "[478]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{2})(\\d{2})(\\d{2})","leadingDigits": "8","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?"},"fixedLine": {"possibleLengths": {"national": "6"},"exampleNumber": "721234","nationalNumberPattern": "72\\d{4}"},"mobile": {"possibleLengths": {"national": "6"},"exampleNumber": "821234","nationalNumberPattern": "(?:72|8[23])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800012345","nationalNumberPattern": "80[0-5]\\d{6}"},"voicemail": {"possibleLengths": {"national": "6"},"exampleNumber": "401234","nationalNumberPattern": "[48]0\\d{4}"}},{"id": "WS","countryCode": "685","internationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{5})","leadingDigits": "[2-5]|6[1-9]","format": "$1"},{"pattern": "(\\d{3})(\\d{3,7})","leadingDigits": "[68]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "7","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}"},"fixedLine": {"possibleLengths": {"national": "5,6"},"exampleNumber": "22123","nationalNumberPattern": "6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}"},"mobile": {"possibleLengths": {"national": "7,10"},"exampleNumber": "7212345","nationalNumberPattern": "(?:7[1-35-7]|8(?:[3-7]|9\\d{3}))\\d{5}"},"tollFree": {"possibleLengths": {"national": "6"},"exampleNumber": "800123","nationalNumberPattern": "800\\d{3}"}},{"id": "XK","countryCode": "383","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[89]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[2-4]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[23]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}"},"fixedLine": {"possibleLengths": {"national": "8,9"},"exampleNumber": "28012345","nationalNumberPattern": "(?:2[89]|39)0\\d{6}|[23][89]\\d{6}"},"mobile": {"possibleLengths": {"national": "8"},"exampleNumber": "43201234","nationalNumberPattern": "4[3-9]\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "80001234","nationalNumberPattern": "800\\d{5}"},"premiumRate": {"possibleLengths": {"national": "8"},"exampleNumber": "90001234","nationalNumberPattern": "900\\d{5}"}},{"id": "YE","countryCode": "967","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d)(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-6]|7(?:[24-6]|8[0-7])","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "(?:1|7\\d)\\d{7}|[1-7]\\d{6}"},"fixedLine": {"possibleLengths": {"national": "7,8","localOnly": "6"},"exampleNumber": "1234567","nationalNumberPattern": "78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "7[01378]\\d{7}"}},{"id": "YT","countryCode": "262","internationalPrefix": "00","nationalPrefix": "0","generalDesc": {"nationalNumberPattern": "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "269601234","nationalNumberPattern": "269(?:0[0-467]|5[0-4]|6\\d|[78]0)\\d{4}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "639012345","nationalNumberPattern": "639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "939801234","nationalNumberPattern": "9(?:(?:39|47)8[01]|769\\d)\\d{4}"}},{"id": "ZA","countryCode": "27","internationalPrefix": "00","nationalPrefix": "0","mobileNumberPortableRegion": "true","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-4]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{2,3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8[1-4]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "860","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[1-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[1-79]\\d{8}|8\\d{4,9}"},"fixedLine": {"possibleLengths": {"national": "9"},"exampleNumber": "101234567","nationalNumberPattern": "(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}"},"mobile": {"possibleLengths": {"national": "[5-9]"},"exampleNumber": "711234567","nationalNumberPattern": "(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "801234567","nationalNumberPattern": "80\\d{7}"},"premiumRate": {"possibleLengths": {"national": "9"},"exampleNumber": "862345678","nationalNumberPattern": "(?:86[2-9]|9[0-2]\\d)\\d{6}"},"sharedCost": {"possibleLengths": {"national": "9"},"exampleNumber": "860123456","nationalNumberPattern": "860\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "871234567","nationalNumberPattern": "87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}"},"uan": {"possibleLengths": {"national": "9,10"},"exampleNumber": "861123456","nationalNumberPattern": "861\\d{6,7}"}},{"id": "ZM","countryCode": "260","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})","leadingDigits": "[1-9]","format": "$1 $2","intlFormat": "NA"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[28]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[79]","format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "800\\d{6}|(?:21|63|[79]\\d)\\d{7}"},"fixedLine": {"possibleLengths": {"national": "9","localOnly": "6"},"exampleNumber": "211234567","nationalNumberPattern": "21[1-8]\\d{6}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "955123456","nationalNumberPattern": "(?:7[5-79]|9[5-8])\\d{7}"},"tollFree": {"possibleLengths": {"national": "9"},"exampleNumber": "800123456","nationalNumberPattern": "800\\d{6}"},"voip": {"possibleLengths": {"national": "9"},"exampleNumber": "630123456","nationalNumberPattern": "63\\d{7}"}},{"id": "ZW","countryCode": "263","internationalPrefix": "00","nationalPrefix": "0","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]","format": "$1 $2"},{"pattern": "(\\d)(\\d{3})(\\d{2,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "[49]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "80","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{7})","nationalPrefixFormattingRule": "($NP$FG)","leadingDigits": ["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]"],"format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "7","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{6})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "8","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "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]","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{3})(\\d{3,4})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": "29[013-9]|39|54","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{3,5})","nationalPrefixFormattingRule": "$NP$FG","leadingDigits": ["(?:25|54)8","258|5483"],"format": "$1 $2"}]},"generalDesc": {"nationalNumberPattern": "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}"},"fixedLine": {"possibleLengths": {"national": "[5-10]","localOnly": "3,4"},"exampleNumber": "1312345","nationalNumberPattern": "(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "712345678","nationalNumberPattern": "7(?:[178]\\d|3[1-9])\\d{6}"},"tollFree": {"possibleLengths": {"national": "7"},"exampleNumber": "8001234","nationalNumberPattern": "80(?:[01]\\d|20|8[0-8])\\d{3}"},"voip": {"possibleLengths": {"national": "10"},"exampleNumber": "8686123456","nationalNumberPattern": "86(?:1[12]|22|30|44|55|77|8[368])\\d{6}"}},{"id": "001","countryCode": "800","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "\\d","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "(?:00|[1-9]\\d)\\d{6}"},"tollFree": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "(?:00|[1-9]\\d)\\d{6}"}},{"id": "001","countryCode": "808","availableFormats": {"numberFormat": {"pattern": "(\\d{4})(\\d{4})","leadingDigits": "[1-9]","format": "$1 $2"}},"generalDesc": {"nationalNumberPattern": "[1-9]\\d{7}"},"sharedCost": {"possibleLengths": {"national": "8"},"exampleNumber": "12345678","nationalNumberPattern": "[1-9]\\d{7}"}},{"id": "001","countryCode": "870","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[35-7]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "7\\d{11}|[35-7]\\d{8}"},"mobile": {"possibleLengths": {"national": "9,12"},"exampleNumber": "301234567","nationalNumberPattern": "(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"}},{"id": "001","countryCode": "878","availableFormats": {"numberFormat": {"pattern": "(\\d{2})(\\d{5})(\\d{5})","leadingDigits": "1","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "10\\d{10}"},"voip": {"possibleLengths": {"national": "12"},"exampleNumber": "101234567890","nationalNumberPattern": "10\\d{10}"}},{"id": "001","countryCode": "881","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{3})(\\d{5})","leadingDigits": "[0-36-9]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[0-36-9]\\d{8}"},"mobile": {"possibleLengths": {"national": "9"},"exampleNumber": "612345678","nationalNumberPattern": "[0-36-9]\\d{8}"}},{"id": "001","countryCode": "882","availableFormats": {"numberFormat": [{"pattern": "(\\d{2})(\\d{5})","leadingDigits": "16|342","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{6})","leadingDigits": "49","format": "$1 $2"},{"pattern": "(\\d{2})(\\d{2})(\\d{4})","leadingDigits": "1[36]|9","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{3})","leadingDigits": "3[23]","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{3,4})(\\d{4})","leadingDigits": "16","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4})(\\d{4})","leadingDigits": "10|23|3(?:[15]|4[57])|4|51","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{4})(\\d{4})","leadingDigits": "34","format": "$1 $2 $3"},{"pattern": "(\\d{2})(\\d{4,5})(\\d{5})","leadingDigits": "[1-35]","format": "$1 $2 $3"}]},"generalDesc": {"nationalNumberPattern": "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?"},"mobile": {"possibleLengths": {"national": "[7-10],12"},"exampleNumber": "3421234","nationalNumberPattern": "342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}"},"voip": {"possibleLengths": {"national": "[7-12]"},"exampleNumber": "390123456789","nationalNumberPattern": "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}"},"voicemail": {"possibleLengths": {"national": "11"},"exampleNumber": "34851234567","nationalNumberPattern": "348[57]\\d{7}"}},{"id": "001","countryCode": "883","availableFormats": {"numberFormat": [{"pattern": "(\\d{3})(\\d{3})(\\d{2,8})","leadingDigits": "[14]|2[24-689]|3[02-689]|51[24-9]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "510","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{4})","leadingDigits": "21","format": "$1 $2 $3"},{"pattern": "(\\d{4})(\\d{4})(\\d{4})","leadingDigits": "51[13]","format": "$1 $2 $3"},{"pattern": "(\\d{3})(\\d{3})(\\d{3})(\\d{3})","leadingDigits": "[235]","format": "$1 $2 $3 $4"}]},"generalDesc": {"nationalNumberPattern": "(?:[1-4]\\d|51)\\d{6,10}"},"voip": {"possibleLengths": {"national": "[8-12]"},"exampleNumber": "510012345","nationalNumberPattern": "(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[013-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"}},{"id": "001","countryCode": "888","availableFormats": {"numberFormat": {"pattern": "(\\d{3})(\\d{3})(\\d{5})","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "\\d{11}"},"uan": {"possibleLengths": {"national": "11"},"exampleNumber": "12345678901","nationalNumberPattern": "\\d{11}"}},{"id": "001","countryCode": "979","availableFormats": {"numberFormat": {"pattern": "(\\d)(\\d{4})(\\d{4})","leadingDigits": "[1359]","format": "$1 $2 $3"}},"generalDesc": {"nationalNumberPattern": "[1359]\\d{8}"},"premiumRate": {"possibleLengths": {"national": "9","localOnly": "8"},"exampleNumber": "123456789","nationalNumberPattern": "[1359]\\d{8}"}}]} }} \ No newline at end of file diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift deleted file mode 100644 index 0f25f89..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerOptions.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// CountryCodePickerOptions.swift -// PhoneNumberKit -// -// Created by Joao Vitor Molinari on 19/09/23. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -#if os(iOS) -import UIKit - -/** - CountryCodePickerOptions object - - Parameter backgroundColor: UIColor used for background - - Parameter separatorColor: UIColor used for the separator line between cells - - Parameter textLabelColor: UIColor for the TextLabel (Country code) - - Parameter textLabelFont: UIFont for the TextLabel (Country code) - - Parameter detailTextLabelColor: UIColor for the DetailTextLabel (Country name) - - Parameter detailTextLabelFont: UIFont for the DetailTextLabel (Country name) - - Parameter tintColor: Default TintColor used on the view - - Parameter cellBackgroundColor: UIColor for the cell background - - Parameter cellBackgroundColorSelection: UIColor for the cell selectedBackgroundView - */ -public struct CountryCodePickerOptions { - - public init() { } - - public init(backgroundColor: UIColor? = nil, - separatorColor: UIColor? = nil, - textLabelColor: UIColor? = nil, - textLabelFont: UIFont? = nil, - detailTextLabelColor: UIColor? = nil, - detailTextLabelFont: UIFont? = nil, - tintColor: UIColor? = nil, - cellBackgroundColor: UIColor? = nil, - cellBackgroundColorSelection: UIColor? = nil) { - - self.backgroundColor = backgroundColor - self.separatorColor = separatorColor - self.textLabelColor = textLabelColor - self.textLabelFont = textLabelFont - self.detailTextLabelColor = detailTextLabelColor - self.detailTextLabelFont = detailTextLabelFont - self.tintColor = tintColor - self.cellBackgroundColor = cellBackgroundColor - self.cellBackgroundColorSelection = cellBackgroundColorSelection - } - - public var backgroundColor: UIColor? - public var separatorColor: UIColor? - public var textLabelColor: UIColor? - public var textLabelFont: UIFont? - public var detailTextLabelColor: UIColor? - public var detailTextLabelFont: UIFont? - public var tintColor: UIColor? - public var cellBackgroundColor: UIColor? - public var cellBackgroundColorSelection: UIColor? -} -#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift deleted file mode 100644 index 501c8dc..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/CountryCodePickerViewController.swift +++ /dev/null @@ -1,303 +0,0 @@ -#if os(iOS) - -import UIKit - -public protocol CountryCodePickerDelegate: AnyObject { - func countryCodePickerViewControllerDidPickCountry(_ country: CountryCodePickerViewController.Country) -} - -public class CountryCodePickerViewController: UITableViewController { - - lazy var searchController: UISearchController = { - let searchController = UISearchController(searchResultsController: nil) - searchController.searchBar.placeholder = NSLocalizedString( - "PhoneNumberKit.CountryCodePicker.SearchBarPlaceholder", - value: "Search Country Codes", - comment: "Placeholder for country code search field") - - return searchController - }() - - public let phoneNumberKit: PhoneNumberKit - - public let options: CountryCodePickerOptions - - let commonCountryCodes: [String] - - var shouldRestoreNavigationBarToHidden = false - - var hasCurrent = true - var hasCommon = true - - lazy var allCountries = phoneNumberKit - .allCountries() - .compactMap({ Country(for: $0, with: self.phoneNumberKit) }) - .sorted(by: { $0.name.localizedCaseInsensitiveCompare($1.name) == .orderedAscending }) - - lazy var countries: [[Country]] = { - let countries = allCountries - .reduce([[Country]]()) { collection, country in - var collection = collection - guard var lastGroup = collection.last else { return [[country]] } - let lhs = lastGroup.first?.name.folding(options: .diacriticInsensitive, locale: nil) - let rhs = country.name.folding(options: .diacriticInsensitive, locale: nil) - if lhs?.first == rhs.first { - lastGroup.append(country) - collection[collection.count - 1] = lastGroup - } else { - collection.append([country]) - } - return collection - } - - let popular = commonCountryCodes.compactMap({ Country(for: $0, with: phoneNumberKit) }) - - var result: [[Country]] = [] - // Note we should maybe use the user's current carrier's country code? - if hasCurrent, let current = Country(for: PhoneNumberKit.defaultRegionCode(), with: phoneNumberKit) { - result.append([current]) - } - hasCommon = hasCommon && !popular.isEmpty - if hasCommon { - result.append(popular) - } - return result + countries - }() - - var filteredCountries: [Country] = [] - - public weak var delegate: CountryCodePickerDelegate? - - lazy var cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(dismissAnimated)) - - /** - Init with a phone number kit instance. Because a PhoneNumberKit initialization is expensive you can must pass a pre-initialized instance to avoid incurring perf penalties. - - - parameter phoneNumberKit: A PhoneNumberKit instance to be used by the text field. - - parameter commonCountryCodes: An array of country codes to display in the section below the current region section. defaults to `PhoneNumberKit.CountryCodePicker.commonCountryCodes` - */ - public init( - phoneNumberKit: PhoneNumberKit, - options: CountryCodePickerOptions?, - commonCountryCodes: [String] = PhoneNumberKit.CountryCodePicker.commonCountryCodes) - { - self.phoneNumberKit = phoneNumberKit - self.commonCountryCodes = commonCountryCodes - self.options = options ?? CountryCodePickerOptions() - super.init(style: .grouped) - self.commonInit() - } - - required init?(coder aDecoder: NSCoder) { - self.phoneNumberKit = PhoneNumberKit() - self.commonCountryCodes = PhoneNumberKit.CountryCodePicker.commonCountryCodes - self.options = CountryCodePickerOptions() - super.init(coder: aDecoder) - self.commonInit() - } - - func commonInit() { - self.title = NSLocalizedString("PhoneNumberKit.CountryCodePicker.Title", value: "Choose your country", comment: "Title of CountryCodePicker ViewController") - - tableView.register(Cell.self, forCellReuseIdentifier: Cell.reuseIdentifier) - searchController.searchResultsUpdater = self - searchController.obscuresBackgroundDuringPresentation = false - searchController.searchBar.backgroundColor = .clear - - navigationItem.searchController = searchController - navigationItem.hidesSearchBarWhenScrolling = !PhoneNumberKit.CountryCodePicker.alwaysShowsSearchBar - - definesPresentationContext = true - - if let tintColor = options.tintColor { - view.tintColor = tintColor - navigationController?.navigationBar.tintColor = tintColor - } - - if let backgroundColor = options.backgroundColor { - tableView.backgroundColor = backgroundColor - } - - if let separator = options.separatorColor { - tableView.separatorColor = separator - } - } - - public override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - if let nav = navigationController { - shouldRestoreNavigationBarToHidden = nav.isNavigationBarHidden - nav.setNavigationBarHidden(false, animated: true) - } - if let nav = navigationController, nav.isBeingPresented && nav.viewControllers.count == 1 { - navigationItem.setRightBarButton(cancelButton, animated: true) - } - } - - public override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - navigationController?.setNavigationBarHidden(shouldRestoreNavigationBarToHidden, animated: true) - } - - @objc func dismissAnimated() { - dismiss(animated: true) - } - - func country(for indexPath: IndexPath) -> Country { - isFiltering ? filteredCountries[indexPath.row] : countries[indexPath.section][indexPath.row] - } - - public override func numberOfSections(in tableView: UITableView) -> Int { - isFiltering ? 1 : countries.count - } - - public override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - isFiltering ? filteredCountries.count : countries[section].count - } - - public override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: Cell.reuseIdentifier, for: indexPath) - let country = self.country(for: indexPath) - - if let cellBackgroundColor = options.cellBackgroundColor { - cell.backgroundColor = cellBackgroundColor - } - - cell.textLabel?.text = country.prefix + " " + country.flag - - if let textLabelColor = options.textLabelColor { - cell.textLabel?.textColor = textLabelColor - } - - if let detailTextLabelColor = options.detailTextLabelColor { - cell.detailTextLabel?.textColor = detailTextLabelColor - } - - cell.detailTextLabel?.text = country.name - - if let textLabelFont = options.textLabelFont { - cell.textLabel?.font = textLabelFont - } - - if let detailTextLabelFont = options.detailTextLabelFont { - cell.detailTextLabel?.font = detailTextLabelFont - } - - if let cellBackgroundColorSelection = options.cellBackgroundColorSelection { - let view = UIView() - view.backgroundColor = cellBackgroundColorSelection - cell.selectedBackgroundView = view - } - - return cell - } - - public override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { - if isFiltering { - return nil - } else if section == 0, hasCurrent { - return NSLocalizedString("PhoneNumberKit.CountryCodePicker.Current", value: "Current", comment: "Name of \"Current\" section") - } else if section == 0, !hasCurrent, hasCommon { - return NSLocalizedString("PhoneNumberKit.CountryCodePicker.Common", value: "Common", comment: "Name of \"Common\" section") - } else if section == 1, hasCurrent, hasCommon { - return NSLocalizedString("PhoneNumberKit.CountryCodePicker.Common", value: "Common", comment: "Name of \"Common\" section") - } - return countries[section].first?.name.first.map(String.init) - } - - public override func sectionIndexTitles(for tableView: UITableView) -> [String]? { - guard !isFiltering else { - return nil - } - var titles: [String] = [] - if hasCurrent { - titles.append("•") // NOTE: SFSymbols are not supported otherwise we would use 􀋑 - } - if hasCommon { - titles.append("★") // This is a classic unicode star - } - return titles + countries.suffix(countries.count - titles.count).map { group in - group.first?.name.first - .map(String.init)? - .folding(options: .diacriticInsensitive, locale: nil) ?? "" - } - } - - public override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let country = self.country(for: indexPath) - delegate?.countryCodePickerViewControllerDidPickCountry(country) - tableView.deselectRow(at: indexPath, animated: true) - } -} - -extension CountryCodePickerViewController: UISearchResultsUpdating { - - var isFiltering: Bool { - searchController.isActive && !isSearchBarEmpty - } - - var isSearchBarEmpty: Bool { - searchController.searchBar.text?.isEmpty ?? true - } - - public func updateSearchResults(for searchController: UISearchController) { - let searchText = searchController.searchBar.text ?? "" - filteredCountries = allCountries.filter { country in - country.name.lowercased().contains(searchText.lowercased()) || - country.code.lowercased().contains(searchText.lowercased()) || - country.prefix.lowercased().contains(searchText.lowercased()) - } - tableView.reloadData() - } -} - - -// MARK: Types - -public extension CountryCodePickerViewController { - - struct Country { - public var code: String - public var flag: String - public var name: String - public var prefix: String - - public init?(for countryCode: String, with phoneNumberKit: PhoneNumberKit) { - let flagBase = UnicodeScalar("🇦").value - UnicodeScalar("A").value - guard - let name = (Locale.current as NSLocale).localizedString(forCountryCode: countryCode), - let prefix = phoneNumberKit.countryCode(for: countryCode)?.description - else { - return nil - } - - self.code = countryCode - self.name = name - self.prefix = "+" + prefix - self.flag = "" - countryCode.uppercased().unicodeScalars.forEach { - if let scaler = UnicodeScalar(flagBase + $0.value) { - flag.append(String(describing: scaler)) - } - } - if flag.count != 1 { // Failed to initialize a flag ... use an empty string - return nil - } - } - } - - class Cell: UITableViewCell { - - static let reuseIdentifier = "Cell" - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: .value2, reuseIdentifier: Self.reuseIdentifier) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - } -} - -#endif diff --git a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift b/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift deleted file mode 100644 index 3ff9839..0000000 --- a/iosApp/Pods/PhoneNumberKit/PhoneNumberKit/UI/PhoneNumberTextField.swift +++ /dev/null @@ -1,622 +0,0 @@ -// -// PhoneNumberTextField.swift -// PhoneNumberKit -// -// Created by Roy Marmelstein on 07/11/2015. -// Copyright © 2021 Roy Marmelstein. All rights reserved. -// - -#if os(iOS) - -import Foundation -import UIKit - -/// Custom text field that formats phone numbers -open class PhoneNumberTextField: UITextField, UITextFieldDelegate { - public let phoneNumberKit: PhoneNumberKit - - public lazy var flagButton = UIButton() - - /// Override setText so number will be automatically formatted when setting text by code - open override var text: String? { - set { - if isPartialFormatterEnabled, let newValue = newValue { - let formattedNumber = partialFormatter.formatPartial(newValue) - super.text = formattedNumber - } else { - super.text = newValue - } - NotificationCenter.default.post(name: UITextField.textDidChangeNotification, object: self) - self.updateFlag() - } - get { - return super.text - } - } - - /// allows text to be set without formatting - open func setTextUnformatted(newValue: String?) { - super.text = newValue - } - - private lazy var _defaultRegion: String = PhoneNumberKit.defaultRegionCode() - - /// Override region to set a custom region. Automatically uses the default region code. - open var defaultRegion: String { - get { - return self._defaultRegion - } - @available( - *, - deprecated, - message: """ - The setter of defaultRegion is deprecated, - please override defaultRegion in a subclass instead. - """ - ) - set { - self.partialFormatter.defaultRegion = newValue - } - } - - public var withPrefix: Bool = true { - didSet { - self.partialFormatter.withPrefix = self.withPrefix - if self.withPrefix == false { - self.keyboardType = .numberPad - } else { - self.keyboardType = .phonePad - } - if self.withExamplePlaceholder { - self.updatePlaceholder() - } - } - } - - public var withFlag: Bool = false { - didSet { - leftView = self.withFlag ? self.flagButton : nil - leftViewMode = self.withFlag ? .always : .never - self.updateFlag() - } - } - - public var withExamplePlaceholder: Bool = false { - didSet { - if self.withExamplePlaceholder { - self.updatePlaceholder() - } else { - attributedPlaceholder = nil - } - } - } - - #if compiler(>=5.1) - /// Available on iOS 13 and above just. - public var countryCodePlaceholderColor: UIColor = { - if #available(iOS 13.0, tvOS 13.0, *) { - return .secondaryLabel - } else { - return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22) - } - }() { - didSet { - self.updatePlaceholder() - } - } - - /// Available on iOS 13 and above just. - public var numberPlaceholderColor: UIColor = { - if #available(iOS 13.0, tvOS 13.0, *) { - return .tertiaryLabel - } else { - return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22) - } - }() { - didSet { - self.updatePlaceholder() - } - } - #endif - - private var _withDefaultPickerUI: Bool = false { - didSet { - if flagButton.actions(forTarget: self, forControlEvent: .touchUpInside) == nil { - flagButton.addTarget(self, action: #selector(didPressFlagButton), for: .touchUpInside) - } - } - } - - public var withDefaultPickerUI: Bool { - get { _withDefaultPickerUI } - set { _withDefaultPickerUI = newValue } - } - - private var withDefaultPickerUIOptions: CountryCodePickerOptions = CountryCodePickerOptions() - - public var modalPresentationStyle: UIModalPresentationStyle? - - public var isPartialFormatterEnabled = true - - public var maxDigits: Int? { - didSet { - self.partialFormatter.maxDigits = self.maxDigits - } - } - - public private(set) lazy var partialFormatter: PartialFormatter = PartialFormatter( - phoneNumberKit: phoneNumberKit, - defaultRegion: defaultRegion, - withPrefix: withPrefix, - ignoreIntlNumbers: true - ) - - let nonNumericSet: CharacterSet = { - var mutableSet = CharacterSet.decimalDigits.inverted - mutableSet.remove(charactersIn: PhoneNumberConstants.plusChars) - mutableSet.remove(charactersIn: PhoneNumberConstants.pausesAndWaitsChars) - mutableSet.remove(charactersIn: PhoneNumberConstants.operatorChars) - return mutableSet - }() - - private weak var _delegate: UITextFieldDelegate? - - open override var delegate: UITextFieldDelegate? { - get { - return self._delegate - } - set { - self._delegate = newValue - } - } - - // MARK: Status - - public var currentRegion: String { - return self.partialFormatter.currentRegion - } - - public var nationalNumber: String { - let rawNumber = self.text ?? String() - return self.partialFormatter.nationalNumber(from: rawNumber) - } - - public var isValidNumber: Bool { - let rawNumber = self.text ?? String() - do { - _ = try phoneNumberKit.parse(rawNumber, withRegion: currentRegion) - return true - } catch { - return false - } - } - - /** - Returns the current valid phone number. - - returns: PhoneNumber? - */ - public var phoneNumber: PhoneNumber? { - guard let rawNumber = self.text else { return nil } - do { - return try phoneNumberKit.parse(rawNumber, withRegion: currentRegion) - } catch { - return nil - } - } - - open override func layoutSubviews() { - if self.withFlag { // update the width of the flagButton automatically, iOS <13 doesn't handle this for you - let width = self.flagButton.systemLayoutSizeFitting(bounds.size).width - self.flagButton.frame.size.width = width - } - super.layoutSubviews() - } - - // MARK: - Insets - private var insets: UIEdgeInsets? - private var clearButtonPadding: CGFloat? - - // MARK: Lifecycle - - /** - Init with a phone number kit instance. Because a PhoneNumberKit initialization is expensive, - you can pass a pre-initialized instance to avoid incurring perf penalties. - - - parameter phoneNumberKit: A PhoneNumberKit instance to be used by the text field. - - - returns: UITextfield - */ - public convenience init(withPhoneNumberKit phoneNumberKit: PhoneNumberKit) { - self.init(frame: .zero, phoneNumberKit: phoneNumberKit) - } - - /** - Init with frame and phone number kit instance. - - - parameter frame: UITextfield frame - - parameter phoneNumberKit: A PhoneNumberKit instance to be used by the text field. - - - returns: UITextfield - */ - public init(frame: CGRect, phoneNumberKit: PhoneNumberKit) { - self.phoneNumberKit = phoneNumberKit - super.init(frame: frame) - self.setup() - } - - /** - Init with frame - - - parameter frame: UITextfield F - - - returns: UITextfield - */ - public override init(frame: CGRect) { - self.phoneNumberKit = PhoneNumberKit() - super.init(frame: frame) - self.setup() - } - - - /** - Initialize an instance with specific insets and clear button padding. - - This initializer creates an instance of the class with custom UIEdgeInsets and padding for the clear button. - Both of these parameters are used to customize the appearance of the text field and its clear button within the class. - - - Parameters: - - insets: The UIEdgeInsets to be applied to the text field's bounding rectangle. These insets define the padding - that is applied within the text field's bounding rectangle. A UIEdgeInsets value contains insets for - each of the four directions (top, bottom, left, right). Positive values move the content toward the center of the - text field, and negative values move the content toward the edges of the text field. - - clearButtonPadding: The padding to be applied to the clear button. This value defines the space between the clear - button and the edges of the text field. A positive value increases the distance between the clear button and the - text field's edges, and a negative value decreases this distance. - */ - public init(insets: UIEdgeInsets, clearButtonPadding: CGFloat) { - self.phoneNumberKit = PhoneNumberKit() - self.insets = insets - self.clearButtonPadding = clearButtonPadding - super.init(frame: .zero) - self.setup() - } - - /** - Init with coder - - - parameter aDecoder: decoder - - - returns: UITextfield - */ - public required init(coder aDecoder: NSCoder) { - self.phoneNumberKit = PhoneNumberKit() - super.init(coder: aDecoder)! - self.setup() - } - - func setup() { - self.autocorrectionType = .no - self.keyboardType = .phonePad - super.delegate = self - } - - func internationalPrefix(for countryCode: String) -> String? { - guard let countryCode = phoneNumberKit.countryCode(for: currentRegion)?.description else { return nil } - return "+" + countryCode - } - - open func updateFlag() { - guard self.withFlag else { return } - - if let phoneNumber = phoneNumber, - let regionCode = phoneNumber.regionID, - regionCode != currentRegion, - phoneNumber.countryCode == phoneNumberKit.countryCode(for: currentRegion) { - _defaultRegion = regionCode - partialFormatter.defaultRegion = regionCode - } - - let flagBase = UnicodeScalar("🇦").value - UnicodeScalar("A").value - - let flag = self.currentRegion - .uppercased() - .unicodeScalars - .compactMap { UnicodeScalar(flagBase + $0.value)?.description } - .joined() - - self.flagButton.setTitle(flag + " ", for: .normal) - self.flagButton.accessibilityLabel = NSLocalizedString( - "PhoneNumberKit.CountryCodePickerEntryButton.AccessibilityLabel", - value: "Select your country code", - comment: "Accessibility Label for Country Code Picker button") - - if let countryName = Locale.autoupdatingCurrent.localizedString(forRegionCode: self.currentRegion) { - let selectedFormat = NSLocalizedString( - "PhoneNumberKit.CountryCodePickerEntryButton.AccessibilityHint", - value: "%@ selected", - comment: "Accessiblity hint for currently selected country code") - self.flagButton.accessibilityHint = String(format: selectedFormat, countryName) - } - let fontSize = (font ?? UIFont.preferredFont(forTextStyle: .body)).pointSize - self.flagButton.titleLabel?.font = UIFont.systemFont(ofSize: fontSize) - } - - open func updatePlaceholder() { - guard self.withExamplePlaceholder else { return } - if isEditing, !(self.text ?? "").isEmpty { return } // No need to update a placeholder while the placeholder isn't showing - - let format = self.withPrefix ? PhoneNumberFormat.international : .national - let example = self.phoneNumberKit.getFormattedExampleNumber(forCountry: self.currentRegion, withFormat: format, withPrefix: self.withPrefix) ?? "12345678" - let font = self.font ?? UIFont.preferredFont(forTextStyle: .body) - let ph = NSMutableAttributedString(string: example, attributes: [.font: font]) - - #if compiler(>=5.1) - if #available(iOS 13.0, *), self.withPrefix { - // because the textfield will automatically handle insert & removal of the international prefix we make the - // prefix darker to indicate non default behaviour to users, this behaviour currently only happens on iOS 13 - // and above just because that is where we have access to label colors - let firstSpaceIndex = example.firstIndex(where: { $0 == " " }) ?? example.startIndex - - ph.addAttribute(.foregroundColor, value: self.countryCodePlaceholderColor, range: NSRange(.. CursorPosition? { - var repetitionCountFromEnd = 0 - // Check that there is text in the UITextField - guard let text = text, let selectedTextRange = selectedTextRange else { - return nil - } - let textAsNSString = text as NSString - let cursorEnd = offset(from: beginningOfDocument, to: selectedTextRange.end) - // Look for the next valid number after the cursor, when found return a CursorPosition struct - for i in cursorEnd.. NSRange? { - let textAsNSString = formattedText as NSString - var countFromEnd = 0 - guard let cursorPosition = extractCursorPosition() else { - return nil - } - - for i in stride(from: textAsNSString.length - 1, through: 0, by: -1) { - let candidateRange = NSRange(location: i, length: 1) - let candidateCharacter = textAsNSString.substring(with: candidateRange) - if candidateCharacter == cursorPosition.numberAfterCursor { - countFromEnd += 1 - if countFromEnd == cursorPosition.repetitionCountFromEnd { - return candidateRange - } - } - } - - return nil - } - - open func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { - guard let text = text else { - return false - } - - // allow delegate to intervene - guard self._delegate?.textField?(textField, shouldChangeCharactersIn: range, replacementString: string) ?? true else { - return false - } - guard self.isPartialFormatterEnabled else { - return true - } - - // This allows for the case when a user autocompletes a phone number: - if range == NSRange(location: 0, length: 0) && string.isBlank { - return true - } - - let textAsNSString = text as NSString - let changedRange = textAsNSString.substring(with: range) as NSString - let modifiedTextField = textAsNSString.replacingCharacters(in: range, with: string) - - let filteredCharacters = modifiedTextField.filter { - String($0).rangeOfCharacter(from: (textField as! PhoneNumberTextField).nonNumericSet) == nil - } - let rawNumberString = String(filteredCharacters) - - let formattedNationalNumber = self.partialFormatter.formatPartial(rawNumberString as String) - var selectedTextRange: NSRange? - - let nonNumericRange = (changedRange.rangeOfCharacter(from: self.nonNumericSet).location != NSNotFound) - if range.length == 1, string.isEmpty, nonNumericRange { - selectedTextRange = self.selectionRangeForNumberReplacement(textField: textField, formattedText: modifiedTextField) - textField.text = modifiedTextField - } else { - selectedTextRange = self.selectionRangeForNumberReplacement(textField: textField, formattedText: formattedNationalNumber) - textField.text = formattedNationalNumber - } - sendActions(for: .editingChanged) - if let selectedTextRange = selectedTextRange, let selectionRangePosition = textField.position(from: beginningOfDocument, offset: selectedTextRange.location) { - let selectionRange = textField.textRange(from: selectionRangePosition, to: selectionRangePosition) - textField.selectedTextRange = selectionRange - } - - // we change the default region to be the one most recently typed - // but only when the withFlag is true as to not confuse the user who don't see the flag - if withFlag == true - { - self._defaultRegion = self.currentRegion - self.partialFormatter.defaultRegion = self.currentRegion - self.updateFlag() - self.updatePlaceholder() - } - - return false - } - - // MARK: UITextfield Delegate - - open func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { - return self._delegate?.textFieldShouldBeginEditing?(textField) ?? true - } - - open func textFieldDidBeginEditing(_ textField: UITextField) { - if self.withExamplePlaceholder, self.withPrefix, let countryCode = phoneNumberKit.countryCode(for: currentRegion)?.description, (text ?? "").isEmpty { - text = "+" + countryCode + " " - } - self._delegate?.textFieldDidBeginEditing?(textField) - } - - open func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { - return self._delegate?.textFieldShouldEndEditing?(textField) ?? true - } - - open func textFieldDidEndEditing(_ textField: UITextField) { - updateTextFieldDidEndEditing(textField) - self._delegate?.textFieldDidEndEditing?(textField) - } - - open func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) { - updateTextFieldDidEndEditing(textField) - if let _delegate = _delegate { - if (_delegate.responds(to: #selector(textFieldDidEndEditing(_:reason:)))) { - _delegate.textFieldDidEndEditing?(textField, reason: reason) - } else { - _delegate.textFieldDidEndEditing?(textField) - } - } - } - - open func textFieldShouldClear(_ textField: UITextField) -> Bool { - return self._delegate?.textFieldShouldClear?(textField) ?? true - } - - open func textFieldShouldReturn(_ textField: UITextField) -> Bool { - return self._delegate?.textFieldShouldReturn?(textField) ?? true - } - - @available(iOS 13.0, tvOS 13.0, *) - open func textFieldDidChangeSelection(_ textField: UITextField) { - self._delegate?.textFieldDidChangeSelection?(textField) - } - - private func updateTextFieldDidEndEditing(_ textField: UITextField) { - if self.withExamplePlaceholder, self.withPrefix, let countryCode = phoneNumberKit.countryCode(for: currentRegion)?.description, - let text = textField.text, - text == internationalPrefix(for: countryCode) { - textField.text = "" - sendActions(for: .editingChanged) - self.updateFlag() - self.updatePlaceholder() - } - } -} - -extension PhoneNumberTextField: CountryCodePickerDelegate { - - public func countryCodePickerViewControllerDidPickCountry(_ country: CountryCodePickerViewController.Country) { - text = isEditing ? "+" + country.prefix : "" - _defaultRegion = country.code - partialFormatter.defaultRegion = country.code - updateFlag() - updatePlaceholder() - - if let nav = containingViewController?.navigationController, !PhoneNumberKit.CountryCodePicker.forceModalPresentation { - nav.popViewController(animated: true) - } else { - containingViewController?.dismiss(animated: true) - } - } -} - -// MARK: - Insets - -extension PhoneNumberTextField { - - open override func textRect(forBounds bounds: CGRect) -> CGRect { - if let insets = self.insets { - return super.textRect(forBounds: bounds.inset(by: insets)) - } else { - return super.textRect(forBounds: bounds) - } - } - - open override func editingRect(forBounds bounds: CGRect) -> CGRect { - if let insets = self.insets { - return super.editingRect(forBounds: bounds - .inset(by: insets)) - } else { - return super.editingRect(forBounds: bounds) - } - } - - open override func clearButtonRect(forBounds bounds: CGRect) -> CGRect { - if let insets = self.insets, - let clearButtonPadding = self.clearButtonPadding { - return super.clearButtonRect(forBounds: bounds.insetBy(dx: insets.left - clearButtonPadding, dy: 0)) - } else { - return super.clearButtonRect(forBounds: bounds) - } - } -} - - -extension String { - var isBlank: Bool { - return allSatisfy({ $0.isWhitespace }) - } -} - -#endif diff --git a/iosApp/Pods/PhoneNumberKit/README.md b/iosApp/Pods/PhoneNumberKit/README.md deleted file mode 100644 index cbc480b..0000000 --- a/iosApp/Pods/PhoneNumberKit/README.md +++ /dev/null @@ -1,192 +0,0 @@ -![PhoneNumberKit](https://cloud.githubusercontent.com/assets/889949/20864386/a1307950-b9ef-11e6-8a58-e9c5103738e7.png) -[![Platform](https://img.shields.io/cocoapods/p/PhoneNumberKit.svg?maxAge=2592000&style=for-the-badge)](http://cocoapods.org/?q=PhoneNumberKit) -![GitHub Workflow Status (with branch)](https://img.shields.io/github/actions/workflow/status/marmelroy/PhoneNumberKit/pr.yml?branch=master&label=tests&style=for-the-badge) [![Version](http://img.shields.io/cocoapods/v/PhoneNumberKit.svg?style=for-the-badge)](http://cocoapods.org/?q=PhoneNumberKit) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=for-the-badge)](https://github.com/Carthage/Carthage) - -# PhoneNumberKit - -Swift 5.3 framework for parsing, formatting and validating international phone numbers. -Inspired by Google's libphonenumber. - -## Features - -| | Features | -| ---------------- | ------------------------------------------------------------------------------------------- | -| :phone: | Validate, normalize and extract the elements of any phone number string. | -| :100: | Simple Swift syntax and a lightweight readable codebase. | -| :checkered_flag: | Fast. 1000 parses -> ~0.4 seconds. | -| :books: | Best-in-class metadata from Google's libPhoneNumber project. | -| :trophy: | Fully tested to match the accuracy of Google's JavaScript implementation of libPhoneNumber. | -| :iphone: | Built for iOS. Automatically grabs the default region code from the phone. | -| 📝 | Editable (!) AsYouType formatter for UITextField. | -| :us: | Convert country codes to country names and vice versa | - -## Usage - -Import PhoneNumberKit at the top of the Swift file that will interact with a phone number. - -```swift -import PhoneNumberKit -``` - -All of your interactions with PhoneNumberKit happen through a PhoneNumberKit object. The first step you should take is to allocate one. - -A PhoneNumberKit instance is relatively expensive to allocate (it parses the metadata and keeps it in memory for the object's lifecycle), you should try and make sure PhoneNumberKit is allocated once and deallocated when no longer needed. - -```swift -let phoneNumberKit = PhoneNumberKit() -``` - -To parse a string, use the parse function. The region code is automatically computed but can be overridden if needed. PhoneNumberKit automatically does a hard type validation to ensure that the object created is valid, this can be quite costly performance-wise and can be turned off if needed. - -```swift -do { - let phoneNumber = try phoneNumberKit.parse("+33 6 89 017383") - let phoneNumberCustomDefaultRegion = try phoneNumberKit.parse("+44 20 7031 3000", withRegion: "GB", ignoreType: true) -} -catch { - print("Generic parser error") -} -``` - -If you need to parse and validate a large amount of numbers at once, PhoneNumberKit has a special, lightning fast array parsing function. The default region code is automatically computed but can be overridden if needed. Here you can also ignore hard type validation if it is not necessary. Invalid numbers are ignored in the resulting array. - -```swift -let rawNumberArray = ["0291 12345678", "+49 291 12345678", "04134 1234", "09123 12345"] -let phoneNumbers = phoneNumberKit.parse(rawNumberArray) -let phoneNumbersCustomDefaultRegion = phoneNumberKit.parse(rawNumberArray, withRegion: "DE", ignoreType: true) -``` - -PhoneNumber objects are immutable Swift structs with the following properties: - -```swift -phoneNumber.numberString -phoneNumber.countryCode -phoneNumber.nationalNumber -phoneNumber.numberExtension -phoneNumber.type // e.g Mobile or Fixed -``` - -Formatting a PhoneNumber object into a string is also very easy - -```swift -phoneNumberKit.format(phoneNumber, toType: .e164) // +61236618300 -phoneNumberKit.format(phoneNumber, toType: .international) // +61 2 3661 8300 -phoneNumberKit.format(phoneNumber, toType: .national) // (02) 3661 8300 -``` - -## PhoneNumberTextField - -![AsYouTypeFormatter](https://user-images.githubusercontent.com/7651280/67554038-e6512500-f751-11e9-93c9-9111e899a2ef.gif) - -To use the AsYouTypeFormatter, just replace your UITextField with a PhoneNumberTextField (if you are using Interface Builder make sure the module field is set to PhoneNumberKit). - -You can customize your TextField UI in the following ways - -- `withFlag` will display the country code for the `currentRegion`. The `flagButton` is displayed in the `leftView` of the text field with it's size set based off your text size. -- `withExamplePlaceholder` uses `attributedPlaceholder` to show an example number for the `currentRegion`. In addition when `withPrefix` is set, the country code's prefix will automatically be inserted and removed when editing changes. - -PhoneNumberTextField automatically formats phone numbers and gives the user full editing capabilities. If you want to customize you can use the PartialFormatter directly. The default region code is automatically computed but can be overridden if needed (see the example given below). - -```swift -class MyGBTextField: PhoneNumberTextField { - override var defaultRegion: String { - get { - return "GB" - } - set {} // exists for backward compatibility - } -} -``` - -```swift -let textField = PhoneNumberTextField() - -PartialFormatter().formatPartial("+336895555") // +33 6 89 55 55 -``` - -You can also query countries for a dialing code or the dialing code for a given country - -```swift -phoneNumberKit.countries(withCode: 33) -phoneNumberKit.countryCode(for: "FR") -``` - -## Customize Country Picker - -You can customize colors and fonts on the Country Picker View Controller by overriding the property "withDefaultPickerUIOptions" - -```swift -let options = CountryCodePickerOptions( - backgroundColor: UIColor.systemGroupedBackground - separatorColor: UIColor.opaqueSeparator - textLabelColor: UIColor.label - textLabelFont: .preferredFont(forTextStyle: .callout) - detailTextLabelColor: UIColor.secondaryLabel - detailTextLabelFont: .preferredFont(forTextStyle: .body) - tintColor: UIView().tintColor - cellBackgroundColor: UIColor.secondarySystemGroupedBackground - cellBackgroundColorSelection: UIColor.tertiarySystemGroupedBackground -) -textField.withDefaultPickerUIOptions = options -``` - -Or you can change it directly: - -```swift -textField.withDefaultPickerUIOptions.backgroundColor = .red -``` - -Please refer to `CountryCodePickerOptions` for more information about usage and how it affects the view. - - -## Need more customization? - -You can access the metadata powering PhoneNumberKit yourself, this enables you to program any behaviours as they may be implemented in PhoneNumberKit itself. It does mean you are exposed to the less polished interface of the underlying file format. If you program something you find useful please push it upstream! - -```swift -phoneNumberKit.metadata(for: "AU")?.mobile?.exampleNumber // 412345678 -``` - -### [Preferred] Setting up with [Swift Package Manager](https://swiftpm.co/?query=PhoneNumberKit) - -The [Swift Package Manager](https://swift.org/package-manager/) is now the preferred tool for distributing PhoneNumberKit. - -From Xcode 11+ : - -1. Select File > Swift Packages > Add Package Dependency. Enter `https://github.com/marmelroy/PhoneNumberKit.git` in the "Choose Package Repository" dialog. -2. In the next page, specify the version resolving rule as "Up to Next Major" from "3.6.0". -3. After Xcode checked out the source and resolving the version, you can choose the "PhoneNumberKit" library and add it to your app target. - -For more info, read [Adding Package Dependencies to Your App](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app) from Apple. - -Alternatively, you can also add PhoneNumberKit to your `Package.swift` file: - -```swift -dependencies: [ - .package(url: "https://github.com/marmelroy/PhoneNumberKit", from: "3.6.0") -] -``` - -### Setting up with Carthage - -[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application. - -You can install Carthage with [Homebrew](http://brew.sh/) using the following command: - -```bash -$ brew update -$ brew install carthage -``` - -To integrate PhoneNumberKit into your Xcode project using Carthage, specify it in your `Cartfile`: - -```ogdl -github "marmelroy/PhoneNumberKit" -``` - -### Setting up with [CocoaPods](http://cocoapods.org/?q=PhoneNumberKit) - -```ruby -pod 'PhoneNumberKit', '~> 3.6' -``` diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj index 4d99862..f2fc984 100644 --- a/iosApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -9,218 +9,58 @@ /* Begin PBXAggregateTarget section */ 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */ = { isa = PBXAggregateTarget; - buildConfigurationList = 6FECE8E15F2F56BC8351B04D0BAE14BE /* Build configuration list for PBXAggregateTarget "multiplatformContact" */; + buildConfigurationList = 66E0C086005E030B6F10ACC6D39B6DC6 /* Build configuration list for PBXAggregateTarget "multiplatformContact" */; buildPhases = ( - 802B5C7A4CC266816EE3E78E781CBAF5 /* [CP-User] Build multiplatformContact */, + DA154C32F2819683085E72C8C157E0BE /* [CP-User] Build multiplatformContact */, ); dependencies = ( - 5019C052F98099A002C27025B1539EF4 /* PBXTargetDependency */, - AF144B775869EE38833972A8515C6060 /* PBXTargetDependency */, ); name = multiplatformContact; }; /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 05B096C5DBFE24C06E8A6B72667120D9 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FB71323A2CEDF312522F722B6D118F1 /* NSRegularExpression+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */; }; - 1000D9AEBA85E25C1FBF524165316CFE /* PhoneNumberParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */; }; - 1D249CA00DB33AA343F596FEEB4BC3CE /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E89E35C5E182E0F10B184521AFB1456 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */; }; - 1F58DF9B3FBD1ABCBCF7A4105D8FF96C /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20479AACC55DFFFFBC0B42B8D3C94102 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2F36A95BD47FDB2CC1FD51AFC08A8D5A /* CoreTelephony.framework */; }; - 2390DD18794EBCB0FC7B8E7E8C2A07B5 /* Bundle+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */; }; - 2840AB863DF84B3435536366454B3228 /* NSArray+NBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2927AFA57B3DB98DC0D092A2D79F6DAF /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B8679564FB44CA974F6866145DA4CE0 /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3166EE4BFF52BE25B07F9D8BFA487BA6 /* PhoneNumberKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3445FE96D35A3F4F2DE5AD5210FABAC8 /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3526CB281B853768A869EC963FB7275C /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */; }; - 35A06389E150A54A6E27935BC82BD99C /* PhoneNumberMetadata.json in Resources */ = {isa = PBXBuildFile; fileRef = 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */; }; - 3A8DA368002721A9F14DD3AE53880E0B /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42AFC082890A295AE5671EAB165B3865 /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47892BC610F39957CC665F61106C7C54 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4E67EC4AFA6B8EC9044BB0997F3A68E3 /* PhoneNumberTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */; }; - 521E5C6BB548A57D6853D356AB0FC043 /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */; }; - 58894EEAF3A3967440B4011AF26E0A50 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */; }; - 5A7C5BBBC708E39B709BB90FE6A98D15 /* ParseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */; }; - 5F976AD73176DFD883BCABB720BD35AF /* PhoneNumber+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */; }; - 5FA5D639126C8DB2C0ABCB36AD6EAFBA /* CountryCodePickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */; }; - 6033666E799437E615B5559ADC197277 /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */; }; - 625EEF924FCA8FD7AB4390A85E55EC21 /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 67AF83238CCD31D448D5F5C291D7F7E1 /* RegexManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */; }; - 6887B8A6F1A5A8BAEB8B4225CCA3E0A9 /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7A05F0DFFBA35FC29EDA33C14BC1AB55 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7CBF0088F2C651A8BD40B1907136226C /* PhoneNumberFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */; }; - 85293AB11BCC819609B57E8CFA9446EC /* libPhoneNumber-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */; }; - 86CEDDFAF66F0E1378675995067A4A3C /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91E4B84F36B56460984DAA17CC674809 /* libPhoneNumber-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92FB501A664562789BA4F51F5005BD6D /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94963BE56F8B5C02460E10A7516D79A9 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 955CD9C12D0A29CD2BC5DD300234671B /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9AD5F666218C95E9FB5319E69441DC5A /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A121BCD209C84F555DEC4D3BD71B1A0D /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A842B8DE8CA37C87282C6DA13B6E7F19 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */; }; - A9430136EECF2BEB637F11795455B8E9 /* MetadataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */; }; - B4FB4FE114ED104390B193C141C67B5F /* NSArray+NBAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA6FFCF3F70CE917090C3B1E547B8D10 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BBB97D788FDF6D94A2231A1394C44AE6 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BFA8E4A26B9635B0EBD49C6618DAF802 /* CountryCodePickerOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */; }; - CA5FBEB7DE6030D9404A3E2B6AB5475A /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CF99B850B8EC239DCD08E458E2BB50D5 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */; }; - D8501BF537D8A9A0AB6BEDC905CCB4E6 /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DEA3DE4EA6E32B165CF0F9A533A6B28F /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF2C2C402DB1475158BE2F5245B50F8A /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3DEEF69A6F112E2B0E91B582617815B /* MetadataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */; }; - F13DF3E21C705A8BD9BABAADFF778028 /* PhoneNumberKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */; }; - F1DB4D0F6B76E1F2DB5DBDE42822380C /* PhoneNumberKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */; }; - F32AEB7F807279B10C4A9C8DC107C7BD /* PartialFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */; }; - F85AF515EA7A9C451B3427C99B5A675E /* MetadataParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */; }; + 410F68BDC69466BCEA0F51489C82E15A /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8252EF4DA567716D3FE6BFA65902CA28 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */; }; + 8A6248DC582BF1F1219B2724F364D3AF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 38411F75B2729CD2C32D77AC299B5999 /* PBXContainerItemProxy */ = { + 4C6013B8AB9F6E1F284B0F5722A05AFB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 18A7947D7AA498985D397D562F5C4DC0; remoteInfo = multiplatformContact; }; - 48B0FF678CA9C14E135894A5DAAFF7BC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BECD36891A8DC297700F9296F5634B97; - remoteInfo = "libPhoneNumber-iOS"; - }; - 5433DACEFA172C9A4B41810E491FE300 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C942A9CCE5CF382E8053D9757DA6249D; - remoteInfo = PhoneNumberKit; - }; - CEEA6D59C2AC1812C0B5537B8B329172 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BECD36891A8DC297700F9296F5634B97; - remoteInfo = "libPhoneNumber-iOS"; - }; - F19CEBEB71195F286CC5ACD661BAE11C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C942A9CCE5CF382E8053D9757DA6249D; - remoteInfo = PhoneNumberKit; - }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bundle+Resources.swift"; path = "PhoneNumberKit/Bundle+Resources.swift"; sourceTree = ""; }; - 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; - 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParseManager.swift; path = PhoneNumberKit/ParseManager.swift; sourceTree = ""; }; 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; - 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataHelper.h; path = libPhoneNumber/NBMetadataHelper.h; sourceTree = ""; }; - 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CountryCodePickerViewController.swift; path = PhoneNumberKit/UI/CountryCodePickerViewController.swift; sourceTree = ""; }; - 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneMetaData.m; path = libPhoneNumber/NBPhoneMetaData.m; sourceTree = ""; }; - 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libPhoneNumber-iOS-umbrella.h"; sourceTree = ""; }; - 11C9B998CE0869936AE6BE69270DAAC9 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; - 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataManager.swift; path = PhoneNumberKit/MetadataManager.swift; sourceTree = ""; }; - 1EA8EEBF967AA2975BC661B17CD80AE9 /* PhoneNumberKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "PhoneNumberKit-Info.plist"; sourceTree = ""; }; - 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumberDesc.m; path = libPhoneNumber/NBPhoneNumberDesc.m; sourceTree = ""; }; - 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; - 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */ = {isa = PBXFileReference; includeInIndex = 1; name = PhoneNumberMetadata.json; path = PhoneNumberKit/Resources/PhoneNumberMetadata.json; sourceTree = ""; }; - 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumber.m; path = libPhoneNumber/NBPhoneNumber.m; sourceTree = ""; }; - 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberDesc.h; path = libPhoneNumber/NBPhoneNumberDesc.h; sourceTree = ""; }; - 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Formatter.swift; path = PhoneNumberKit/Formatter.swift; sourceTree = ""; }; - 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 2F36A95BD47FDB2CC1FD51AFC08A8D5A /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreTelephony.framework; sourceTree = DEVELOPER_DIR; }; - 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PhoneNumberKit.release.xcconfig; sourceTree = ""; }; - 3EA6878D6455FFE85E3E796E0621A07E /* libPhoneNumber-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "libPhoneNumber-iOS.modulemap"; sourceTree = ""; }; - 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+NBAdditions.m"; path = "libPhoneNumber/NSArray+NBAdditions.m"; sourceTree = ""; }; - 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "libPhoneNumber-iOS"; path = libPhoneNumber_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberKit.swift; path = PhoneNumberKit/PhoneNumberKit.swift; sourceTree = ""; }; - 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreMapper.h; path = libPhoneNumber/NBMetadataCoreMapper.h; sourceTree = ""; }; - 55ABB06C8A1800962A74E007E7733796 /* Pods-iosApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-frameworks.sh"; sourceTree = ""; }; - 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+NBAdditions.h"; path = "libPhoneNumber/NSArray+NBAdditions.h"; sourceTree = ""; }; - 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneMetaData.h; path = libPhoneNumber/NBPhoneMetaData.h; sourceTree = ""; }; - 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreTestMapper.h; path = libPhoneNumber/NBMetadataCoreTestMapper.h; sourceTree = ""; }; - 69681285C13FB58876DD5727BCB2DC85 /* PhoneNumberKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PhoneNumberKit; path = PhoneNumberKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberFormatter.swift; path = PhoneNumberKit/PhoneNumberFormatter.swift; sourceTree = ""; }; - 6F3B5FED07117E377CFAC3D49B490F17 /* Pods-iosApp-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-resources.sh"; sourceTree = ""; }; - 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataParsing.swift; path = PhoneNumberKit/MetadataParsing.swift; sourceTree = ""; }; - 76A263267985B0185D85E24D40FCEE9A /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; - 76D28488EA8CF5C697DFF07967A9960E /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; - 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberUtil.h; path = libPhoneNumber/NBPhoneNumberUtil.h; sourceTree = ""; }; - 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "libPhoneNumber-iOS.debug.xcconfig"; sourceTree = ""; }; - 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBNumberFormat.m; path = libPhoneNumber/NBNumberFormat.m; sourceTree = ""; }; - 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PhoneNumberKit-umbrella.h"; sourceTree = ""; }; - 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "libPhoneNumber-iOS.release.xcconfig"; sourceTree = ""; }; - 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberParser.swift; path = PhoneNumberKit/PhoneNumberParser.swift; sourceTree = ""; }; - 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumber.swift; path = PhoneNumberKit/PhoneNumber.swift; sourceTree = ""; }; - 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PhoneNumberKit.debug.xcconfig; sourceTree = ""; }; - 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "libPhoneNumber-iOS-dummy.m"; sourceTree = ""; }; - 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCore.m; path = libPhoneNumber/NBMetadataCore.m; sourceTree = ""; }; - 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreTest.m; path = libPhoneNumber/NBMetadataCoreTest.m; sourceTree = ""; }; - 9D43D53CBE6073F141D6A18DF828881B /* PhoneNumberKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PhoneNumberKit-prefix.pch"; sourceTree = ""; }; + 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-resources.sh"; sourceTree = ""; }; + 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; + 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; + 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; + 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; + 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9EE28FAC4A40F75EA163AEF99E5B3B3B /* PhoneNumberKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PhoneNumberKit.modulemap; sourceTree = ""; }; A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; - A75EAC5A02AC977F838EBE9EA90916A6 /* libPhoneNumber-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libPhoneNumber-iOS-prefix.pch"; sourceTree = ""; }; - B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCoreTest.h; path = libPhoneNumber/NBMetadataCoreTest.h; sourceTree = ""; }; - B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumber.h; path = libPhoneNumber/NBPhoneNumber.h; sourceTree = ""; }; B097DD7534E741D5C41838011D755842 /* Pods-iosApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-iosApp"; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B16E16217E19536CD371A6E6D907FB85 /* libPhoneNumber-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "libPhoneNumber-iOS-Info.plist"; sourceTree = ""; }; - B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBMetadataCore.h; path = libPhoneNumber/NBMetadataCore.h; sourceTree = ""; }; - B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataHelper.m; path = libPhoneNumber/NBMetadataHelper.m; sourceTree = ""; }; - BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "PhoneNumber+Codable.swift"; path = "PhoneNumberKit/PhoneNumber+Codable.swift"; sourceTree = ""; }; - BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CountryCodePickerOptions.swift; path = PhoneNumberKit/UI/CountryCodePickerOptions.swift; sourceTree = ""; }; - C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBNumberFormat.h; path = libPhoneNumber/NBNumberFormat.h; sourceTree = ""; }; - CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBPhoneNumberDefines.h; path = libPhoneNumber/NBPhoneNumberDefines.h; sourceTree = ""; }; - CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PartialFormatter.swift; path = PhoneNumberKit/PartialFormatter.swift; sourceTree = ""; }; - CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PhoneNumberTextField.swift; path = PhoneNumberKit/UI/PhoneNumberTextField.swift; sourceTree = ""; }; - D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RegexManager.swift; path = PhoneNumberKit/RegexManager.swift; sourceTree = ""; }; - D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreTestMapper.m; path = libPhoneNumber/NBMetadataCoreTestMapper.m; sourceTree = ""; }; DA248089480B703A6CF0F4D5F0763457 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBAsYouTypeFormatter.m; path = libPhoneNumber/NBAsYouTypeFormatter.m; sourceTree = ""; }; - DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = PhoneNumberKit/Constants.swift; sourceTree = ""; }; DC2AE9C0FD053575A7EF1FBE46EF0937 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; - DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBMetadataCoreMapper.m; path = libPhoneNumber/NBMetadataCoreMapper.m; sourceTree = ""; }; - DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSRegularExpression+Swift.swift"; path = "PhoneNumberKit/NSRegularExpression+Swift.swift"; sourceTree = ""; }; DF13595F9FCDA7331E581063939A7AFE /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/ios/shared/compose-resources"; sourceTree = ""; }; - E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MetadataTypes.swift; path = PhoneNumberKit/MetadataTypes.swift; sourceTree = ""; }; - E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - E4C923318724794E3CC670804C2D6A6B /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; - E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; - E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NBAsYouTypeFormatter.h; path = libPhoneNumber/NBAsYouTypeFormatter.h; sourceTree = ""; }; - F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NBPhoneNumberUtil.m; path = libPhoneNumber/NBPhoneNumberUtil.m; sourceTree = ""; }; - F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PhoneNumberKit-dummy.m"; sourceTree = ""; }; + F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; + F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 605448D15DC00A44741F9AA30D5C4748 /* Frameworks */ = { + F265F63B189C88C0D8828B96C23E3FA0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 58894EEAF3A3967440B4011AF26E0A50 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A154FC3F27FAEB3747D141BFA48036B8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 20479AACC55DFFFFBC0B42B8D3C94102 /* CoreTelephony.framework in Frameworks */, - A842B8DE8CA37C87282C6DA13B6E7F19 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - AD4245D3D8D7431F607B951143688628 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1E89E35C5E182E0F10B184521AFB1456 /* Foundation.framework in Frameworks */, + 8A6248DC582BF1F1219B2724F364D3AF /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -239,27 +79,20 @@ path = ../../multiplatformContact; sourceTree = ""; }; - 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { + 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */ = { isa = PBXGroup; children = ( - A48867DF2FFB0F2ADFC31801B07EB6DB /* iOS */, + 4C16E8CC03E90AF9CABF8C82B813AE97 /* Pods-iosApp */, ); - name = Frameworks; + name = "Targets Support Files"; sourceTree = ""; }; - 1F4B73C2A100975B61C90B2A65E5C5AE /* Support Files */ = { + 1F86AA6785DF34AFD5A71790761717DE /* Products */ = { isa = PBXGroup; children = ( - 9EE28FAC4A40F75EA163AEF99E5B3B3B /* PhoneNumberKit.modulemap */, - F4B72E6A1C4E1C563C02B4865A25FDD2 /* PhoneNumberKit-dummy.m */, - 1EA8EEBF967AA2975BC661B17CD80AE9 /* PhoneNumberKit-Info.plist */, - 9D43D53CBE6073F141D6A18DF828881B /* PhoneNumberKit-prefix.pch */, - 83234C96872A3296DEC0653623AB3219 /* PhoneNumberKit-umbrella.h */, - 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */, - 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */, + B097DD7534E741D5C41838011D755842 /* Pods-iosApp */, ); - name = "Support Files"; - path = "../Target Support Files/PhoneNumberKit"; + name = Products; sourceTree = ""; }; 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */ = { @@ -270,57 +103,21 @@ name = "Development Pods"; sourceTree = ""; }; - 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */ = { + 4C16E8CC03E90AF9CABF8C82B813AE97 /* Pods-iosApp */ = { isa = PBXGroup; children = ( - 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */, - 69681285C13FB58876DD5727BCB2DC85 /* PhoneNumberKit */, - B097DD7534E741D5C41838011D755842 /* Pods-iosApp */, + FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */, + 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */, + F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */, + 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */, + 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */, + 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */, + 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */, + F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */, + 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */, ); - name = Products; - sourceTree = ""; - }; - 419D3E61306504E0C4A663417E50618D /* libPhoneNumber-iOS */ = { - isa = PBXGroup; - children = ( - E721C0B9787BF621CD9BC6167CFB8639 /* NBAsYouTypeFormatter.h */, - DB6970CB4508A4A41145D78D5371DE13 /* NBAsYouTypeFormatter.m */, - B37711253E6B214BAF33983FCB24B0E0 /* NBMetadataCore.h */, - 9400BEBA57B06065972CB6BF556E87FB /* NBMetadataCore.m */, - 4642BF8C76C1EEA9681B5F40325E299A /* NBMetadataCoreMapper.h */, - DE4D8F4B2AE8D1839BCF466A142F4D01 /* NBMetadataCoreMapper.m */, - B03D6A6FD3346E516B1668F74AD9AF86 /* NBMetadataCoreTest.h */, - 9555FFBAC25065CC231C5069DD6DEAAF /* NBMetadataCoreTest.m */, - 668CB0722D056E63D2DDE195BC9111EE /* NBMetadataCoreTestMapper.h */, - D7B8B18112CFE03096F37FA3DCB83E0A /* NBMetadataCoreTestMapper.m */, - 0A8286C5DE227380F5AD1B92E008AFF2 /* NBMetadataHelper.h */, - B4A8E036A206E9E0C8054D6C189361F7 /* NBMetadataHelper.m */, - C8448634ACF3F9BDDBEFD40D5B95D0EF /* NBNumberFormat.h */, - 823BA7B5622BE6C406453583F03015E9 /* NBNumberFormat.m */, - 663B5902D5A2759AA14D40FAA0904CBE /* NBPhoneMetaData.h */, - 1126D67F756F368B66A7F0DE1FD39A98 /* NBPhoneMetaData.m */, - B0492A70AA410DE430EBBC16E9EDF75A /* NBPhoneNumber.h */, - 29F4F42FFED2FA5A46587CA08F9CFA73 /* NBPhoneNumber.m */, - CC6C0F050F4586370265EA3F9D847572 /* NBPhoneNumberDefines.h */, - 2AAAE61C492ED7066336A108D24C4019 /* NBPhoneNumberDesc.h */, - 227AC6A6C57C8F08A6338C436546BB52 /* NBPhoneNumberDesc.m */, - 7CB94F29F660B13591EAD3C7CF41144A /* NBPhoneNumberUtil.h */, - F12DC833C40375D955BA4FBA2DCD22FE /* NBPhoneNumberUtil.m */, - 5BCD7658EBC03619BF568FFF60792FD0 /* NSArray+NBAdditions.h */, - 40182D62D5EADB453E526459C491B4AE /* NSArray+NBAdditions.m */, - AB6845ADF631C70FB5112533FF95F660 /* Support Files */, - ); - name = "libPhoneNumber-iOS"; - path = "libPhoneNumber-iOS"; - sourceTree = ""; - }; - 4BDEE3376B110E6BDCBDA4A99686FCF9 /* Pods */ = { - isa = PBXGroup; - children = ( - 419D3E61306504E0C4A663417E50618D /* libPhoneNumber-iOS */, - 81EF83EA4D847AACCFA9B95070570D4F /* PhoneNumberKit */, - ); - name = Pods; + name = "Pods-iosApp"; + path = "Target Support Files/Pods-iosApp"; sourceTree = ""; }; 657E76C0A9A155724851DD8C94C176C1 /* Frameworks */ = { @@ -341,77 +138,6 @@ path = "../iosApp/Pods/Target Support Files/multiplatformContact"; sourceTree = ""; }; - 81EF83EA4D847AACCFA9B95070570D4F /* PhoneNumberKit */ = { - isa = PBXGroup; - children = ( - ED9462BD9C90B6DAAAFF089618AC8830 /* PhoneNumberKitCore */, - 1F4B73C2A100975B61C90B2A65E5C5AE /* Support Files */, - 88E8FC36893243F9D73454A992A18AA8 /* UIKit */, - ); - name = PhoneNumberKit; - path = PhoneNumberKit; - sourceTree = ""; - }; - 88E8FC36893243F9D73454A992A18AA8 /* UIKit */ = { - isa = PBXGroup; - children = ( - BDAF7CBD64DBAAB365DF74DA8AF72F39 /* CountryCodePickerOptions.swift */, - 0C2B9A9B555AA4262E8506D07F967266 /* CountryCodePickerViewController.swift */, - CE67FA841392BDF6D41C2BF65C5533D4 /* PhoneNumberTextField.swift */, - ); - name = UIKit; - sourceTree = ""; - }; - 8C95AC170F5EDEB9F2FBBD095D21CCF5 /* Resources */ = { - isa = PBXGroup; - children = ( - 296FE16F983F47CACE3B7644EA5A798C /* PhoneNumberMetadata.json */, - ); - name = Resources; - sourceTree = ""; - }; - A48867DF2FFB0F2ADFC31801B07EB6DB /* iOS */ = { - isa = PBXGroup; - children = ( - 2F36A95BD47FDB2CC1FD51AFC08A8D5A /* CoreTelephony.framework */, - 2D8F0B1C5A0556606586120DDD58696B /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; - AB6845ADF631C70FB5112533FF95F660 /* Support Files */ = { - isa = PBXGroup; - children = ( - 3EA6878D6455FFE85E3E796E0621A07E /* libPhoneNumber-iOS.modulemap */, - 90AAE424B0B124B3C3A8ACC5FB62E371 /* libPhoneNumber-iOS-dummy.m */, - B16E16217E19536CD371A6E6D907FB85 /* libPhoneNumber-iOS-Info.plist */, - A75EAC5A02AC977F838EBE9EA90916A6 /* libPhoneNumber-iOS-prefix.pch */, - 11899E2BF86CC26E85E0B62C738F26A6 /* libPhoneNumber-iOS-umbrella.h */, - 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */, - 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/libPhoneNumber-iOS"; - sourceTree = ""; - }; - BA6B7BC2729F657E9D3682E55CA6E980 /* Pods-iosApp */ = { - isa = PBXGroup; - children = ( - 11C9B998CE0869936AE6BE69270DAAC9 /* Pods-iosApp.modulemap */, - E4C923318724794E3CC670804C2D6A6B /* Pods-iosApp-acknowledgements.markdown */, - 76D28488EA8CF5C697DFF07967A9960E /* Pods-iosApp-acknowledgements.plist */, - E6DB2A5F5DADA1DDE45F36B1A2D6AC16 /* Pods-iosApp-dummy.m */, - 55ABB06C8A1800962A74E007E7733796 /* Pods-iosApp-frameworks.sh */, - 76A263267985B0185D85E24D40FCEE9A /* Pods-iosApp-Info.plist */, - 6F3B5FED07117E377CFAC3D49B490F17 /* Pods-iosApp-resources.sh */, - 015E0D7EA7331961AB63E5AFECA86BB5 /* Pods-iosApp-umbrella.h */, - E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */, - 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */, - ); - name = "Pods-iosApp"; - path = "Target Support Files/Pods-iosApp"; - sourceTree = ""; - }; C7AB6E714D2F274DAA83091C9828E98D /* Pod */ = { isa = PBXGroup; children = ( @@ -425,138 +151,55 @@ children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */, - 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, - 4BDEE3376B110E6BDCBDA4A99686FCF9 /* Pods */, - 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */, - D456857FB6E5BC3266BEC21401D60DB5 /* Targets Support Files */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 1F86AA6785DF34AFD5A71790761717DE /* Products */, + 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */, ); sourceTree = ""; }; - D456857FB6E5BC3266BEC21401D60DB5 /* Targets Support Files */ = { + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { isa = PBXGroup; children = ( - BA6B7BC2729F657E9D3682E55CA6E980 /* Pods-iosApp */, + E4801F62A6B08CD9B5410329F1A18FDE /* iOS */, ); - name = "Targets Support Files"; + name = Frameworks; sourceTree = ""; }; - ED9462BD9C90B6DAAAFF089618AC8830 /* PhoneNumberKitCore */ = { + E4801F62A6B08CD9B5410329F1A18FDE /* iOS */ = { isa = PBXGroup; children = ( - 0031A52F81D05C3ECDE9C67BE224C487 /* Bundle+Resources.swift */, - DBF53A92A42FC2C16B79805ADE539CEF /* Constants.swift */, - 2C8C32A066D6B864FFF68F98E01AB686 /* Formatter.swift */, - 153588299935A26D4369E4255C874BF6 /* MetadataManager.swift */, - 717B57B9C551DE77CF612E3C062FD491 /* MetadataParsing.swift */, - E110813A85816DB35319078C56E7C92E /* MetadataTypes.swift */, - DEDF373999FFFA769899992BB81EBA71 /* NSRegularExpression+Swift.swift */, - 076DCA16FE05C118A6C4830E447469F3 /* ParseManager.swift */, - CC99286EFD90722C2C6E69B3CBDAE891 /* PartialFormatter.swift */, - 8C8215246FD680001B5F88A1D236A733 /* PhoneNumber.swift */, - BC0828A7AED782D71C279FBF22A428F0 /* PhoneNumber+Codable.swift */, - 6DE5595B50EE5867255E3C8C543886CE /* PhoneNumberFormatter.swift */, - 42C43B467EBCEB586C2BB6308C41A163 /* PhoneNumberKit.swift */, - 898DA4F74BF9FDAB06D126C699ACE438 /* PhoneNumberParser.swift */, - D2F9DCF5560865E63E245AE9A8ED3280 /* RegexManager.swift */, - 8C95AC170F5EDEB9F2FBBD095D21CCF5 /* Resources */, + 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */, ); - name = PhoneNumberKitCore; + name = iOS; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 15A21756203441DADB6427BEA9E3F529 /* Headers */ = { + 7021244F70B8F8B43610F0504B5965BC /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1D249CA00DB33AA343F596FEEB4BC3CE /* Pods-iosApp-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 23D3E789F458C9F848FFCEC3976BD47D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 3166EE4BFF52BE25B07F9D8BFA487BA6 /* PhoneNumberKit-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 275592CC12BEBD91BFA2C0FCE2A4338F /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 91E4B84F36B56460984DAA17CC674809 /* libPhoneNumber-iOS-umbrella.h in Headers */, - D8501BF537D8A9A0AB6BEDC905CCB4E6 /* NBAsYouTypeFormatter.h in Headers */, - 92FB501A664562789BA4F51F5005BD6D /* NBMetadataCore.h in Headers */, - 3A8DA368002721A9F14DD3AE53880E0B /* NBMetadataCoreMapper.h in Headers */, - 86CEDDFAF66F0E1378675995067A4A3C /* NBMetadataCoreTest.h in Headers */, - 2927AFA57B3DB98DC0D092A2D79F6DAF /* NBMetadataCoreTestMapper.h in Headers */, - DEA3DE4EA6E32B165CF0F9A533A6B28F /* NBMetadataHelper.h in Headers */, - DF2C2C402DB1475158BE2F5245B50F8A /* NBNumberFormat.h in Headers */, - 955CD9C12D0A29CD2BC5DD300234671B /* NBPhoneMetaData.h in Headers */, - 9AD5F666218C95E9FB5319E69441DC5A /* NBPhoneNumber.h in Headers */, - 05B096C5DBFE24C06E8A6B72667120D9 /* NBPhoneNumberDefines.h in Headers */, - 1F58DF9B3FBD1ABCBCF7A4105D8FF96C /* NBPhoneNumberDesc.h in Headers */, - 42AFC082890A295AE5671EAB165B3865 /* NBPhoneNumberUtil.h in Headers */, - B4FB4FE114ED104390B193C141C67B5F /* NSArray+NBAdditions.h in Headers */, + 410F68BDC69466BCEA0F51489C82E15A /* Pods-iosApp-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 53C2A67E2BBE784DA13C7DE28AB53DA0 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */; - buildPhases = ( - 275592CC12BEBD91BFA2C0FCE2A4338F /* Headers */, - 2B61CA28367E4764711BE0B62E5D0AD1 /* Sources */, - A154FC3F27FAEB3747D141BFA48036B8 /* Frameworks */, - 3133D04BC7249E2170F8AE5F0CF27731 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "libPhoneNumber-iOS"; - productName = libPhoneNumber_iOS; - productReference = 421ABAD2F376C4185F388A387E2E4655 /* libPhoneNumber-iOS */; - productType = "com.apple.product-type.framework"; - }; - C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = D69A2690A19DB6C00652BF4FC6D081BD /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */; - buildPhases = ( - 23D3E789F458C9F848FFCEC3976BD47D /* Headers */, - 2180A9BF07E91A8FCA69CD5A6EFF7ECF /* Sources */, - 605448D15DC00A44741F9AA30D5C4748 /* Frameworks */, - EB80D0D867EF4A6B21AEE76E3DEBA15E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PhoneNumberKit; - productName = PhoneNumberKit; - productReference = 69681285C13FB58876DD5727BCB2DC85 /* PhoneNumberKit */; - productType = "com.apple.product-type.framework"; - }; ED39C638569286489CD697A6C8964146 /* Pods-iosApp */ = { isa = PBXNativeTarget; - buildConfigurationList = 14930E85E04E5EFAE1C2ACAB80E07A0A /* Build configuration list for PBXNativeTarget "Pods-iosApp" */; + buildConfigurationList = 8B6FB5C2E3324644D6DC7A8E48985264 /* Build configuration list for PBXNativeTarget "Pods-iosApp" */; buildPhases = ( - 15A21756203441DADB6427BEA9E3F529 /* Headers */, - 91D3B6862BCEC8670824FC89FE0FD93A /* Sources */, - AD4245D3D8D7431F607B951143688628 /* Frameworks */, - D85A77373AC95A7C870F6D3AC828A362 /* Resources */, + 7021244F70B8F8B43610F0504B5965BC /* Headers */, + 4D35E770AD868B5057A12340DF31BA27 /* Sources */, + F265F63B189C88C0D8828B96C23E3FA0 /* Frameworks */, + FB94900FF3B1DC70DE5370C7E36F75AF /* Resources */, ); buildRules = ( ); dependencies = ( - B4ABE96E31A669CFFA832F54210F011D /* PBXTargetDependency */, - 6E23E07C721EA306BD094E4B8C6F5F03 /* PBXTargetDependency */, - 42D083C68EA3F69C64E9F609B20F02B6 /* PBXTargetDependency */, + C7DF6D20C4F0BFD6CDFFA604BE51639F /* PBXTargetDependency */, ); name = "Pods-iosApp"; productName = Pods_iosApp; @@ -583,45 +226,28 @@ mainGroup = CF1408CF629C7361332E53B88F7BD30C; minimizedProjectReferenceProxies = 0; preferredProjectObjectVersion = 77; - productRefGroup = 414A5066EE17FD0212F7F94A91CB1AC1 /* Products */; + productRefGroup = 1F86AA6785DF34AFD5A71790761717DE /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */, 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */, - C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */, ED39C638569286489CD697A6C8964146 /* Pods-iosApp */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 3133D04BC7249E2170F8AE5F0CF27731 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D85A77373AC95A7C870F6D3AC828A362 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EB80D0D867EF4A6B21AEE76E3DEBA15E /* Resources */ = { + FB94900FF3B1DC70DE5370C7E36F75AF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 35A06389E150A54A6E27935BC82BD99C /* PhoneNumberMetadata.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 802B5C7A4CC266816EE3E78E781CBAF5 /* [CP-User] Build multiplatformContact */ = { + DA154C32F2819683085E72C8C157E0BE /* [CP-User] Build multiplatformContact */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -634,99 +260,29 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 2180A9BF07E91A8FCA69CD5A6EFF7ECF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2390DD18794EBCB0FC7B8E7E8C2A07B5 /* Bundle+Resources.swift in Sources */, - CF99B850B8EC239DCD08E458E2BB50D5 /* Constants.swift in Sources */, - BFA8E4A26B9635B0EBD49C6618DAF802 /* CountryCodePickerOptions.swift in Sources */, - 5FA5D639126C8DB2C0ABCB36AD6EAFBA /* CountryCodePickerViewController.swift in Sources */, - 521E5C6BB548A57D6853D356AB0FC043 /* Formatter.swift in Sources */, - A9430136EECF2BEB637F11795455B8E9 /* MetadataManager.swift in Sources */, - F85AF515EA7A9C451B3427C99B5A675E /* MetadataParsing.swift in Sources */, - E3DEEF69A6F112E2B0E91B582617815B /* MetadataTypes.swift in Sources */, - 0FB71323A2CEDF312522F722B6D118F1 /* NSRegularExpression+Swift.swift in Sources */, - 5A7C5BBBC708E39B709BB90FE6A98D15 /* ParseManager.swift in Sources */, - F32AEB7F807279B10C4A9C8DC107C7BD /* PartialFormatter.swift in Sources */, - 6033666E799437E615B5559ADC197277 /* PhoneNumber.swift in Sources */, - 5F976AD73176DFD883BCABB720BD35AF /* PhoneNumber+Codable.swift in Sources */, - 7CBF0088F2C651A8BD40B1907136226C /* PhoneNumberFormatter.swift in Sources */, - F1DB4D0F6B76E1F2DB5DBDE42822380C /* PhoneNumberKit.swift in Sources */, - F13DF3E21C705A8BD9BABAADFF778028 /* PhoneNumberKit-dummy.m in Sources */, - 1000D9AEBA85E25C1FBF524165316CFE /* PhoneNumberParser.swift in Sources */, - 4E67EC4AFA6B8EC9044BB0997F3A68E3 /* PhoneNumberTextField.swift in Sources */, - 67AF83238CCD31D448D5F5C291D7F7E1 /* RegexManager.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2B61CA28367E4764711BE0B62E5D0AD1 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 85293AB11BCC819609B57E8CFA9446EC /* libPhoneNumber-iOS-dummy.m in Sources */, - 625EEF924FCA8FD7AB4390A85E55EC21 /* NBAsYouTypeFormatter.m in Sources */, - CA5FBEB7DE6030D9404A3E2B6AB5475A /* NBMetadataCore.m in Sources */, - 6887B8A6F1A5A8BAEB8B4225CCA3E0A9 /* NBMetadataCoreMapper.m in Sources */, - BA6FFCF3F70CE917090C3B1E547B8D10 /* NBMetadataCoreTest.m in Sources */, - 47892BC610F39957CC665F61106C7C54 /* NBMetadataCoreTestMapper.m in Sources */, - 3445FE96D35A3F4F2DE5AD5210FABAC8 /* NBMetadataHelper.m in Sources */, - 94963BE56F8B5C02460E10A7516D79A9 /* NBNumberFormat.m in Sources */, - 7A05F0DFFBA35FC29EDA33C14BC1AB55 /* NBPhoneMetaData.m in Sources */, - BBB97D788FDF6D94A2231A1394C44AE6 /* NBPhoneNumber.m in Sources */, - A121BCD209C84F555DEC4D3BD71B1A0D /* NBPhoneNumberDesc.m in Sources */, - 2B8679564FB44CA974F6866145DA4CE0 /* NBPhoneNumberUtil.m in Sources */, - 2840AB863DF84B3435536366454B3228 /* NSArray+NBAdditions.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 91D3B6862BCEC8670824FC89FE0FD93A /* Sources */ = { + 4D35E770AD868B5057A12340DF31BA27 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3526CB281B853768A869EC963FB7275C /* Pods-iosApp-dummy.m in Sources */, + 8252EF4DA567716D3FE6BFA65902CA28 /* Pods-iosApp-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 42D083C68EA3F69C64E9F609B20F02B6 /* PBXTargetDependency */ = { + C7DF6D20C4F0BFD6CDFFA604BE51639F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = multiplatformContact; target = 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */; - targetProxy = 38411F75B2729CD2C32D77AC299B5999 /* PBXContainerItemProxy */; - }; - 5019C052F98099A002C27025B1539EF4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "libPhoneNumber-iOS"; - target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; - targetProxy = 48B0FF678CA9C14E135894A5DAAFF7BC /* PBXContainerItemProxy */; - }; - 6E23E07C721EA306BD094E4B8C6F5F03 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "libPhoneNumber-iOS"; - target = BECD36891A8DC297700F9296F5634B97 /* libPhoneNumber-iOS */; - targetProxy = CEEA6D59C2AC1812C0B5537B8B329172 /* PBXContainerItemProxy */; - }; - AF144B775869EE38833972A8515C6060 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PhoneNumberKit; - target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; - targetProxy = F19CEBEB71195F286CC5ACD661BAE11C /* PBXContainerItemProxy */; - }; - B4ABE96E31A669CFFA832F54210F011D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PhoneNumberKit; - target = C942A9CCE5CF382E8053D9757DA6249D /* PhoneNumberKit */; - targetProxy = 5433DACEFA172C9A4B41810E491FE300 /* PBXContainerItemProxy */; + targetProxy = 4C6013B8AB9F6E1F284B0F5722A05AFB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 2AD46E1F1AE84EAEEA3B4530DF79CFF1 /* Debug */ = { + 3F152A2292287AA82F6706808CDF0395 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -763,44 +319,6 @@ }; name = Debug; }; - 44C0738684307B9E3A4AF9B12CEFE991 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8FB0624DBFCA62683A152073A3D88FCD /* PhoneNumberKit.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; - PRODUCT_MODULE_NAME = PhoneNumberKit; - PRODUCT_NAME = PhoneNumberKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 4BC7450F9457737EE3E637BA155B56F7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -867,87 +385,28 @@ }; name = Debug; }; - 5A9166103A863358ACAF37075F891B19 /* Release */ = { + 5421F297C812E9FB327A65CD1313621A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 391017FA152F896F64889A909B705C3A /* PhoneNumberKit.release.xcconfig */; + baseConfigurationReference = A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap"; - PRODUCT_MODULE_NAME = PhoneNumberKit; - PRODUCT_NAME = PhoneNumberKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 67666281A965348B3C8B9139AE054566 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 857E4DABFFDDA591AE7269DD5D70EB00 /* libPhoneNumber-iOS.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", - "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap"; - PRODUCT_MODULE_NAME = libPhoneNumber_iOS; - PRODUCT_NAME = libPhoneNumber_iOS; SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; }; name = Release; }; - 73A1E0CC00641873B2B7636C79D9E2C3 /* Release */ = { + 56B7CA5DD01ADB69BB7F79F545BA3800 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 244FC2DAA936A0B07ACEFDC74E2D54B8 /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -1047,26 +506,7 @@ }; name = Release; }; - 91761F655210D509D805591211054927 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - B375EC5C48861FD1EB69B49982B37837 /* Debug */ = { + C34325D3B641862AE7A1139AFB4E0AF5 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */; buildSettings = { @@ -1084,56 +524,9 @@ }; name = Debug; }; - FE8E6009EE03A9E8A74E95D5FB73B5B9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7E8A2D88F5DF2970193C269C69B9D0E8 /* libPhoneNumber-iOS.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap"; - PRODUCT_MODULE_NAME = libPhoneNumber_iOS; - PRODUCT_NAME = libPhoneNumber_iOS; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 14930E85E04E5EFAE1C2ACAB80E07A0A /* Build configuration list for PBXNativeTarget "Pods-iosApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2AD46E1F1AE84EAEEA3B4530DF79CFF1 /* Debug */, - 73A1E0CC00641873B2B7636C79D9E2C3 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1143,29 +536,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 53C2A67E2BBE784DA13C7DE28AB53DA0 /* Build configuration list for PBXNativeTarget "libPhoneNumber-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE8E6009EE03A9E8A74E95D5FB73B5B9 /* Debug */, - 67666281A965348B3C8B9139AE054566 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 6FECE8E15F2F56BC8351B04D0BAE14BE /* Build configuration list for PBXAggregateTarget "multiplatformContact" */ = { + 66E0C086005E030B6F10ACC6D39B6DC6 /* Build configuration list for PBXAggregateTarget "multiplatformContact" */ = { isa = XCConfigurationList; buildConfigurations = ( - B375EC5C48861FD1EB69B49982B37837 /* Debug */, - 91761F655210D509D805591211054927 /* Release */, + C34325D3B641862AE7A1139AFB4E0AF5 /* Debug */, + 5421F297C812E9FB327A65CD1313621A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D69A2690A19DB6C00652BF4FC6D081BD /* Build configuration list for PBXNativeTarget "PhoneNumberKit" */ = { + 8B6FB5C2E3324644D6DC7A8E48985264 /* Build configuration list for PBXNativeTarget "Pods-iosApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - 44C0738684307B9E3A4AF9B12CEFE991 /* Debug */, - 5A9166103A863358ACAF37075F891B19 /* Release */, + 3F152A2292287AA82F6706808CDF0395 /* Debug */, + 56B7CA5DD01ADB69BB7F79F545BA3800 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist deleted file mode 100644 index d895db6..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.7.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m deleted file mode 100644 index 2b24ac0..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_PhoneNumberKit : NSObject -@end -@implementation PodsDummy_PhoneNumberKit -@end diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h deleted file mode 100644 index bde11d6..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double PhoneNumberKitVersionNumber; -FOUNDATION_EXPORT const unsigned char PhoneNumberKitVersionString[]; - diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig deleted file mode 100644 index 1101853..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.debug.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/PhoneNumberKit -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -SWIFT_VERSION = 5.0 -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap deleted file mode 100644 index 000aac6..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module PhoneNumberKit { - umbrella header "PhoneNumberKit-umbrella.h" - - export * - module * { export * } -} diff --git a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig b/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig deleted file mode 100644 index 1101853..0000000 --- a/iosApp/Pods/Target Support Files/PhoneNumberKit/PhoneNumberKit.release.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/PhoneNumberKit -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -SWIFT_VERSION = 5.0 -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown index c2d23ba..102af75 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.markdown @@ -1,208 +1,3 @@ # Acknowledgements This application makes use of the following third party libraries: - -## PhoneNumberKit - -The MIT License (MIT) - -Copyright (c) 2018 Roy Marmelstein - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -## libPhoneNumber-iOS - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - Generated by CocoaPods - https://cocoapods.org diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist index c0d8402..7acbad1 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-acknowledgements.plist @@ -12,223 +12,6 @@ Type PSGroupSpecifier - - FooterText - The MIT License (MIT) - -Copyright (c) 2018 Roy Marmelstein - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - License - MIT - Title - PhoneNumberKit - Type - PSGroupSpecifier - - - FooterText - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - License - Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) - Title - libPhoneNumber-iOS - Type - PSGroupSpecifier - FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist deleted file mode 100644 index 4a66e51..0000000 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh -${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework -${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist deleted file mode 100644 index 1558fae..0000000 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PhoneNumberKit.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist deleted file mode 100644 index 4a66e51..0000000 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh -${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework -${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist deleted file mode 100644 index 1558fae..0000000 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PhoneNumberKit.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh deleted file mode 100755 index 4b37f96..0000000 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh +++ /dev/null @@ -1,188 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -BCSYMBOLMAP_DIR="BCSymbolMaps" - - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink -f "${source}")" - fi - - if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then - # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied - find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do - echo "Installing $f" - install_bcsymbolmap "$f" "$destination" - rm "$f" - done - rmdir "${source}/${BCSYMBOLMAP_DIR}" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures from the dSYM. - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - if [[ $STRIP_BINARY_RETVAL == 0 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - mkdir -p "${DWARF_DSYM_FOLDER_PATH}" - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=1 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=0 -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework" - install_framework "${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/PhoneNumberKit/PhoneNumberKit.framework" - install_framework "${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig index 12f353a..2478a96 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig @@ -1,13 +1,9 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit/PhoneNumberKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "CoreTelephony" -framework "PhoneNumberKit" -framework "libPhoneNumber_iOS" -framework "shared" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "shared" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig index 12f353a..2478a96 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig @@ -1,13 +1,9 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit/PhoneNumberKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "CoreTelephony" -framework "PhoneNumberKit" -framework "libPhoneNumber_iOS" -framework "shared" -OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "-F${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "-F${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "shared" +OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist deleted file mode 100644 index 7d45459..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - ${PODS_DEVELOPMENT_LANGUAGE} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.8.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m deleted file mode 100644 index 95d7595..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_libPhoneNumber_iOS : NSObject -@end -@implementation PodsDummy_libPhoneNumber_iOS -@end diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h deleted file mode 100644 index 3656a64..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS-umbrella.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "NBPhoneNumberDefines.h" -#import "NBPhoneNumber.h" -#import "NBNumberFormat.h" -#import "NBPhoneNumberDesc.h" -#import "NBPhoneMetaData.h" -#import "NBPhoneNumberUtil.h" -#import "NBMetadataHelper.h" -#import "NBAsYouTypeFormatter.h" -#import "NBMetadataCore.h" -#import "NBMetadataCoreTest.h" -#import "NBMetadataCoreMapper.h" -#import "NBMetadataCoreTestMapper.h" -#import "NSArray+NBAdditions.h" - -FOUNDATION_EXPORT double libPhoneNumber_iOSVersionNumber; -FOUNDATION_EXPORT const unsigned char libPhoneNumber_iOSVersionString[]; - diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig deleted file mode 100644 index 5f2c85a..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.debug.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = $(inherited) -framework "CoreTelephony" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/libPhoneNumber-iOS -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap deleted file mode 100644 index 4771b08..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module libPhoneNumber_iOS { - umbrella header "libPhoneNumber-iOS-umbrella.h" - - export * - module * { export * } -} diff --git a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig b/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig deleted file mode 100644 index 5f2c85a..0000000 --- a/iosApp/Pods/Target Support Files/libPhoneNumber-iOS/libPhoneNumber-iOS.release.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = $(inherited) -framework "CoreTelephony" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/libPhoneNumber-iOS -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig index 6801abe..45805ae 100644 --- a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig +++ b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig @@ -1,6 +1,6 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 KOTLIN_PROJECT_PATH = :multiplatformContact OTHER_LDFLAGS = $(inherited) -l"c++" diff --git a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig index 6801abe..45805ae 100644 --- a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig +++ b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig @@ -1,6 +1,6 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PhoneNumberKit" "${PODS_CONFIGURATION_BUILD_DIR}/libPhoneNumber-iOS" "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 KOTLIN_PROJECT_PATH = :multiplatformContact OTHER_LDFLAGS = $(inherited) -l"c++" diff --git a/iosApp/Pods/libPhoneNumber-iOS/LICENSE b/iosApp/Pods/libPhoneNumber-iOS/LICENSE deleted file mode 100755 index d9a10c0..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/iosApp/Pods/libPhoneNumber-iOS/README.md b/iosApp/Pods/libPhoneNumber-iOS/README.md deleted file mode 100755 index 2182f6e..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/README.md +++ /dev/null @@ -1,121 +0,0 @@ -[![CocoaPods](https://img.shields.io/cocoapods/p/libPhoneNumber-iOS.svg?style=flat)](http://cocoapods.org/?q=libPhoneNumber-iOS) -[![CocoaPods](https://img.shields.io/cocoapods/v/libPhoneNumber-iOS.svg?style=flat)](http://cocoapods.org/?q=libPhoneNumber-iOS) -[![Travis](https://img.shields.io/travis/iziz/libPhoneNumber-iOS.svg?style=flat)](https://travis-ci.org/iziz/libPhoneNumber-iOS) - -# **libPhoneNumber for iOS** - - - NBPhoneNumberUtil - - NBAsYouTypeFormatter - -> ARC only, or add the **"-fobjc-arc"** flag for non-ARC - -### Using [CocoaPods](http://cocoapods.org/?q=libPhoneNumber-iOS) -``` -source 'https://github.com/CocoaPods/Specs.git' -pod 'libPhoneNumber-iOS', '~> 0.7' -``` - -### Setting up Manually -##### Add source files to your projects from libPhoneNumber - - NBPhoneNumberUtil.h, .m - - NBAsYouTypeFormatter.h, .m - - - NBNumberFormat.h, .m - - NBPhoneNumber.h, .m - - NBPhoneNumberDesc.h, .m - - NBPhoneNumberDefines.h - - NBPhoneMetaData.h, .m - - - NSArray+NBAdditions.h, .m - - - Add "NBPhoneNumberMetadata.plist" and "NBPhoneNumberMetadataForTesting.plist" to bundle resources - - Add "CoreTelephony.framework" - -See sample test code from -> [libPhoneNumber-iOS/libPhoneNumberTests/libPhoneNumberTests.m] (https://github.com/iziz/libPhoneNumber-iOS/blob/master/libPhoneNumberTests/NBPhoneNumberUtilTests.m) - -### Usage - **NBPhoneNumberUtil** -```obj-c - NBPhoneNumberUtil *phoneUtil = [NBPhoneNumberUtil sharedInstance]; - - NSError *anError = nil; - NBPhoneNumber *myNumber = [phoneUtil parse:@"6766077303" - defaultRegion:@"AT" error:&anError]; - - if (anError == nil) { - // Should check error - NSLog(@"isValidPhoneNumber ? [%@]", [phoneUtil isValidNumber:myNumber] ? @"YES":@"NO"); - - // E164 : +436766077303 - NSLog(@"E164 : %@", [phoneUtil format:myNumber - numberFormat:NBEPhoneNumberFormatE164 - error:&anError]); - // INTERNATIONAL : +43 676 6077303 - NSLog(@"INTERNATIONAL : %@", [phoneUtil format:myNumber - numberFormat:NBEPhoneNumberFormatINTERNATIONAL - error:&anError]); - // NATIONAL : 0676 6077303 - NSLog(@"NATIONAL : %@", [phoneUtil format:myNumber - numberFormat:NBEPhoneNumberFormatNATIONAL - error:&anError]); - // RFC3966 : tel:+43-676-6077303 - NSLog(@"RFC3966 : %@", [phoneUtil format:myNumber - numberFormat:NBEPhoneNumberFormatRFC3966 - error:&anError]); - } else { - NSLog(@"Error : %@", [anError localizedDescription]); - } - - NSLog (@"extractCountryCode [%@]", [phoneUtil extractCountryCode:@"823213123123" nationalNumber:nil]); - - NSString *nationalNumber = nil; - NSNumber *countryCode = [phoneUtil extractCountryCode:@"823213123123" nationalNumber:&nationalNumber]; - - NSLog (@"extractCountryCode [%@] [%@]", countryCode, nationalNumber); -``` -##### Output -``` -2014-07-06 12:39:37.240 libPhoneNumberTest[1581:60b] isValidPhoneNumber ? [YES] -2014-07-06 12:39:37.242 libPhoneNumberTest[1581:60b] E164 : +436766077303 -2014-07-06 12:39:37.243 libPhoneNumberTest[1581:60b] INTERNATIONAL : +43 676 6077303 -2014-07-06 12:39:37.243 libPhoneNumberTest[1581:60b] NATIONAL : 0676 6077303 -2014-07-06 12:39:37.244 libPhoneNumberTest[1581:60b] RFC3966 : tel:+43-676-6077303 -2014-07-06 12:39:37.244 libPhoneNumberTest[1581:60b] extractCountryCode [82] -2014-07-06 12:39:37.245 libPhoneNumberTest[1581:60b] extractCountryCode [82] [3213123123] -``` - -### Usage - **NBAsYouTypeFormatter** -```obj-c - NBAsYouTypeFormatter *f = [[NBAsYouTypeFormatter alloc] initWithRegionCode:@"US"]; - NSLog(@"%@", [f inputDigit:@"6"]); // "6" - NSLog(@"%@", [f inputDigit:@"5"]); // "65" - NSLog(@"%@", [f inputDigit:@"0"]); // "650" - NSLog(@"%@", [f inputDigit:@"2"]); // "650 2" - NSLog(@"%@", [f inputDigit:@"5"]); // "650 25" - NSLog(@"%@", [f inputDigit:@"3"]); // "650 253" - - // Note this is how a US local number (without area code) should be formatted. - NSLog(@"%@", [f inputDigit:@"2"]); // "650 2532" - NSLog(@"%@", [f inputDigit:@"2"]); // "650 253 22" - NSLog(@"%@", [f inputDigit:@"2"]); // "650 253 222" - NSLog(@"%@", [f inputDigit:@"2"]); // "650 253 2222" - // Can remove last digit - NSLog(@"%@", [f removeLastDigit]); // "650 253 222" - - NSLog(@"%@", [f inputString:@"16502532222"]); // 1 650 253 2222 -``` - -##### Visit [libphonenumber](https://github.com/googlei18n/libphonenumber) for more information or mail (zen.isis@gmail.com) - -##### **Metadata managing (updating metadata)** - -###### Step1. Fetch "metadata.js" and "metadatafortesting.js" from Repositories - svn checkout http://libphonenumber.googlecode.com/svn/trunk/ libphonenumber-read-only - -###### Step2. Convert Javascript Object to JSON using PHP scripts - Output - "PhoneNumberMetaData.json" and "PhoneNumberMetaDataForTesting.json" - -###### Step3. Generate binary file from NBPhoneMetaDataGenerator - Output - "NBPhoneNumberMetadata.plist" and "NBPhoneNumberMetadataForTesting.plist" - -###### Step4. Update exists "NBPhoneNumberMetadata.plist" and "NBPhoneNumberMetadataForTesting.plist" files diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h deleted file mode 100755 index 55f53df..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// NBAsYouTypeFormatter.h -// libPhoneNumber -// -// Created by ishtar on 13. 2. 25.. -// - -#import - - -@interface NBAsYouTypeFormatter : NSObject - -- (id)initWithRegionCode:(NSString *)regionCode; -- (id)initWithRegionCodeForTest:(NSString *)regionCode; -- (id)initWithRegionCode:(NSString *)regionCode bundle:(NSBundle *)bundle; -- (id)initWithRegionCodeForTest:(NSString *)regionCode bundle:(NSBundle *)bundle; - -- (NSString *)inputString:(NSString *)string; -- (NSString *)inputStringAndRememberPosition:(NSString *)string; - -- (NSString *)inputDigit:(NSString*)nextChar; -- (NSString *)inputDigitAndRememberPosition:(NSString*)nextChar; - -- (NSString *)removeLastDigit; -- (NSString *)removeLastDigitAndRememberPosition; - -- (NSInteger)getRememberedPosition; - -- (void)clear; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m deleted file mode 100755 index d37c45d..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBAsYouTypeFormatter.m +++ /dev/null @@ -1,1241 +0,0 @@ -// -// NBAsYouTypeFormatter.m -// libPhoneNumber -// -// Created by ishtar on 13. 2. 25.. -// - -#import "NBAsYouTypeFormatter.h" - -#import "NBMetadataHelper.h" - -#import "NBPhoneNumberUtil.h" -#import "NBPhoneMetaData.h" -#import "NBNumberFormat.h" -#import "NSArray+NBAdditions.h" - - -@interface NBAsYouTypeFormatter () - -@property (nonatomic, strong, readwrite) NSString *DIGIT_PLACEHOLDER_; -@property (nonatomic, assign, readwrite) NSString *SEPARATOR_BEFORE_NATIONAL_NUMBER_; -@property (nonatomic, strong, readwrite) NSString *currentOutput_, *currentFormattingPattern_; -@property (nonatomic, strong, readwrite) NSString *defaultCountry_; -@property (nonatomic, strong, readwrite) NSString *nationalPrefixExtracted_; -@property (nonatomic, strong, readwrite) NSMutableString *formattingTemplate_, *accruedInput_, *prefixBeforeNationalNumber_, *accruedInputWithoutFormatting_, *nationalNumber_; -@property (nonatomic, strong, readwrite) NSRegularExpression *DIGIT_PATTERN_, *NATIONAL_PREFIX_SEPARATORS_PATTERN_, *CHARACTER_CLASS_PATTERN_, *STANDALONE_DIGIT_PATTERN_; -@property (nonatomic, strong, readwrite) NSRegularExpression *ELIGIBLE_FORMAT_PATTERN_; -@property (nonatomic, assign, readwrite) BOOL ableToFormat_, inputHasFormatting_, isCompleteNumber_, isExpectingCountryCallingCode_, shouldAddSpaceAfterNationalPrefix_; -@property (nonatomic, strong, readwrite) NBPhoneNumberUtil *phoneUtil_; -@property (nonatomic, assign, readwrite) NSUInteger lastMatchPosition_, originalPosition_, positionToRemember_; -@property (nonatomic, assign, readwrite) NSUInteger MIN_LEADING_DIGITS_LENGTH_; -@property (nonatomic, strong, readwrite) NSMutableArray *possibleFormats_; -@property (nonatomic, strong, readwrite) NBPhoneMetaData *currentMetaData_, *defaultMetaData_, *EMPTY_METADATA_; - -@end - - -@implementation NBAsYouTypeFormatter - -- (id)init -{ - self = [super init]; - - if (self) { - /** - * The digits that have not been entered yet will be represented by a \u2008, - * the punctuation space. - * @const - * @type {string} - * @private - */ - self.DIGIT_PLACEHOLDER_ = @"\u2008"; - - /** - * Character used when appropriate to separate a prefix, such as a long NDD or a - * country calling code, from the national number. - * @const - * @type {string} - * @private - */ - self.SEPARATOR_BEFORE_NATIONAL_NUMBER_ = @" "; - - /** - * This is the minimum length of national number accrued that is required to - * trigger the formatter. The first element of the leadingDigitsPattern of - * each numberFormat contains a regular expression that matches up to this - * number of digits. - * @const - * @type {number} - * @private - */ - self.MIN_LEADING_DIGITS_LENGTH_ = 3; - - /** - * @type {string} - * @private - */ - self.currentOutput_ = @""; - - /** - * @type {!goog.string.StringBuffer} - * @private - */ - self.formattingTemplate_ = [NSMutableString stringWithString:@""]; - - NSError *anError = nil; - - /** - * @type {RegExp} - * @private - */ - self.DIGIT_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:self.DIGIT_PLACEHOLDER_ options:0 error:&anError]; - - /** - * A set of characters that, if found in a national prefix formatting rules, are - * an indicator to us that we should separate the national prefix from the - * number when formatting. - * @const - * @type {RegExp} - * @private - */ - self.NATIONAL_PREFIX_SEPARATORS_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:@"[- ]" options:0 error:&anError]; - - /** - * A pattern that is used to match character classes in regular expressions. - * An example of a character class is [1-4]. - * @const - * @type {RegExp} - * @private - */ - self.CHARACTER_CLASS_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:@"\\[([^\\[\\]])*\\]" options:0 error:&anError]; - - /** - * Any digit in a regular expression that actually denotes a digit. For - * example, in the regular expression 80[0-2]\d{6,10}, the first 2 digits - * (8 and 0) are standalone digits, but the rest are not. - * Two look-aheads are needed because the number following \\d could be a - * two-digit number, since the phone number can be as long as 15 digits. - * @const - * @type {RegExp} - * @private - */ - self.STANDALONE_DIGIT_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:@"\\d(?=[^,}][^,}])" options:0 error:&anError]; - - /** - * A pattern that is used to determine if a numberFormat under availableFormats - * is eligible to be used by the AYTF. It is eligible when the format element - * under numberFormat contains groups of the dollar sign followed by a single - * digit, separated by valid phone number punctuation. This prevents invalid - * punctuation (such as the star sign in Israeli star numbers) getting into the - * output of the AYTF. - * @const - * @type {RegExp} - * @private - */ - NSString *eligible_format = @"^[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*(\\$\\d[-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~]*)+$"; - self.ELIGIBLE_FORMAT_PATTERN_ = [NSRegularExpression regularExpressionWithPattern:eligible_format options:0 error:&anError]; - - /** - * The pattern from numberFormat that is currently used to create - * formattingTemplate. - * @type {string} - * @private - */ - self.currentFormattingPattern_ = @""; - - /** - * @type {!goog.string.StringBuffer} - * @private - */ - self.accruedInput_ = [NSMutableString stringWithString:@""]; - - /** - * @type {!goog.string.StringBuffer} - * @private - */ - self.accruedInputWithoutFormatting_ = [NSMutableString stringWithString:@""]; - - /** - * This indicates whether AsYouTypeFormatter is currently doing the - * formatting. - * @type {BOOL} - * @private - */ - self.ableToFormat_ = YES; - - /** - * Set to YES when users enter their own formatting. AsYouTypeFormatter will - * do no formatting at all when this is set to YES. - * @type {BOOL} - * @private - */ - self.inputHasFormatting_ = NO; - - /** - * This is set to YES when we know the user is entering a full national - * significant number, since we have either detected a national prefix or an - * international dialing prefix. When this is YES, we will no longer use - * local number formatting patterns. - * @type {BOOL} - * @private - */ - self.isCompleteNumber_ = NO; - - /** - * @type {BOOL} - * @private - */ - self.isExpectingCountryCallingCode_ = NO; - - /** - * @type {number} - * @private - */ - self.lastMatchPosition_ = 0; - - /** - * The position of a digit upon which inputDigitAndRememberPosition is most - * recently invoked, as found in the original sequence of characters the user - * entered. - * @type {number} - * @private - */ - self.originalPosition_ = 0; - - /** - * The position of a digit upon which inputDigitAndRememberPosition is most - * recently invoked, as found in accruedInputWithoutFormatting. - * entered. - * @type {number} - * @private - */ - self.positionToRemember_ = 0; - - /** - * This contains anything that has been entered so far preceding the national - * significant number, and it is formatted (e.g. with space inserted). For - * example, this can contain IDD, country code, and/or NDD, etc. - * @type {!goog.string.StringBuffer} - * @private - */ - self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; - - /** - * @type {BOOL} - * @private - */ - self.shouldAddSpaceAfterNationalPrefix_ = NO; - - /** - * This contains the national prefix that has been extracted. It contains only - * digits without formatting. - * @type {string} - * @private - */ - self.nationalPrefixExtracted_ = @""; - - /** - * @type {!goog.string.StringBuffer} - * @private - */ - self.nationalNumber_ = [NSMutableString stringWithString:@""]; - - /** - * @type {Array.} - * @private - */ - self.possibleFormats_ = [[NSMutableArray alloc] init]; - } - - return self; -} - -/** - * Constructs an AsYouTypeFormatter for the specific region. - * - * @param {string} regionCode the ISO 3166-1 two-letter region code that denotes - * the region where the phone number is being entered. - * @constructor - */ - -- (id)initWithRegionCode:(NSString*)regionCode -{ - return [self initWithRegionCode:regionCode bundle:[NSBundle mainBundle]]; -} - -- (id)initWithRegionCodeForTest:(NSString*)regionCode -{ - return [self initWithRegionCodeForTest:regionCode bundle:[NSBundle mainBundle]]; -} - -- (id)initWithRegionCode:(NSString*)regionCode bundle:(NSBundle *)bundle -{ - self = [self init]; - if (self) { - /** - * @private - * @type {i18n.phonenumbers.PhoneNumberUtil} - */ - self.phoneUtil_ = [[NBPhoneNumberUtil alloc] init]; - self.defaultCountry_ = regionCode; - self.currentMetaData_ = [self getMetadataForRegion_:self.defaultCountry_]; - /** - * @type {i18n.phonenumbers.PhoneMetadata} - * @private - */ - self.defaultMetaData_ = self.currentMetaData_; - - /** - * @const - * @type {i18n.phonenumbers.PhoneMetadata} - * @private - */ - self.EMPTY_METADATA_ = [[NBPhoneMetaData alloc] init]; - [self.EMPTY_METADATA_ setInternationalPrefix:@"NA"]; - } - - return self; - -} - -- (id)initWithRegionCodeForTest:(NSString*)regionCode bundle:(NSBundle *)bundle -{ - self = [self init]; - - if (self) { - self.phoneUtil_ = [[NBPhoneNumberUtil alloc] init]; - - self.defaultCountry_ = regionCode; - self.currentMetaData_ = [self getMetadataForRegion_:self.defaultCountry_]; - self.defaultMetaData_ = self.currentMetaData_; - self.EMPTY_METADATA_ = [[NBPhoneMetaData alloc] init]; - [self.EMPTY_METADATA_ setInternationalPrefix:@"NA"]; - } - - return self; -} - -/** - * The metadata needed by this class is the same for all regions sharing the - * same country calling code. Therefore, we return the metadata for "main" - * region for this country calling code. - * @param {string} regionCode an ISO 3166-1 two-letter region code. - * @return {i18n.phonenumbers.PhoneMetadata} main metadata for this region. - * @private - */ -- (NBPhoneMetaData*)getMetadataForRegion_:(NSString*)regionCode -{ - - /** @type {number} */ - NSNumber *countryCallingCode = [self.phoneUtil_ getCountryCodeForRegion:regionCode]; - /** @type {string} */ - NSString *mainCountry = [self.phoneUtil_ getRegionCodeForCountryCode:countryCallingCode]; - /** @type {i18n.phonenumbers.PhoneMetadata} */ - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:mainCountry]; - if (metadata != nil) { - return metadata; - } - // Set to a default instance of the metadata. This allows us to function with - // an incorrect region code, even if formatting only works for numbers - // specified with '+'. - return self.EMPTY_METADATA_; -}; - - -/** - * @return {BOOL} YES if a new template is created as opposed to reusing the - * existing template. - * @private - */ -- (BOOL)maybeCreateNewTemplate_ -{ - // When there are multiple available formats, the formatter uses the first - // format where a formatting template could be created. - /** @type {number} */ - unsigned int possibleFormatsLength = (unsigned int)[self.possibleFormats_ count]; - for (unsigned int i = 0; i < possibleFormatsLength; ++i) - { - /** @type {i18n.phonenumbers.NumberFormat} */ - NBNumberFormat *numberFormat = [self.possibleFormats_ safeObjectAtIndex:i]; - /** @type {string} */ - NSString *pattern = numberFormat.pattern; - - if ([self.currentFormattingPattern_ isEqualToString:pattern]) { - return NO; - } - - if ([self createFormattingTemplate_:numberFormat ]) - { - self.currentFormattingPattern_ = pattern; - NSRange nationalPrefixRange = NSMakeRange(0, [numberFormat.nationalPrefixFormattingRule length]); - if (nationalPrefixRange.length > 0) { - NSTextCheckingResult *matchResult = - [self.NATIONAL_PREFIX_SEPARATORS_PATTERN_ firstMatchInString:numberFormat.nationalPrefixFormattingRule - options:0 - range:nationalPrefixRange]; - self.shouldAddSpaceAfterNationalPrefix_ = (matchResult != nil); - } else { - self.shouldAddSpaceAfterNationalPrefix_ = NO; - } - // With a new formatting template, the matched position using the old - // template needs to be reset. - self.lastMatchPosition_ = 0; - return YES; - } - } - self.ableToFormat_ = NO; - return NO; -}; - - -/** - * @param {string} leadingThreeDigits first three digits of entered number. - * @private - */ -- (void)getAvailableFormats_:(NSString*)leadingThreeDigits -{ - /** @type {Array.} */ - BOOL isIntlNumberFormats = (self.isCompleteNumber_ && self.currentMetaData_.intlNumberFormats.count > 0); - NSMutableArray *formatList = isIntlNumberFormats ? self.currentMetaData_.intlNumberFormats : self.currentMetaData_.numberFormats; - - /** @type {number} */ - unsigned int formatListLength = (unsigned int)formatList.count; - - for (unsigned int i = 0; i < formatListLength; ++i) - { - /** @type {i18n.phonenumbers.NumberFormat} */ - NBNumberFormat *format = [formatList safeObjectAtIndex:i]; - /** @type {BOOL} */ - BOOL nationalPrefixIsUsedByCountry = (self.currentMetaData_.nationalPrefix && self.currentMetaData_.nationalPrefix.length > 0); - - if (!nationalPrefixIsUsedByCountry || self.isCompleteNumber_ || format.nationalPrefixOptionalWhenFormatting || - [self.phoneUtil_ formattingRuleHasFirstGroupOnly:format.nationalPrefixFormattingRule]) - { - if ([self isFormatEligible_:format.format]) { - [self.possibleFormats_ addObject:format]; - } - } - } - - [self narrowDownPossibleFormats_:leadingThreeDigits]; -}; - - -/** - * @param {string} format - * @return {BOOL} - * @private - */ -- (BOOL)isFormatEligible_:(NSString*)format -{ - NSTextCheckingResult *matchResult = - [self.ELIGIBLE_FORMAT_PATTERN_ firstMatchInString:format options:0 range:NSMakeRange(0, [format length])]; - return (matchResult != nil); -}; - - -/** - * @param {string} leadingDigits - * @private - */ -- (void)narrowDownPossibleFormats_:(NSString *)leadingDigits -{ - /** @type {Array.} */ - NSMutableArray *possibleFormats = [[NSMutableArray alloc] init]; - /** @type {number} */ - NSUInteger indexOfLeadingDigitsPattern = (unsigned int)leadingDigits.length - self.MIN_LEADING_DIGITS_LENGTH_; - /** @type {number} */ - NSUInteger possibleFormatsLength = (unsigned int)self.possibleFormats_.count; - - for (NSUInteger i = 0; i < possibleFormatsLength; ++i) - { - /** @type {i18n.phonenumbers.NumberFormat} */ - NBNumberFormat *format = [self.possibleFormats_ safeObjectAtIndex:i]; - if (format.leadingDigitsPatterns.count > indexOfLeadingDigitsPattern) - { - /** @type {string} */ - NSString *leadingDigitsPattern = [format.leadingDigitsPatterns safeObjectAtIndex:indexOfLeadingDigitsPattern]; - - if ([self.phoneUtil_ stringPositionByRegex:leadingDigits regex:leadingDigitsPattern] == 0) - { - [possibleFormats addObject:format]; - } - } else { - // else the particular format has no more specific leadingDigitsPattern, - // and it should be retained. - [possibleFormats addObject:[self.possibleFormats_ safeObjectAtIndex:i]]; - } - } - self.possibleFormats_ = possibleFormats; -}; - - -/** - * @param {i18n.phonenumbers.NumberFormat} format - * @return {BOOL} - * @private - */ -- (BOOL)createFormattingTemplate_:(NBNumberFormat*)format -{ - /** @type {string} */ - NSString *numberPattern = format.pattern; - - // The formatter doesn't format numbers when numberPattern contains '|', e.g. - // (20|3)\d{4}. In those cases we quickly return. - NSRange stringRange = [numberPattern rangeOfString:@"|"]; - if (stringRange.location != NSNotFound) { - return NO; - } - - // Replace anything in the form of [..] with \d - numberPattern = [self.CHARACTER_CLASS_PATTERN_ stringByReplacingMatchesInString:numberPattern - options:0 range:NSMakeRange(0, [numberPattern length]) - withTemplate:@"\\\\d"]; - - // Replace any standalone digit (not the one in d{}) with \d - numberPattern = [self.STANDALONE_DIGIT_PATTERN_ stringByReplacingMatchesInString:numberPattern - options:0 range:NSMakeRange(0, [numberPattern length]) - withTemplate:@"\\\\d"]; - self.formattingTemplate_ = [NSMutableString stringWithString:@""]; - - /** @type {string} */ - NSString *tempTemplate = [self getFormattingTemplate_:numberPattern numberFormat:format.format]; - if (tempTemplate.length > 0) { - [self.formattingTemplate_ appendString:tempTemplate]; - return YES; - } - return NO; -}; - - -/** - * Gets a formatting template which can be used to efficiently format a - * partial number where digits are added one by one. - * - * @param {string} numberPattern - * @param {string} numberFormat - * @return {string} - * @private - */ -- (NSString*)getFormattingTemplate_:(NSString*)numberPattern numberFormat:(NSString*)numberFormat -{ - // Creates a phone number consisting only of the digit 9 that matches the - // numberPattern by applying the pattern to the longestPhoneNumber string. - /** @type {string} */ - NSString *longestPhoneNumber = @"999999999999999"; - - /** @type {Array.} */ - NSArray *m = [self.phoneUtil_ matchedStringByRegex:longestPhoneNumber regex:numberPattern]; - - // this match will always succeed - /** @type {string} */ - NSString *aPhoneNumber = [m safeObjectAtIndex:0]; - // No formatting template can be created if the number of digits entered so - // far is longer than the maximum the current formatting rule can accommodate. - if (aPhoneNumber.length < self.nationalNumber_.length) { - return @""; - } - // Formats the number according to numberFormat - /** @type {string} */ - NSString *template = [self.phoneUtil_ replaceStringByRegex:aPhoneNumber regex:numberPattern withTemplate:numberFormat]; - - // Replaces each digit with character DIGIT_PLACEHOLDER - template = [self.phoneUtil_ replaceStringByRegex:template regex:@"9" withTemplate:self.DIGIT_PLACEHOLDER_]; - return template; -}; - - -/** - * Clears the internal state of the formatter, so it can be reused. - */ -- (void)clear -{ - self.currentOutput_ = @""; - self.accruedInput_ = [NSMutableString stringWithString:@""]; - self.accruedInputWithoutFormatting_ = [NSMutableString stringWithString:@""]; - self.formattingTemplate_ = [NSMutableString stringWithString:@""]; - self.lastMatchPosition_ = 0; - self.currentFormattingPattern_ = @""; - self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; - self.nationalPrefixExtracted_ = @""; - self.nationalNumber_ = [NSMutableString stringWithString:@""]; - self.ableToFormat_ = YES; - self.inputHasFormatting_ = NO; - self.positionToRemember_ = 0; - self.originalPosition_ = 0; - self.isCompleteNumber_ = NO; - self.isExpectingCountryCallingCode_ = NO; - [self.possibleFormats_ removeAllObjects]; - self.shouldAddSpaceAfterNationalPrefix_ = NO; - - if (self.currentMetaData_ != self.defaultMetaData_) { - self.currentMetaData_ = [self getMetadataForRegion_:self.defaultCountry_]; - } -} - -- (NSString*)removeLastDigitAndRememberPosition -{ - NSString *accruedInputWithoutFormatting = [self.accruedInput_ copy]; - [self clear]; - - NSString *result = @""; - - if (accruedInputWithoutFormatting.length <= 0) { - return result; - } - - for (unsigned int i=0; i 0) { - // The formatting pattern is already chosen. - /** @type {string} */ - NSString *tempNationalNumber = [self inputDigitHelper_:nextChar]; - // See if the accrued digits can be formatted properly already. If not, - // use the results from inputDigitHelper, which does formatting based on - // the formatting pattern chosen. - /** @type {string} */ - NSString *formattedNumber = [self attemptToFormatAccruedDigits_]; - if (formattedNumber.length > 0) { - return formattedNumber; - } - - [self narrowDownPossibleFormats_:self.nationalNumber_]; - - if ([self maybeCreateNewTemplate_]) { - return [self inputAccruedNationalNumber_]; - } - - return self.ableToFormat_ ? [self appendNationalNumber_:tempNationalNumber] : self.accruedInput_; - } - else { - return [self attemptToChooseFormattingPattern_]; - } - } -}; - - -/** - * @return {string} - * @private - */ -- (NSString*)attemptToChoosePatternWithPrefixExtracted_ -{ - self.ableToFormat_ = YES; - self.isExpectingCountryCallingCode_ = NO; - [self.possibleFormats_ removeAllObjects]; - return [self attemptToChooseFormattingPattern_]; -}; - - -/** - * Some national prefixes are a substring of others. If extracting the shorter - * NDD doesn't result in a number we can format, we try to see if we can extract - * a longer version here. - * @return {BOOL} - * @private - */ -- (BOOL)ableToExtractLongerNdd_ -{ - if (self.nationalPrefixExtracted_.length > 0) - { - // Put the extracted NDD back to the national number before attempting to - // extract a new NDD. - /** @type {string} */ - NSString *nationalNumberStr = [NSString stringWithString:self.nationalNumber_]; - self.nationalNumber_ = [NSMutableString stringWithString:@""]; - [self.nationalNumber_ appendString:self.nationalPrefixExtracted_]; - [self.nationalNumber_ appendString:nationalNumberStr]; - // Remove the previously extracted NDD from prefixBeforeNationalNumber. We - // cannot simply set it to empty string because people sometimes incorrectly - // enter national prefix after the country code, e.g. +44 (0)20-1234-5678. - /** @type {string} */ - NSString *prefixBeforeNationalNumberStr = [NSString stringWithString:self.prefixBeforeNationalNumber_]; - NSRange lastRange = [prefixBeforeNationalNumberStr rangeOfString:self.nationalPrefixExtracted_ options:NSBackwardsSearch]; - /** @type {number} */ - unsigned int indexOfPreviousNdd = (unsigned int)lastRange.location; - self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; - [self.prefixBeforeNationalNumber_ appendString:[prefixBeforeNationalNumberStr substringWithRange:NSMakeRange(0, indexOfPreviousNdd)]]; - } - - return self.nationalPrefixExtracted_ != [self removeNationalPrefixFromNationalNumber_]; -}; - - -/** - * @param {string} nextChar - * @return {BOOL} - * @private - */ -- (BOOL)isDigitOrLeadingPlusSign_:(NSString*)nextChar -{ - NSString *digitPattern = [NSString stringWithFormat:@"([%@])", NB_VALID_DIGITS_STRING]; - NSString *plusPattern = [NSString stringWithFormat:@"[%@]+", NB_PLUS_CHARS]; - - BOOL isDigitPattern = [[self.phoneUtil_ matchesByRegex:nextChar regex:digitPattern] count] > 0; - BOOL isPlusPattern = [[self.phoneUtil_ matchesByRegex:nextChar regex:plusPattern] count] > 0; - - return isDigitPattern || (self.accruedInput_.length == 1 && isPlusPattern); -}; - - -/** - * Check to see if there is an exact pattern match for these digits. If so, we - * should use this instead of any other formatting template whose - * leadingDigitsPattern also matches the input. - * @return {string} - * @private - */ -- (NSString*)attemptToFormatAccruedDigits_ -{ - /** @type {string} */ - NSString *nationalNumber = [NSString stringWithString:self.nationalNumber_]; - - /** @type {number} */ - unsigned int possibleFormatsLength = (unsigned int)self.possibleFormats_.count; - for (unsigned int i = 0; i < possibleFormatsLength; ++i) - { - /** @type {i18n.phonenumbers.NumberFormat} */ - NBNumberFormat *numberFormat = self.possibleFormats_[i]; - /** @type {string} */ - NSString * pattern = numberFormat.pattern; - /** @type {RegExp} */ - NSString *patternRegExp = [NSString stringWithFormat:@"^(?:%@)$", pattern]; - BOOL isPatternRegExp = [[self.phoneUtil_ matchesByRegex:nationalNumber regex:patternRegExp] count] > 0; - if (isPatternRegExp) { - if (numberFormat.nationalPrefixFormattingRule.length > 0) { - NSArray *matches = [self.NATIONAL_PREFIX_SEPARATORS_PATTERN_ matchesInString:numberFormat.nationalPrefixFormattingRule - options:0 - range:NSMakeRange(0, numberFormat.nationalPrefixFormattingRule.length)]; - self.shouldAddSpaceAfterNationalPrefix_ = [matches count] > 0; - } else { - self.shouldAddSpaceAfterNationalPrefix_ = NO; - } - - /** @type {string} */ - NSString *formattedNumber = [self.phoneUtil_ replaceStringByRegex:nationalNumber - regex:pattern - withTemplate:numberFormat.format]; - return [self appendNationalNumber_:formattedNumber]; - } - } - return @""; -}; - - -/** - * Combines the national number with any prefix (IDD/+ and country code or - * national prefix) that was collected. A space will be inserted between them if - * the current formatting template indicates this to be suitable. - * @param {string} nationalNumber The number to be appended. - * @return {string} The combined number. - * @private - */ -- (NSString*)appendNationalNumber_:(NSString*)nationalNumber -{ - /** @type {number} */ - unsigned int prefixBeforeNationalNumberLength = (unsigned int)self.prefixBeforeNationalNumber_.length; - unichar blank_char = [self.SEPARATOR_BEFORE_NATIONAL_NUMBER_ characterAtIndex:0]; - if (self.shouldAddSpaceAfterNationalPrefix_ && prefixBeforeNationalNumberLength > 0 && - [self.prefixBeforeNationalNumber_ characterAtIndex:prefixBeforeNationalNumberLength - 1] != blank_char) - { - // We want to add a space after the national prefix if the national prefix - // formatting rule indicates that this would normally be done, with the - // exception of the case where we already appended a space because the NDD - // was surprisingly long. - - return [NSString stringWithFormat:@"%@%@%@", self.prefixBeforeNationalNumber_, self.SEPARATOR_BEFORE_NATIONAL_NUMBER_, nationalNumber]; - } else { - return [NSString stringWithFormat:@"%@%@", self.prefixBeforeNationalNumber_, nationalNumber]; - } -}; - - -/** - * Returns the current position in the partially formatted phone number of the - * character which was previously passed in as the parameter of - * {@link #inputDigitAndRememberPosition}. - * - * @return {number} - */ -- (NSInteger)getRememberedPosition -{ - if (!self.ableToFormat_) { - return self.originalPosition_; - } - /** @type {number} */ - NSInteger accruedInputIndex = 0; - /** @type {number} */ - NSInteger currentOutputIndex = 0; - /** @type {string} */ - NSString *accruedInputWithoutFormatting = self.accruedInputWithoutFormatting_; - /** @type {string} */ - NSString *currentOutput = self.currentOutput_; - - while (accruedInputIndex < self.positionToRemember_ && currentOutputIndex < currentOutput.length) - { - if ([accruedInputWithoutFormatting characterAtIndex:accruedInputIndex] == [currentOutput characterAtIndex:currentOutputIndex]) - { - accruedInputIndex++; - } - currentOutputIndex++; - } - return currentOutputIndex; -}; - - -/** - * Attempts to set the formatting template and returns a string which contains - * the formatted version of the digits entered so far. - * - * @return {string} - * @private - */ -- (NSString*)attemptToChooseFormattingPattern_ -{ - /** @type {string} */ - NSString *nationalNumber = [self.nationalNumber_ copy]; - // We start to attempt to format only when as least MIN_LEADING_DIGITS_LENGTH - // digits of national number (excluding national prefix) have been entered. - if (nationalNumber.length >= self.MIN_LEADING_DIGITS_LENGTH_) { - [self getAvailableFormats_:[nationalNumber substringWithRange:NSMakeRange(0, self.MIN_LEADING_DIGITS_LENGTH_)]]; - return [self maybeCreateNewTemplate_] ? [self inputAccruedNationalNumber_] : self.accruedInput_; - } else { - return [self appendNationalNumber_:nationalNumber]; - } -} - - -/** - * Invokes inputDigitHelper on each digit of the national number accrued, and - * returns a formatted string in the end. - * - * @return {string} - * @private - */ -- (NSString*)inputAccruedNationalNumber_ -{ - /** @type {string} */ - NSString *nationalNumber = [self.nationalNumber_ copy]; - /** @type {number} */ - unsigned int lengthOfNationalNumber = (unsigned int)nationalNumber.length; - if (lengthOfNationalNumber > 0) { - /** @type {string} */ - NSString *tempNationalNumber = @""; - for (unsigned int i = 0; i < lengthOfNationalNumber; i++) - { - tempNationalNumber = [self inputDigitHelper_:[NSString stringWithFormat: @"%C", [nationalNumber characterAtIndex:i]]]; - } - return self.ableToFormat_ ? [self appendNationalNumber_:tempNationalNumber] : self.accruedInput_; - } else { - return self.prefixBeforeNationalNumber_; - } -}; - - -/** - * @return {BOOL} YES if the current country is a NANPA country and the - * national number begins with the national prefix. - * @private - */ -- (BOOL)isNanpaNumberWithNationalPrefix_ -{ - // For NANPA numbers beginning with 1[2-9], treat the 1 as the national - // prefix. The reason is that national significant numbers in NANPA always - // start with [2-9] after the national prefix. Numbers beginning with 1[01] - // can only be short/emergency numbers, which don't need the national prefix. - if (![self.currentMetaData_.countryCode isEqual:@1]) { - return NO; - } - - /** @type {string} */ - NSString *nationalNumber = [self.nationalNumber_ copy]; - return ([nationalNumber characterAtIndex:0] == '1') && ([nationalNumber characterAtIndex:1] != '0') && - ([nationalNumber characterAtIndex:1] != '1'); -}; - - -/** - * Returns the national prefix extracted, or an empty string if it is not - * present. - * @return {string} - * @private - */ -- (NSString*)removeNationalPrefixFromNationalNumber_ -{ - /** @type {string} */ - NSString *nationalNumber = [self.nationalNumber_ copy]; - /** @type {number} */ - unsigned int startOfNationalNumber = 0; - - if ([self isNanpaNumberWithNationalPrefix_]) { - startOfNationalNumber = 1; - [self.prefixBeforeNationalNumber_ appendString:@"1"]; - [self.prefixBeforeNationalNumber_ appendFormat:@"%@", self.SEPARATOR_BEFORE_NATIONAL_NUMBER_]; - self.isCompleteNumber_ = YES; - } - else if (self.currentMetaData_.nationalPrefixForParsing != nil && self.currentMetaData_.nationalPrefixForParsing.length > 0) - { - /** @type {RegExp} */ - NSString *nationalPrefixForParsing = [NSString stringWithFormat:@"^(?:%@)", self.currentMetaData_.nationalPrefixForParsing]; - /** @type {Array.} */ - NSArray *m = [self.phoneUtil_ matchedStringByRegex:nationalNumber regex:nationalPrefixForParsing]; - NSString *firstString = [m safeObjectAtIndex:0]; - if (m != nil && firstString != nil && firstString.length > 0) { - // When the national prefix is detected, we use international formatting - // rules instead of national ones, because national formatting rules could - // contain local formatting rules for numbers entered without area code. - self.isCompleteNumber_ = YES; - startOfNationalNumber = (unsigned int)firstString.length; - [self.prefixBeforeNationalNumber_ appendString:[nationalNumber substringWithRange:NSMakeRange(0, startOfNationalNumber)]]; - } - } - - self.nationalNumber_ = [NSMutableString stringWithString:@""]; - [self.nationalNumber_ appendString:[nationalNumber substringFromIndex:startOfNationalNumber]]; - return [nationalNumber substringWithRange:NSMakeRange(0, startOfNationalNumber)]; -}; - - -/** - * Extracts IDD and plus sign to prefixBeforeNationalNumber when they are - * available, and places the remaining input into nationalNumber. - * - * @return {BOOL} YES when accruedInputWithoutFormatting begins with the - * plus sign or valid IDD for defaultCountry. - * @private - */ -- (BOOL)attemptToExtractIdd_ -{ - /** @type {string} */ - NSString *accruedInputWithoutFormatting = [self.accruedInputWithoutFormatting_ copy]; - /** @type {RegExp} */ - NSString *internationalPrefix = [NSString stringWithFormat:@"^(?:\\+|%@)", self.currentMetaData_.internationalPrefix]; - /** @type {Array.} */ - NSArray *m = [self.phoneUtil_ matchedStringByRegex:accruedInputWithoutFormatting regex:internationalPrefix]; - - NSString *firstString = [m safeObjectAtIndex:0]; - - if (m != nil && firstString != nil && firstString.length > 0) { - self.isCompleteNumber_ = YES; - /** @type {number} */ - unsigned int startOfCountryCallingCode = (unsigned int)firstString.length; - self.nationalNumber_ = [NSMutableString stringWithString:@""]; - [self.nationalNumber_ appendString:[accruedInputWithoutFormatting substringFromIndex:startOfCountryCallingCode]]; - self.prefixBeforeNationalNumber_ = [NSMutableString stringWithString:@""]; - [self.prefixBeforeNationalNumber_ appendString:[accruedInputWithoutFormatting substringWithRange:NSMakeRange(0, startOfCountryCallingCode)]]; - - if ([accruedInputWithoutFormatting characterAtIndex:0] != '+') - { - [self.prefixBeforeNationalNumber_ appendString:[NSString stringWithFormat: @"%@", self.SEPARATOR_BEFORE_NATIONAL_NUMBER_]]; - } - return YES; - } - return NO; -}; - - -/** - * Extracts the country calling code from the beginning of nationalNumber to - * prefixBeforeNationalNumber when they are available, and places the remaining - * input into nationalNumber. - * - * @return {BOOL} YES when a valid country calling code can be found. - * @private - */ -- (BOOL)attemptToExtractCountryCallingCode_ -{ - if (self.nationalNumber_.length == 0) { - return NO; - } - - /** @type {!goog.string.StringBuffer} */ - NSString *numberWithoutCountryCallingCode = @""; - - /** @type {number} */ - NSNumber *countryCode = [self.phoneUtil_ extractCountryCode:self.nationalNumber_ nationalNumber:&numberWithoutCountryCallingCode]; - - if ([countryCode isEqualToNumber:@0]) { - return NO; - } - - self.nationalNumber_ = [NSMutableString stringWithString:@""]; - [self.nationalNumber_ appendString:numberWithoutCountryCallingCode]; - - /** @type {string} */ - NSString *newRegionCode = [self.phoneUtil_ getRegionCodeForCountryCode:countryCode]; - - if ([NB_REGION_CODE_FOR_NON_GEO_ENTITY isEqualToString:newRegionCode]) { - self.currentMetaData_ = [NBMetadataHelper getMetadataForNonGeographicalRegion:countryCode]; - } else if (newRegionCode != self.defaultCountry_) - { - self.currentMetaData_ = [self getMetadataForRegion_:newRegionCode]; - } - - /** @type {string} */ - NSString *countryCodeString = [NSString stringWithFormat:@"%@", countryCode]; - [self.prefixBeforeNationalNumber_ appendString:countryCodeString]; - [self.prefixBeforeNationalNumber_ appendString:[NSString stringWithFormat: @"%@", self.SEPARATOR_BEFORE_NATIONAL_NUMBER_]]; - return YES; -}; - - -/** - * Accrues digits and the plus sign to accruedInputWithoutFormatting for later - * use. If nextChar contains a digit in non-ASCII format (e.g. the full-width - * version of digits), it is first normalized to the ASCII version. The return - * value is nextChar itself, or its normalized version, if nextChar is a digit - * in non-ASCII format. This method assumes its input is either a digit or the - * plus sign. - * - * @param {string} nextChar - * @param {BOOL} rememberPosition - * @return {string} - * @private - */ -- (NSString*)normalizeAndAccrueDigitsAndPlusSign_:(NSString *)nextChar rememberPosition:(BOOL)rememberPosition -{ - /** @type {string} */ - NSString *normalizedChar; - - if ([nextChar isEqualToString:@"+"]) { - normalizedChar = nextChar; - [self.accruedInputWithoutFormatting_ appendString:nextChar]; - } else { - normalizedChar = [[self.phoneUtil_ DIGIT_MAPPINGS] objectForKey:nextChar]; - if (!normalizedChar) return @""; - - [self.accruedInputWithoutFormatting_ appendString:normalizedChar]; - [self.nationalNumber_ appendString:normalizedChar]; - } - - if (rememberPosition) { - self.positionToRemember_ = self.accruedInputWithoutFormatting_.length; - } - - return normalizedChar; -}; - - -/** - * @param {string} nextChar - * @return {string} - * @private - */ -- (NSString*)inputDigitHelper_:(NSString *)nextChar -{ - /** @type {string} */ - NSString *formattingTemplate = [self.formattingTemplate_ copy]; - NSString *subedString = @""; - - if (formattingTemplate.length > self.lastMatchPosition_) { - subedString = [formattingTemplate substringFromIndex:self.lastMatchPosition_]; - } - - if ([self.phoneUtil_ stringPositionByRegex:subedString regex:self.DIGIT_PLACEHOLDER_] >= 0) { - /** @type {number} */ - int digitPatternStart = [self.phoneUtil_ stringPositionByRegex:formattingTemplate regex:self.DIGIT_PLACEHOLDER_]; - - /** @type {string} */ - NSRange tempRange = [formattingTemplate rangeOfString:self.DIGIT_PLACEHOLDER_]; - NSString *tempTemplate = [formattingTemplate stringByReplacingOccurrencesOfString:self.DIGIT_PLACEHOLDER_ - withString:nextChar - options:NSLiteralSearch - range:tempRange]; - self.formattingTemplate_ = [NSMutableString stringWithString:@""]; - [self.formattingTemplate_ appendString:tempTemplate]; - self.lastMatchPosition_ = digitPatternStart; - return [tempTemplate substringWithRange:NSMakeRange(0, self.lastMatchPosition_ + 1)]; - } else { - if (self.possibleFormats_.count == 1) - { - // More digits are entered than we could handle, and there are no other - // valid patterns to try. - self.ableToFormat_ = NO; - } // else, we just reset the formatting pattern. - self.currentFormattingPattern_ = @""; - return self.accruedInput_; - } -}; - - -/** - * Returns the formatted number. - * - * @return {string} - */ -- (NSString *)description { - return self.currentOutput_; -} - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h deleted file mode 100644 index 3aa2935..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.h +++ /dev/null @@ -1,762 +0,0 @@ -#import -#import "NBPhoneMetaData.h" - -@interface NBPhoneMetadataIM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataHR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataHT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLB : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataHU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIQ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataJM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataJO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataJP : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLI : NBPhoneMetaData -@end - -@interface NBPhoneMetadata881 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataME : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLK : NBPhoneMetaData -@end - -@interface NBPhoneMetadata882 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKP : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMH : NBPhoneMetaData -@end - -@interface NBPhoneMetadata883 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataML : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMP : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataKZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMQ : NBPhoneMetaData -@end - -@interface NBPhoneMetadata888 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLV : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataQA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataLY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNP : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMV : NBPhoneMetaData -@end - -@interface NBPhoneMetadataOM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMX : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataMZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataRE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSB : NBPhoneMetaData -@end - -@interface NBPhoneMetadataNZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSJ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataUA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataRO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataPY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataRS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTJ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataUG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataRU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVC : NBPhoneMetaData -@end - -@interface NBPhoneMetadata870 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataRW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataST : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSV : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSX : NBPhoneMetaData -@end - -@interface NBPhoneMetadataWF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataSZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTV : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataUS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadata878 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataYE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataZA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataUY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataVU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataUZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataWS : NBPhoneMetaData -@end - -@interface NBPhoneMetadata979 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataZM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataYT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBB : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataZW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBJ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBL : NBPhoneMetaData -@end - -@interface NBPhoneMetadata800 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataDE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataEC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBQ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataEE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataDJ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAX : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataDK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataEG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataAZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataEH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataDM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataDO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGB : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataBZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCV : NBPhoneMetaData -@end - -@interface NBPhoneMetadata808 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataFI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCW : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataFJ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCX : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGF : NBPhoneMetaData -@end - -@interface NBPhoneMetadataFK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataCZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGH : NBPhoneMetaData -@end - -@interface NBPhoneMetadataFM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataER : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGI : NBPhoneMetaData -@end - -@interface NBPhoneMetadataES : NBPhoneMetaData -@end - -@interface NBPhoneMetadataFO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataET : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataDZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGM : NBPhoneMetaData -@end - -@interface NBPhoneMetadataID : NBPhoneMetaData -@end - -@interface NBPhoneMetadataFR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataHK : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGP : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGQ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataHN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataJE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataGU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataIL : NBPhoneMetaData -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m deleted file mode 100644 index cc8a210..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCore.m +++ /dev/null @@ -1,14078 +0,0 @@ -#import "NBMetadataCore.h" -#import "NBPhoneNumberDefines.h" -#import "NBPhoneNumberDesc.h" - -#import "NBNumberFormat.h" - -@implementation NBPhoneMetadataIM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135789]\\d{6,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1624\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1624456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[569]24\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7924123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808162\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8081624567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:872299|90[0167]624)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9016247890"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:40[49]06|5624\\d)|70624\\d)\\d{3}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8456247890"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:08162\\d|3\\d{5}|4(?:40[49]06|5624\\d)|7(?:0624\\d|2299\\d))\\d{3}|55\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"IM"; - self.countryCode = [NSNumber numberWithInteger:44]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" x"; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataHR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{5,8}|[89]\\d{6,11}" withPossibleNumberPattern:@"\\d{6,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1257-9]\\d{6,10}" withPossibleNumberPattern:@"\\d{8,12}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[01]\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:[09]\\d{7}|[145]\\d{4,7})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"611234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[45]\\d{4,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"741234567"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"62\\d{6,7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"62123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"HR"; - self.countryCode = [NSNumber numberWithInteger:385]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6[09]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6[09])(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"62"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(62)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[2-5]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([2-5]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3,4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"6[145]|7"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"6[145]|7"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(80[01])(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(80[01])(\\d{3,4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats10]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-79]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:2[0125]|3[1245]|4[12]|5[1-4]|70|9[1-467])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[5-7]\\d|9[012])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"40\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4012345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GW"; - self.countryCode = [NSNumber numberWithInteger:245]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7,12}|[2-9]\\d{9,10}" withPossibleNumberPattern:@"\\d{6,13}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:11|2[02]|33|4[04]|79)[2-7]\\d{7}|80[2-467]\\d{7}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|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(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[13-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1-5]|4[25-8]|5[125689]|6[235-7]|7[157-9]|8[2-467])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|[57][2-689]|6[24-578]|8[1-6])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d|7(?:(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|9\\d)\\d|8(?:2[0-6]|[013-8]\\d)))[2-7]\\d{5}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7(?:0(?:2[2-9]|[3-8]\\d|9[0-8])|2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[1-9]|[58]\\d|7[3679]|9[689])|4(?:0[1-9]|1[15-9]|[29][89]|39|8[389])|5(?:[034678]\\d|2[03-9]|5[017-9]|9[7-9])|6(?:0[0127]|1[0-257-9]|2[0-4]|3[19]|5[4589]|[6-9]\\d)|7(?:0[2-9]|[1-79]\\d|8[1-9])|8(?:[0-7]\\d|9[013-9]))|8(?:0(?:[01589]\\d|6[67])|1(?:[02-589]\\d|1[0135-9]|7[0-79])|2(?:[236-9]\\d|5[1-9])|3(?:[0357-9]\\d|4[1-9])|[45]\\d{2}|6[02457-9]\\d|7[1-69]\\d|8(?:[0-26-9]\\d|44|5[2-9])|9(?:[035-9]\\d|2[2-9]|4[0-8]))|9\\d{3})\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:600\\d{6}|80(?:0\\d{4,8}|3\\d{9}))" withPossibleNumberPattern:@"\\d{8,13}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"186[12]\\d{9}" withPossibleNumberPattern:@"\\d{13}" withExample:@"1861123456789"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1860\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"18603451234"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"140\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1409305260"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:600\\d{6}|8(?:0(?:0\\d{4,8}|3\\d{9})|6(?:0\\d{7}|[12]\\d{9})))" withPossibleNumberPattern:@"\\d{8,13}" withExample:@"1800123456"]; - self.codeID = @"IN"; - self.countryCode = [NSNumber numberWithInteger:91]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"7(?:0[2-9]|2[0579]|3[057-9]|4[0-389]|6[0-35-9]|[57]|8[0-79])|8(?:0[015689]|1[0-57-9]|2[2356-9]|3[0-57-9]|[45]|6[02457-9]|7[1-69]|8[0124-9]|9[02-9])|9"]; - [numberFormats0_patternArray addObject:@"7(?:0(?:2[2-9]|[3-8]|9[0-8])|2(?:0[04-9]|5[09]|7[5-8]|9[389])|3(?:0[1-9]|[58]|7[3679]|9[689])|4(?:0[1-9]|1[15-9]|[29][89]|39|8[389])|5(?:[034678]|2[03-9]|5[017-9]|9[7-9])|6(?:0[0-27]|1[0-257-9]|2[0-4]|3[19]|5[4589]|[6-9])|7(?:0[2-9]|[1-79]|8[1-9])|8(?:[0-7]|9[013-9]))|8(?:0(?:[01589]|6[67])|1(?:[02-589]|1[0135-9]|7[0-79])|2(?:[236-9]|5[1-9])|3(?:[0357-9]|4[1-9])|[45]|6[02457-9]|7[1-69]|8(?:[0-26-9]|44|5[2-9])|9(?:[035-9]|2[2-9]|4[0-8]))|9"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"11|2[02]|33|4[04]|79|80[2-46]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1(?:2[0-249]|3[0-25]|4[145]|[569][14]|7[1257]|8[1346]|[68][1-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|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(?:[136][25]|22|4[28]|5[12]|[78]1|9[15])|6(?:12|[2345]1|57|6[13]|7[14]|80)"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1|88)"]; - [numberFormats3_patternArray addObject:@"7(?:12|2[14]|3[134]|4[47]|5(?:1|5[2-6])|[67]1|88)"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"1(?:[23579]|[468][1-9])|[2-8]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"160"]; - [numberFormats6_patternArray addObject:@"1600"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1600)(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"180"]; - [numberFormats7_patternArray addObject:@"1800"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"18[06]"]; - [numberFormats8_patternArray addObject:@"18[06]0"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(18[06]0)(\\d{2,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"140"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(140)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"18[06]"]; - [numberFormats10_patternArray addObject:@"18(?:03|6[12])"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats10]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20\\d{6,7}|[4-9]\\d{6,9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20\\d{6,7}|4(?:[0136]\\d{7}|[245]\\d{5,7})|5(?:[08]\\d{7}|[1-79]\\d{5,7})|6(?:[01457-9]\\d{5,7}|[26]\\d{7})" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"202012345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[0-36]\\d|5[0-6]|7[0-5]|8[0-25-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[24-8]\\d{5,6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"800223456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[02-9]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900223456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KE"; - self.countryCode = [NSNumber numberWithInteger:254]; - self.internationalPrefix = @"000"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[24-6]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[13]|3(?:0\\d|[14])|[5-7][14]|41|8[1468])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"21212862"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:2[2389]|5[4-689]|7[6-8]|9[15-9])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2023123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LA"; - self.countryCode = [NSNumber numberWithInteger:856]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"20"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(20)(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[13]|3[14]|[4-8]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-8]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"30"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(30)(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"37\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3709100"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"38\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3801234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"IO"; - self.countryCode = [NSNumber numberWithInteger:246]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataHT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-489]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[24]\\d|5[1-5]|94)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22453300"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[1-9]|4\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"34101234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"98[89]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"98901234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"HT"; - self.countryCode = [NSNumber numberWithInteger:509]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-4679]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6091234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:289|862)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2891234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9008\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9008123"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GY"; - self.countryCode = [NSNumber numberWithInteger:592]; - self.internationalPrefix = @"001"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLB -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[14-6]\\d{2}|7(?:[2-579]\\d|62|8[0-7])|[89][2-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"1123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3\\d|7(?:[019]\\d|6[013-9]|8[89]))\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"71123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[01]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[01]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LB"; - self.countryCode = [NSNumber numberWithInteger:961]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[13-6]|7(?:[2-579]|62|8[0-7])|[89][2-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[89][01]|7(?:[019]|6[013-9]|8[89])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-8]\\d{8,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:1(?:[256]\\d|3[1-9]|47)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"312123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20[0-35]|5[124-7]\\d|7[07]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6,7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KG"; - self.countryCode = [NSNumber numberWithInteger:996]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[25-7]|31[25]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3(?:1[36]|[2-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d)(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataHU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|2(?:1\\d|[2-9])|3[2-7]|4[24-9]|5[2-79]|6[23689]|7(?:1\\d|[2-9])|8[2-57-9]|9[2-69])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[27]0|3[01])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"201234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[01]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"40\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[48]0\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.codeID = @"HU"; - self.countryCode = [NSNumber numberWithInteger:36]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"06"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"06"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"758(?:4(?:30|5[0-9]|6[2-9]|8[0-2])|57[0-2]|638)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7584305678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2[0-8]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7582845678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LC"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"758"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIQ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[3-9]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"IQ"; - self.countryCode = [NSNumber numberWithInteger:964]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-6]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-6]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:[237-9]|4[56]|5\\d|6\\d?)\\d{5}|23(?:4[234]|8\\d{2})\\d{4}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"23756789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:[013-9]|2\\d?)|3[18]\\d|6[016-9]|7(?:[07-9]|6\\d)|8(?:[013-79]|8\\d)|9(?:6\\d|7\\d?|[0-589]))\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"91234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800(?:1\\d|2[019])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900(?:1\\d|2[09])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KH"; - self.countryCode = [NSNumber numberWithInteger:855]; - self.internationalPrefix = @"00[14-9]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1\\d[1-9]|[2-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[89]0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataJM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027-9]|[23]\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8765123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"876(?:2[1789]\\d|[348]\\d{2}|5(?:0[3-9]|27|6[0-24-9]|[3-578]\\d)|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8762101234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"JM"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"876"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-8]\\d{9}|9(?:[0-4]\\d{8}|9\\d{2,8})" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[137]|2[13-68]|3[1458]|4[145]|5[146-8]|6[146]|7[1467]|8[13467])\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[12]|[1-3]\\d)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-6]0\\d|993)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9932123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"943\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9432123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9990\\d{0,6}" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"9990123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"IR"; - self.countryCode = [NSNumber numberWithInteger:98]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"21"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[1-8]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2458]\\d{4}|3\\d{4,7}|7\\d{7}" withPossibleNumberPattern:@"\\d{5,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[24]\\d|3[1-9]|50|8[0-5])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"31234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[24]\\d|3[1-9]|8[0-5])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"72012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3001\\d{4}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"30010000"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KI"; - self.countryCode = [NSNumber numberWithInteger:686]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4-9]\\d{6}|38\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4(?:1[0-24-6]|2[0-7]|[37][0-8]|4[0-245]|5[0-3568]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[013-7]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|87[23])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4101234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"38[589]\\d{6}|(?:6(?:1[1-8]|3[089]|4[0167]|5[019]|[67][0-69]|9\\d)|7(?:5[057]|7\\d|8[0-36-8])|8(?:2[0-5]|3[0-4]|[469]\\d|5[1-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"6111234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9011234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"49\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4921234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6(?:2[0-8]|49|8\\d)|87[0189]|95[48])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6201234"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"IS"; - self.countryCode = [NSNumber numberWithInteger:354]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[4-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(3\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:2(?:(?:[015-7]\\d|2[2-9]|3[2-57]|4[2-8]|8[235-7])\\d|9(?:0\\d|[89]0))|3(?:(?:[0-4]\\d|[57][2-9]|6[235-8]|9[3-9])\\d|8(?:0\\d|[89]0)))\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"520123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:0[0-8]|[12-79]\\d|8[01])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"650123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MA"; - self.countryCode = [NSNumber numberWithInteger:212]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"5(?:2[015-7]|3[0-4])|6"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([56]\\d{2})(\\d{6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"5(?:2[2-489]|3[5-9])|892"]; - [numberFormats1_patternArray addObject:@"5(?:2(?:[2-48]|90)|3(?:[5-79]|80))|892"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([58]\\d{3})(\\d{5})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"5(?:29|38)"]; - [numberFormats2_patternArray addObject:@"5(?:29|38)[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8(?:0|9[013-9])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(8[09])(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataJO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:6(?:2[0-35-9]|3[0-57-8]|4[24-7]|5[0-24-8]|[6-8][02]|9[0-2])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-2]|[57][02]|60)|53(?:0[0-2]|[13][02]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2[50]0|300|4(?:0[0125]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[17-8]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[02-39]))|87(?:[02]0|7[08]|9[09]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"62001234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:55|7[25-9]|8[05-9]|9[015-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"790123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85012345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"74(?:66|77)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"746612345"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:10|8\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88101234"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"JO"; - self.countryCode = [NSNumber numberWithInteger:962]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2356]|87"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7[457-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"70|8[0158]|9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[01589]\\d{5,10}|3(?:[12457-9]\\d{8}|[36]\\d{7,9})" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0(?:[26]\\d{4,9}|(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|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])|7(?:[0159]\\d|2[12]|3[1-7]|4[2346]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[34578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7})" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"0212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:[12457-9]\\d{8}|6\\d{7,8}|3\\d{7,9})" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"3123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0\\d{6}|3\\d{3})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0878\\d{5}|1(?:44|6[346])\\d{6}|89(?:2\\d{3}|4(?:[0-4]\\d{2}|[5-9]\\d{4})|5(?:[0-4]\\d{2}|[5-9]\\d{6})|9\\d{6})" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"899123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"84(?:[08]\\d{6}|[17]\\d{3})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"848123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:78\\d|99)\\d{6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1781234567"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"55\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"848\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"848123456"]; - self.codeID = @"IT"; - self.countryCode = [NSNumber numberWithInteger:39]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"0[26]|55"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"0[26]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0[26])(\\d{4})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"0[26]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(0[26])(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"0[13-57-9][0159]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"0[13-57-9][0159]|8(?:03|4[17]|9[245])"]; - [numberFormats4_patternArray addObject:@"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"0[13-57-9][2-46-8]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"0[13-57-9][2-46-8]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d{3})(\\d{2,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"[13]|8(?:00|4[08]|9[59])"]; - [numberFormats7_patternArray addObject:@"[13]|8(?:00|4[08]|9(?:5[5-9]|9))"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"894"]; - [numberFormats8_patternArray addObject:@"894[5-9]"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataJP -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8,9}|00(?:[36]\\d{7,14}|7\\d{5,7}|8\\d{7})" withPossibleNumberPattern:@"\\d{8,17}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|2[2-9]\\d|[36][1-9]\\d|4(?:6[02-8]|[2-578]\\d|9[2-59])|5(?:6[1-9]|7[2-8]|[2-589]\\d)|7(?:3[4-9]|4[02-9]|[25-9]\\d)|8(?:3[2-9]|4[5-9]|5[1-9]|8[03-9]|[2679]\\d)|9(?:[679][1-9]|[2-58]\\d))\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"312345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[7-9]0[1-9]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"120\\d{6}|800\\d{7}|00(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})" withPossibleNumberPattern:@"\\d{8,17}" withExample:@"120123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"990\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"990123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"601234567"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"50[1-9]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2012345678"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"570\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"570123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"00(?:37\\d{6,13}|66\\d{6,13}|777(?:[01]\\d{2}|5\\d{3}|8\\d{4})|882[1245]\\d{4})" withPossibleNumberPattern:@"\\d{8,17}" withExample:@"00777012"]; - self.codeID = @"JP"; - self.countryCode = [NSNumber numberWithInteger:81]; - self.internationalPrefix = @"010"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"(?:12|57|99)0"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"800"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"0077"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"0077"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{3,4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"0088"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"00(?:37|66)"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3,4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"00(?:37|66)"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})(\\d{4,5})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"00(?:37|66)"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{5})(\\d{5,6})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"00(?:37|66)"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{6})(\\d{6,7})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"[2579]0|80[1-9]"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])"]; - [numberFormats10_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; - [numberFormats10_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats10]; - - NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; - [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])"]; - [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))"]; - [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; - [numberFormats11_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; - NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats11]; - - NSMutableArray *numberFormats12_patternArray = [[NSMutableArray alloc] init]; - [numberFormats12_patternArray addObject:@"1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)"]; - [numberFormats12_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])"]; - [numberFormats12_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]; - NBNumberFormat *numberFormats12 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats12_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats12]; - - NSMutableArray *numberFormats13_patternArray = [[NSMutableArray alloc] init]; - [numberFormats13_patternArray addObject:@"2(?:9[14-79]|74|[34]7|[56]9)|82|993"]; - NBNumberFormat *numberFormats13 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats13_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats13]; - - NSMutableArray *numberFormats14_patternArray = [[NSMutableArray alloc] init]; - [numberFormats14_patternArray addObject:@"3|4(?:2[09]|7[01])|6[1-9]"]; - NBNumberFormat *numberFormats14 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats14_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats14]; - - NSMutableArray *numberFormats15_patternArray = [[NSMutableArray alloc] init]; - [numberFormats15_patternArray addObject:@"[2479][1-9]"]; - NBNumberFormat *numberFormats15 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats15_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats15]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"(?:12|57|99)0"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"800"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"[2579]0|80[1-9]"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|5(?:76|97)|499|746|8(?:3[89]|63|47|51)|9(?:49|80|9[16])"]; - [intlNumberFormats3_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:76|97)9|499[2468]|7468|8(?:3(?:8[78]|96)|636|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; - [intlNumberFormats3_patternArray addObject:@"1(?:267|3(?:7[247]|9[278])|4(?:5[67]|66)|5(?:47|58|64|8[67])|6(?:3[245]|48|5[4-68]))|5(?:769|979[2-69])|499[2468]|7468|8(?:3(?:8[78]|96[2457-9])|636[2-57-9]|477|51[24])|9(?:496|802|9(?:1[23]|69))"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5[2-8]|[68][2-7]|7[2-689]|9[1-578])|2(?:2[03-689]|3[3-58]|4[0-468]|5[04-8]|6[013-8]|7[06-9]|8[02-57-9]|9[13])|4(?:2[28]|3[689]|6[035-7]|7[05689]|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9[4-9])|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9[014-9])|8(?:2[49]|3[3-8]|4[5-8]|5[2-9]|6[35-9]|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9[3-7])"]; - [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9[2-8])|3(?:7[2-6]|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5[4-7]|6[2-9]|8[2-8]|9[236-9])|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3[34]|[4-7]))"]; - [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6[56]))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; - [intlNumberFormats4_patternArray addObject:@"1(?:2[3-6]|3[3-9]|4[2-6]|5(?:[236-8]|[45][2-69])|[68][2-7]|7[2-689]|9[1-578])|2(?:2(?:[04-689]|3[23])|3[3-58]|4[0-468]|5(?:5[78]|7[2-4]|[0468][2-9])|6(?:[0135-8]|4[2-5])|7(?:[0679]|8[2-7])|8(?:[024578]|3[25-9]|9[6-9])|9(?:11|3[2-4]))|4(?:2(?:2[2-9]|8[237-9])|3[689]|6[035-7]|7(?:[059][2-8]|[68])|80|9[3-5])|5(?:3[1-36-9]|4[4578]|5[013-8]|6[1-9]|7[2-8]|8[14-7]|9(?:[89][2-8]|[4-7]))|7(?:2[15]|3[5-9]|4[02-9]|6[135-8]|7[0-4689]|9(?:[017-9]|4[6-8]|5[2-478]|6[2-589]))|8(?:2(?:4[4-8]|9(?:[3578]|20|4[04-9]|6(?:5[25]|60)))|3(?:7(?:[2-5]|6[0-59])|[3-6][2-9]|8[2-5])|4[5-8]|5[2-9]|6(?:[37]|5(?:[467]|5[014-9])|6(?:[2-8]|9[02-69])|8[2-8]|9(?:[236-8]|9[23]))|7[579]|8[03-579]|9[2-8])|9(?:[23]0|4[02-46-9]|5[024-79]|6[4-9]|7[2-47-9]|8[02-7]|9(?:3(?:3[02-9]|4[0-24689])|4[2-69]|[5-7]))"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - - NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats5_patternArray addObject:@"1|2(?:2[37]|5[5-9]|64|78|8[39]|91)|4(?:2[2689]|64|7[347])|5(?:[2-589]|39)|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93)"]; - [intlNumberFormats5_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9[19])|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93[34])"]; - [intlNumberFormats5_patternArray addObject:@"1|2(?:2[37]|5(?:[57]|[68]0|9(?:17|99))|64|78|8[39]|917)|4(?:2(?:[68]|20|9[178])|64|7[347])|5(?:[2-589]|39[67])|60|8(?:[46-9]|3[279]|2[124589])|9(?:[235-8]|93(?:31|4))"]; - NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; - - NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats6_patternArray addObject:@"2(?:9[14-79]|74|[34]7|[56]9)|82|993"]; - NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; - - NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats7_patternArray addObject:@"3|4(?:2[09]|7[01])|6[1-9]"]; - NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; - - NSMutableArray *intlNumberFormats8_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats8_patternArray addObject:@"[2479][1-9]"]; - NBNumberFormat *intlNumberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats8]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataMC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4689]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"870\\d{5}|9[2-47-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"99123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{8}|4(?:4\\d|5[2-9])\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"612345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.codeID = @"MC"; - self.countryCode = [NSNumber numberWithInteger:377]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"4"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6)(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[379]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:6[0-37-9]|7[0-57-9])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7712345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[234]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3212345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:39[01]|9[01]0)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9001234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KM"; - self.countryCode = [NSNumber numberWithInteger:269]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:1[0569]|2\\d|3[015-7]|4[1-46-9]|5[0-24689]|6[2-589]|7[1-37]|9[1347-9])|5(?:33|5[257]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:562\\d|6(?:[089]\\d{2}|1[01]\\d|21\\d|50\\d|7(?:[1-6]\\d|7[0-4]))|7(?:6[07]|7[457-9]|[89]\\d)\\d)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"65012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[056]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80812345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[08]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"30123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:03|14)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80312345"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MD"; - self.countryCode = [NSNumber numberWithInteger:373]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"22|3"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[13-79]|[5-7]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([25-7]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{8}|[23789]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:01|1[27]|3\\d|6[02-578]|96)|3(?:7[0135-7]|8[048]|9[0269]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:51[01]|6(?:[01][0-4]|2[016-9]|88)|710)\\d{5}|7(?:36|4[25]|56|[7-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"661234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0(?:2[238]|79)|9\\d{2})\\d{2}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8002222"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90(?:0(?:2[278]|79)|1(?:23|3[012])|6(?:4\\d|6[0126]))\\d{2}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9002222"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"701\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7011234"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"87(?:0[128]|7[0-4])\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8770123"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"697(?:[35]6|4[25]|[7-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"697361234"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LI"; - self.countryCode = [NSNumber numberWithInteger:423]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[23]|7[3-57-9]|87"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"6[567]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6[567]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"697"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(69)(7\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[7-9]0"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]0\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"[89]0"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([89]0\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata881 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"612345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:881]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[67]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"869(?:2(?:29|36)|302|4(?:6[015-9]|70))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8692361234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"869(?:5(?:5[6-8]|6[5-7])|66\\d|76[02-6])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8697652917"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KN"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"869"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataME -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20[2-8]|3(?:0[2-7]|1[35-7]|2[3567]|3[4-7])|4(?:0[237]|1[27])|5(?:0[47]|1[27]|2[378]))\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"30234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:32\\d|[89]\\d{2}|7(?:[0-8]\\d|9(?:[3-9]|[0-2]\\d)))\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"67622901"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[28]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80080002"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:88\\d|9(?:4[13-8]|5[16-8]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"94515151"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"78[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"78108780"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"77\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77273012"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ME"; - self.countryCode = [NSNumber numberWithInteger:382]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-57-9]|6[3789]"]; - [numberFormats0_patternArray addObject:@"[2-57-9]|6(?:[389]|7(?:[0-8]|9[3-9]))"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"679"]; - [numberFormats1_patternArray addObject:@"679[0-2]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(67)(9)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[68]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:1(?:17|2(?:[0189]\\d|[2-6]|7\\d?)|3(?:[01378]|2\\d)|4[01]|69|7[014])|2(?:17|5(?:[0-36-8]|4\\d?)|69|70)|3(?:17|2(?:[0237]\\d?|[14-689])|34|6[29]|7[01]|81)|4(?:17|2(?:[012]|7?)|4(?:[06]|1\\d)|5(?:[01357]|[25]\\d?)|69|7[01])|5(?:17|2(?:[0459]|[23678]\\d?)|69|7[01])|6(?:17|2(?:5|6\\d?)|38|42|69|7[01])|7(?:17|2(?:[569]|[234]\\d?)|3(?:0\\d?|[13])|69|7[01]))\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"61221234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:60|8[125])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"811234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8701\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"870123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:3\\d{2}|86)\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"88612345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NA"; - self.countryCode = [NSNumber numberWithInteger:264]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"8[1235]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6\\d)(\\d{2,3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"88"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(88)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"870"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(870)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"590(?:[02][79]|13|5[0-268]|[78]7)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"590271234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"690(?:0[0-7]|[1-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690301234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MF"; - self.countryCode = [NSNumber numberWithInteger:590]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[189]1|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"112345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[125-8]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LK"; - self.countryCode = [NSNumber numberWithInteger:94]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-689]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{1})(\\d{6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata882 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]\\d{6,11}" withPossibleNumberPattern:@"\\d{7,12}" withExample:@"3451234567"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"3451234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:2\\d{3}|37\\d{2}|4(?:2|7\\d{3}))\\d{4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"3451234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15678]|9[0689])\\d{4}|6\\d{5,10})|345\\d{7}" withPossibleNumberPattern:@"\\d{7,12}" withExample:@"3451234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"348[57]\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"3451234567"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:882]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"3[23]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"16|342"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"34[57]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"348"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"16"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"16"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,5})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKP -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{9}|[28]\\d{7}" withPossibleNumberPattern:@"\\d{6,8}|\\d{10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}|85\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"19[123]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1921234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"23821234"]; - self.codeID = @"KP"; - self.countryCode = [NSNumber numberWithInteger:850]; - self.internationalPrefix = @"00|99"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:2\\d{2}|4[47]\\d|5[3467]\\d|6[279]\\d|7(?:2[29]|[35]\\d)|8[268]\\d|9[245]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"202123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[2-49]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"321234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"221234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MG"; - self.countryCode = [NSNumber numberWithInteger:261]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([23]\\d)(\\d{2})(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[0-4]|[79]\\d|8[0-79])\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"751234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"36\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"366711"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NC"; - self.countryCode = [NSNumber numberWithInteger:687]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-46-9]|5[0-4]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1.$2.$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:247|528|625)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2471234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:235|329|45[56]|545)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2351234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"635\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6351234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MH"; - self.countryCode = [NSNumber numberWithInteger:692]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata883 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"51\\d{7}(?:\\d{3})?" withPossibleNumberPattern:@"\\d{9}(?:\\d{3})?" withExample:@"510012345"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"510012345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"510012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"51(?:00\\d{5}(?:\\d{3})?|[13]0\\d{8})" withPossibleNumberPattern:@"\\d{9}(?:\\d{3})?" withExample:@"510012345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:883]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"510"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"510"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"51[13]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{3,9}|8\\d{8}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2|3[1-3]|[46][1-4]|5[1-5])(?:1\\d{2,3}|[1-9]\\d{6,7})" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[0-26-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1023456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"602345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"50\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"15\\d{7,8}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1523456789"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|55|77|99))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"15441234"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KR"; - self.countryCode = [NSNumber numberWithInteger:82]; - self.internationalPrefix = @"00(?:[124-68]|[37]\\d{2})"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0(8[1-46-8]|85\\d{2})?"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5[458])|[57]0"]; - [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][1-9]"]; - [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][1-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"131"]; - [numberFormats2_patternArray addObject:@"1312"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"131"]; - [numberFormats3_patternArray addObject:@"131[13-9]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"13[2-9]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"30"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"2[1-9]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3,4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"21[0-46-9]"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3,4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"[3-6][1-9]1"]; - [numberFormats8_patternArray addObject:@"[3-6][1-9]1(?:[0-46-9])"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"1(?:5[46-9]|6[04678]|8[0579])"]; - [numberFormats9_patternArray addObject:@"1(?:5(?:44|66|77|88|99)|6(?:00|44|6[16]|70|88)|8(?:00|55|77|99))"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC-$1"]; - [numberFormats_FormatArray addObject:numberFormats9]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[0289]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:0(?:20|3[1-7]|4[134]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:89|9\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"93123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"08\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"08123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"09\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"09123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NE"; - self.countryCode = [NSNumber numberWithInteger:227]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[289]|09"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"08"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(08)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataNF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]\\d{5}" withPossibleNumberPattern:@"\\d{5,6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:06|17|28|39)|3[012]\\d)\\d{3}" withPossibleNumberPattern:@"\\d{5,6}" withExample:@"106609"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[58]\\d{4}" withPossibleNumberPattern:@"\\d{5,6}" withExample:@"381234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NF"; - self.countryCode = [NSNumber numberWithInteger:672]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-578]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[23]\\d|5[124578]|6[01])|3(?:1[3-6]|[23][2-6]|4[2356])|4(?:[23][2-6]|4[3-6]|5[256]|6[25-8]|7[24-6]|8[4-6]))\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"22212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[0-25-8]\\d{2}|32\\d|421)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"72345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[02-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:0[1-9]|[1-9]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MK"; - self.countryCode = [NSNumber numberWithInteger:389]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[347]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([347]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[58]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([58]\\d{2})(\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-6]\\d{5,8}|9\\d{5,9}|[78]\\d{5,13}" withPossibleNumberPattern:@"\\d{5,14}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12]\\d{6,7}|9(?:0[3-9]|[1-9]\\d)\\d{5}|(?:3\\d|4[023568]|5[02368]|6[02-469]|7[4-69]|8[2-9])\\d{6}|(?:4[47]|5[14579]|6[1578]|7[0-357])\\d{5,6}|(?:78|41)\\d{5}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:7[34]\\d|8(?:04|[124579]\\d|8[0-3])|95\\d)|287[0-7]|3(?:18[1-8]|88[0-7]|9(?:8[5-9]|6[1-5]))|4(?:28[0-2]|6(?:7[1-9]|8[02-47])|88[0-2])|5(?:2(?:7[7-9]|8\\d)|38[1-79]|48[0-7]|68[4-7])|6(?:2(?:7[7-9]|8\\d)|4(?:3[7-9]|[68][129]|7[04-69]|9[1-8])|58[0-2]|98[7-9])|7(?:38[0-7]|69[1-8]|78[2-4])|8(?:28[3-9]|38[0-2]|4(?:2[12]|3[147-9]|5[346]|7[4-9]|8[014-689]|90)|58[1-8]|78[2-9]|88[5-7])|98[07]\\d)\\d{4}|(?:70(?:[13-9]\\d|2[1-9])|8(?:0[2-9]|1\\d)\\d|90[2359]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"8021234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7,11}" withPossibleNumberPattern:@"\\d{10,14}" withExample:@"80017591759"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{7,11}" withPossibleNumberPattern:@"\\d{10,14}" withExample:@"7001234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NG"; - self.countryCode = [NSNumber numberWithInteger:234]; - self.internationalPrefix = @"009"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[129]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([129])(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[3-6]|7(?:[1-79]|0[1-9])|8[2-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"70|8[01]|90[2359]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[78]00"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([78]00)(\\d{4})(\\d{4,5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[78]00"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([78]00)(\\d{5})(\\d{5,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"78"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(78)(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataML -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[246-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0(?:2[0-589]|7\\d)|1(?:2[5-7]|[3-689]\\d|7[2-4689]))|44[239]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{7}|9[0-25-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"65012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ML"; - self.countryCode = [NSNumber numberWithInteger:223]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[246-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"67|74"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[246-9]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[14578]\\d{5,7}|[26]\\d{5,8}|9(?:2\\d{0,2}|[58]|3\\d|4\\d{1,2}|6\\d?|[79]\\d{0,2})\\d{6}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:2\\d{1,2}|[3-5]\\d|6\\d?|[89][0-6]\\d)\\d{4}|2(?:[236-9]\\d{4}|4(?:0\\d{5}|\\d{4})|5(?:1\\d{3,6}|[02-9]\\d{3,5}))|4(?:2[245-8]|[346][2-6]|5[3-5])\\d{4}|5(?:2(?:20?|[3-8])|3[2-68]|4(?:21?|[4-8])|5[23]|6[2-4]|7[2-8]|8[24-7]|9[2-7])\\d{4}|6(?:0[23]|1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7(?:[2367]|4\\d|5\\d?|8[145]\\d)|8[245]|9[24])\\d{4}|7(?:[04][24-8]|[15][2-7]|22|3[2-4])\\d{4}|8(?:1(?:2\\d?|[3-689])|2[2-8]|3[24]|4[24-7]|5[245]|6[23])\\d{4}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"1234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"17[01]\\d{4}|9(?:2(?:[0-4]|5\\d{2})|3[136]\\d|4(?:0[0-4]\\d|[1379]\\d|[24][0-589]\\d|5\\d{2}|88)|5[0-6]|61?\\d|7(?:3\\d|9\\d{2})|8\\d|9(?:1\\d|7\\d{2}|[089]))\\d{5}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"92123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1333\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"13331234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MM"; - self.countryCode = [NSNumber numberWithInteger:95]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1|2[45]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"251"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"16|2"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"67|81"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[4-8]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"9(?:2[0-4]|[35-9]|4[13789])"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{4,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"94[0245]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9)(4\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"925"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}|[37-9]\\d{8}|[45]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:330\\d|4[67]|5\\d|77\\d{2}|88\\d{2}|994\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"770123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[03]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"332(?:0[02]|5\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"332001234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LR"; - self.countryCode = [NSNumber numberWithInteger:231]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[79]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([79]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[4-6]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([4-6])(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[38]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12578]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:5[0-7]\\d{5}|[78]\\d{6})|7[5-8]\\d{6}|8\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"18001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NI"; - self.countryCode = [NSNumber numberWithInteger:505]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12569]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:18\\d|2(?:[23]\\d{2}|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7])))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:[05]\\d|1[0-6])|6(?:0[034679]|5[015-9]|6\\d|7[067]|9[0369])|9(?:0[09]|4[049]|55|6[069]|[79]\\d|8[089]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KW"; - self.countryCode = [NSNumber numberWithInteger:965]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1269]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5[015]\\d)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12]\\d{7,9}|[57-9]\\d{7}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12](?:1\\d|2(?:[1-3]\\d?|7\\d)|3[2-8]\\d{1,2}|4[2-68]\\d{1,2}|5[1-4689]\\d{1,2})\\d{5}|5[0568]\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"50123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8[689]|9[013-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[05-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"75123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MN"; - self.countryCode = [NSNumber numberWithInteger:976]; - self.internationalPrefix = @"001"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[12]1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d)(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[12]2[1-3]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([12]2\\d)(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[12](?:27|[3-5])"]; - [numberFormats2_patternArray addObject:@"[12](?:27|[3-5]\\d)2"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[57-9]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[12](?:27|[3-5])"]; - [numberFormats4_patternArray addObject:@"[12](?:27|[3-5]\\d)[4-9]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d{4})(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2568]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[256]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80021234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LS"; - self.countryCode = [NSNumber numberWithInteger:266]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:0[02-579]|19|2[37]|3[03]|4[479]|57|65|7[016-8]|8[58]|9[1349])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:[09]\\d|1[14-7]|2[0-3]|3[03]|4[0457]|5[56]|6[068]|7[06-8]|8[089])|4(?:3[013-69]|4\\d|7[0-689])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-267]|3[06]|[49]0|5[06-9]|7[0-24-7]|8[89])|8(?:[34]\\d|5[0-4]|8[02])|9(?:0[6-8]|1[016-8]|2[036-8]|3[3679]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2001234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[16]1|21[89]|8(?:1[01]|7[23]))\\d{4}|6(?:[024-9]\\d|1[0-5]|3[0-24-9])\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"60012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[09]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:779|8(?:2[235]|55|60|7[578]|86|95)|9(?:0[0-2]|81))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8601234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PA"; - self.countryCode = [NSNumber numberWithInteger:507]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-57-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:28[2-57-9]|8[2-57-9]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"28212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[236]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"66123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MO"; - self.countryCode = [NSNumber numberWithInteger:853]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([268]\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[1478]|4[124-6]|52)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"31234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"61234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[0239]|10)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80812345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[67]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70712345"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LT"; - self.countryCode = [NSNumber numberWithInteger:370]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"[08]"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"37|4(?:1|5[45]|6[2-4])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([34]\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(8-$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3[148]|4(?:[24]|6[09])|528|6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-6]\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(8-$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[7-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"52[0-79]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(5)(2\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(8-$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"3452221234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"345(?:32[1-9]|5(?:1[67]|2[5-7]|4[6-8]|76)|9(?:1[67]|2[3-9]|3[689]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3453231234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}|345976\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"345849\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3458491234"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KY"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"345"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMP -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[589]|8[3-9]8|989)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6702345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"670(?:2(?:3[3-7]|56|8[5-8])|32[1238]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[589]|8[3-9]8|989)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6702345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MP"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"670"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24-9]\\d{3,10}|3(?:[0-46-9]\\d{2,9}|5[013-9]\\d{1,8})" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[259]\\d{2,9}|[346-8]\\d{4}(?:\\d{2})?)|(?:[3457]\\d{2}|8(?:0[2-9]|[13-9]\\d)|9(?:0[89]|[2-579]\\d))\\d{1,8})" withPossibleNumberPattern:@"\\d{4,11}" withExample:@"27123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[2679][18]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"628123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[01]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:1\\d{5}|[2-689]\\d{1,7})" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"20201234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LU"; - self.countryCode = [NSNumber numberWithInteger:352]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"(15(?:0[06]|1[12]|35|4[04]|55|6[26]|77|88|99)\\d)"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-5]|7[1-9]|[89](?:[1-9]|0[2-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"20"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"2(?:[0367]|4[3-8])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"20"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"2(?:[0367]|4[3-8])"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"2(?:[12589]|4[12])|[3-5]|7[1-9]|[89](?:[1-9]|0[2-9])"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{1,4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"[89]0[01]|70"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats8]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{4,8}|[2-7]\\d{8}|[89]\\d{6,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0135-8]|2[02-69]|3[0-68]|4[0135-9]|[57]\\d|8[478])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"101234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[1-58]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[069]\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"9061234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"851234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"66\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"662345678"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"140(?:1(?:[035]|[16-8]\\d)|2(?:[0346]|[259]\\d)|3(?:[03568]|[124]\\d)|4(?:[0356]|[17-9]\\d)|5(?:[0358]|[124679]\\d)|7\\d|8[458])" withPossibleNumberPattern:@"\\d{5,6}" withExample:@"14020"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14\\d{3,4}" withPossibleNumberPattern:@"\\d{5,6}" withExample:nil]; - self.codeID = @"NL"; - self.countryCode = [NSNumber numberWithInteger:31]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1[035]|2[0346]|3[03568]|4[0356]|5[0358]|7|8[4578]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-578]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-5]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"6[0-57-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6)(\\d{8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"66"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(66)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"14"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(14)(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"80|9"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([89]0\\d)(\\d{4,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataKZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:33\\d|7\\d{2}|80[09])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"33622\\d{5}|7(?:1(?:0(?:[23]\\d|4[023]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[1-79]|4[0-35-9]|59)|4(?:2\\d|3[013-79]|4[0-8]|5[1-79])|5(?:2\\d|3[1-8]|4[1-7]|59)|6(?:[234]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[234]\\d|5[139])|4(?:2\\d|3[1235-9]|59)|5(?:[23]\\d|4[01246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[237]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59)))\\d{5}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:0[012578]|47|6[02-4]|7[15-8]|85)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7710009998"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"809\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8091234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"751\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7511234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"751\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7511234567"]; - self.codeID = @"KZ"; - self.countryCode = [NSNumber numberWithInteger:7]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = @"8~10"; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"8"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMQ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"596301234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"696(?:[0-479]\\d|5[01]|8[0-689])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"696201234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MQ"; - self.countryCode = [NSNumber numberWithInteger:596]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata888 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{11}" withPossibleNumberPattern:@"\\d{11}" withExample:@"12345678901"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678901"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678901"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{11}" withPossibleNumberPattern:@"\\d{11}" withExample:@"12345678901"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:888]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataLV -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2689]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[3-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"63123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LV"; - self.countryCode = [NSNumber numberWithInteger:371]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2689]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-48]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"25[08]\\d{5}|35\\d{6}|45[1-7]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"35123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:2\\d|70)|3(?:3\\d|6[1-36]|7[1-3])|4(?:[49]\\d|6[0457-9]|7[4-9]|8[01346-8]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MR"; - self.countryCode = [NSNumber numberWithInteger:222]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-48]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[14-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"11234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"805\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80512345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[24]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80212345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PE"; - self.countryCode = [NSNumber numberWithInteger:51]; - self.internationalPrefix = @"19(?:1[124]|77|90)00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" Anexo "; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[4-7]|8[2-4]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([4-8]\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"664491\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6644912345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"66449[2-6]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6644923456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MS"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"664"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataQA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4[04]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"44123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3567]\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"33123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[12]\\d|61)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"QA"; - self.countryCode = [NSNumber numberWithInteger:974]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[28]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([28]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[3-7]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-7]\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|[2-9]\\d{7}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[015-8]|5[89]|9\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40612345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[01]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"82[09]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"82012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810(?:0[0-6]|[2-8]\\d)\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81021234"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"880\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85[0-5]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85012345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:@"01234"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81[23]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81212345"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NO"; - self.countryCode = [NSNumber numberWithInteger:47]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[489]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([489]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[235-7]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([235-7]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataPF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{5,7}|8\\d{7}" withPossibleNumberPattern:@"\\d{6}(?:\\d{2})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4(?:[09][45689]\\d|4)\\d{4}" withPossibleNumberPattern:@"\\d{6}(?:\\d{2})?" withExample:@"40412345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[79]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"87123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"44\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"441234"]; - self.codeID = @"PF"; - self.countryCode = [NSNumber numberWithInteger:689]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"4[09]|8[79]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"44"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2357-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:0(?:1[0-6]|3[1-4]|[69]\\d)|[1-357]\\d{2})\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21001234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7(?:210|[79]\\d{2})|9(?:2(?:1[01]|31)|696|8(?:1[1-3]|89|97)|9\\d{2}))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"96961234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[3467]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80071234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:0(?:0(?:37|43)|6\\d{2}|70\\d|9[0168])|[12]\\d0[1-5])\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50037123"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3550\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"35501234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7117\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71171234"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"501\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"50112345"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MT"; - self.countryCode = [NSNumber numberWithInteger:356]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataLY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[25679]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1345]|5[1347]|6[123479]|71)\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-6]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"LY"; - self.countryCode = [NSNumber numberWithInteger:218]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([25679]\\d)(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNP -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-8]\\d{7}|9(?:[1-69]\\d{6,8}|7[2-6]\\d{5,7}|8\\d{8})" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0-6]\\d|2[13-79][2-6]|3[135-8][2-6]|4[146-9][2-6]|5[135-7][2-6]|6[13-9][2-6]|7[15-9][2-6]|8[1-46-9][2-6]|9[1-79][2-6])\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"14567890"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:6[013]|7[245]|8[01456])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9841234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NP"; - self.countryCode = [NSNumber numberWithInteger:977]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1[2-6]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[01]|[2-8]|9(?:[1-69]|7[15-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9(?:6[013]|7[245]|8)"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{2})(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0-2]\\d|4[25]\\d|5[34]\\d|64[1-9]|77(?:[0-24]\\d|30)|85[02-46-9]|9[78]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20150|68\\d{2}|7(?:[0-369]\\d|75)\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"6812345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"180\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"1801234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"275\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2751234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PG"; - self.countryCode = [NSNumber numberWithInteger:675]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[13-689]|27"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"20|7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[03478]\\d|1[0-7]|6[1-69])|4(?:[013568]\\d|2[4-7])|5(?:44\\d|471)|6\\d{2}|8(?:14|3[129]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"2012345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:2[59]\\d|4(?:2[1-389]|4\\d|7[1-9]|9\\d)|7\\d{2}|8(?:[256]\\d|7[15-8])|9[0-8]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"52512345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[012]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:20|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3201234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MU"; - self.countryCode = [NSNumber numberWithInteger:230]; - self.internationalPrefix = @"0(?:0|[2-7]0|33)"; - self.preferredInternationalPrefix = @"020"; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-46-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-46-9]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{5,7}|[3-9]\\d{7,9}|1800\\d{7,9}" withPossibleNumberPattern:@"\\d{5,13}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{5}(?:\\d{2})?|(?:3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578]|8[2-8])\\d{7}|88(?:22\\d{6}|42\\d{4})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:81[37]|9(?:0[5-9]|1[024-9]|2[0-35-9]|3[02-9]|4[236-9]|7[34-79]|89|9[4-9]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9051234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{7,9}" withPossibleNumberPattern:@"\\d{11,13}" withExample:@"180012345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PH"; - self.countryCode = [NSNumber numberWithInteger:63]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|5(?:22|44)|642|8(?:62|8[245])"]; - [numberFormats2_patternArray addObject:@"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]))"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"346|4(?:27|9[35])|883"]; - [numberFormats3_patternArray addObject:@"3469|4(?:279|9(?:30|56))|8834"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[3-8]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([3-8]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"81|9"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{1,2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMV -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3467]\\d{6}|9(?:00\\d{7}|\\d{6})" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:0[01]|3[0-59])|6(?:[567][02468]|8[024689]|90))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6701234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:46[46]|7[3-9]\\d|9[16-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7712345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"781\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7812345"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MV"; - self.countryCode = [NSNumber numberWithInteger:960]; - self.internationalPrefix = @"0(?:0|19)"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[3467]|9(?:[1-9]|0[1-9])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"900"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataOM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[2-6]|5|9[1-9])\\d{6}|800\\d{5,6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"23123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"92123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8007\\d{4,5}|500\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"80071234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"OM"; - self.countryCode = [NSNumber numberWithInteger:968]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[58]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([58]00)(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[458]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:444|888)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4441234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"55[5-9]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5551234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NR"; - self.countryCode = [NSNumber numberWithInteger:674]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:\\d{2})?|[2789]\\d{2})\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[2-9]|21\\d{2})\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"1234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:111|77\\d|88\\d|99\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"991234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MW"; - self.countryCode = [NSNumber numberWithInteger:265]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[1789]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMX -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{9,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:33|55|81)\\d{8}|(?:2(?:2[2-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[234][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"2221234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:(?:33|55|81)\\d{8}|(?:2(?:2[2-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-6][1-9]|[37][1-8]|8[1-35-9]|9[2-689])|5(?:88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[12457-9]|7[1-7]|8[67]|9[4-8])|7(?:[13467][1-9]|2[1-8]|5[13-9]|8[1-69]|9[17])|8(?:2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7})" withPossibleNumberPattern:@"\\d{11}" withExample:@"12221234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MX"; - self.countryCode = [NSNumber numberWithInteger:52]; - self.internationalPrefix = @"0[09]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"01"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0[12]|04[45](\\d{10})"; - self.nationalPrefixTransformRule = @"1$1"; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"33|55|81"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([358]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1(?:33|55|81)"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)([358]\\d)(\\d{4})(\\d{4})" withFormat:@"044 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"044 $2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"33|55|81"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([358]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"[2467]|3[12457-9]|5[89]|8[02-9]|9[0-35-9]"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"1(?:33|55|81)"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)([358]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"1(?:[2467]|3[12457-9]|5[89]|8[2-9]|9[1-35-9])"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataPK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{8}|[2-8]\\d{5,11}|9(?:[013-9]\\d{4,9}|2\\d(?:111\\d{6}|\\d{3,7}))" withPossibleNumberPattern:@"\\d{6,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:21|42)[2-9]\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6}|(?: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(?:1|2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}|58[126]\\d{7}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"2123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0\\d|1[0-6]|2[0-5]|[34][0-7]|55|64)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3012345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"122\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"122044444"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:[1-8]|0[468])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}" withPossibleNumberPattern:@"\\d{11,12}" withExample:@"21111825888"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PK"; - self.countryCode = [NSNumber numberWithInteger:92]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)1"]; - [numberFormats0_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)11"]; - [numberFormats0_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)111"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(111)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[349]|45|54|60|72|8[2-5]|9[2-9]"]; - [numberFormats1_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d1"]; - [numberFormats1_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d11"]; - [numberFormats1_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d111"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(111)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{7,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"2[349]|45|54|60|72|8[2-5]|9[2-9]"]; - [numberFormats3_patternArray addObject:@"(?:2[349]|45|54|60|72|8[2-5]|9[2-9])\\d[2-9]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(3\\d{2})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"58[12]|1"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([15]\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"586"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(586\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"[89]00"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"([89]00)(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[2-9]\\d|[4-9][2-9])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"323456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:1[1-35]\\d{2}|[02-4679][2-9]\\d|59\\d{2}|8(?:1[23]|[2-9]\\d))\\d{5}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[378]00\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1300123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1600\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1600123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"154\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1541234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MY"; - self.countryCode = [NSNumber numberWithInteger:60]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[4-79]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([4-79])(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(3)(\\d{4})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1[02-46-9][1-9]|8"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([18]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1[36-8]0"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)([36-8]00)(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"11"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(11)(\\d{4})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"15"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(15[49])(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-5]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"4002"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[125]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"1234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NU"; - self.countryCode = [NSNumber numberWithInteger:683]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[12]\\d{6,8}|[3-57-9]\\d{8}|6\\d{5,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[2-8]|2[2-59]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])\\d{7}|[12]2\\d{5}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[0137]|6[069]|7[2389]|88)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"512345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"39\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"391234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"64\\d{4,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"641234567"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PL"; - self.countryCode = [NSNumber numberWithInteger:48]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[124]|3[2-4]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[12]2"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{1})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"39|5[0137]|6[0469]|7[02389]|8[08]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"64"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"64"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataMZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[28]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[23467]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"821234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MZ"; - self.countryCode = [NSNumber numberWithInteger:258]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2|8[2-7]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([28]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[45]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"41\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"411234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"55\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"551234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PM"; - self.countryCode = [NSNumber numberWithInteger:508]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([45]\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataRE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"262\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"262161234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:9[23]|47)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"692123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89[1-37-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:1[019]|2[0156]|84|90)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"RE"; - self.countryCode = [NSNumber numberWithInteger:262]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = @"262|6[49]|8"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7,8}|(?:[2-467]|92)\\d{7}|5\\d{8}|8\\d{9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"11\\d{7}|1?(?:2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"112345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:[013-689]\\d|7[0-26-8])|811\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"512345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"92[05]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"920012345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SA"; - self.countryCode = [NSNumber numberWithInteger:966]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-467]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-467])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[1-467]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"92"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(92\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"81"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(811)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSB -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[4-79]|[23]\\d|4[01]|5[03]|6[0-37])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"40123"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"48\\d{3}|7(?:[46-8]\\d|5[025-9]|9[0-4])\\d{4}|8[4-8]\\d{5}|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8])\\d{4}" withPossibleNumberPattern:@"\\d{5,7}" withExample:@"7421234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[38]\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"18123"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[12]\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"51123"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SB"; - self.countryCode = [NSNumber numberWithInteger:677]; - self.internationalPrefix = @"0[01]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[7-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataNZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[235-9]\\d{6}|[2-57-9]\\d{7,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[2-79]|[49][2-689]|6[235-9]|7[2-5789])\\d{6}|24099\\d{3}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"32345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[028]\\d{7,8}|1(?:[03]\\d{5,7}|[12457]\\d{5,6}|[689]\\d{5})|[79]\\d{7})" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"211234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"508\\d{6,7}|80\\d{6,8}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{7,9}" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[28]6\\d{6,7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"26123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NZ"; - self.countryCode = [NSNumber numberWithInteger:64]; - self.internationalPrefix = @"0(?:0|161)"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[3467]|9[1-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([34679])(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"240"]; - [numberFormats1_patternArray addObject:@"2409"]; - [numberFormats1_patternArray addObject:@"24099"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(24099)(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"21"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"2(?:1[1-9]|[69]|7[0-35-9])|86"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"2[028]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"2(?:10|74)|5|[89]0"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24689]\\d{5,6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4[2-46]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4217123"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[5-8]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2510123"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8000\\d{2}" withPossibleNumberPattern:@"\\d{6}" withExample:@"800000"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"98\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"981234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"64\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6412345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SC"; - self.countryCode = [NSNumber numberWithInteger:248]; - self.internationalPrefix = @"0[0-2]"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[246]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[19]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:[125]\\d|8[3567])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"121231234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[012569]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"911231234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SD"; - self.countryCode = [NSNumber numberWithInteger:249]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:787|939)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7872345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:787|939)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7872345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PR"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"787|939"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:0[1-8]\\d{6}|[136]\\d{5,7}|(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)\\d{5,6})|2(?:[136]\\d{5,7}|(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])\\d{5,6})|3(?:[356]\\d{5,7}|(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])\\d{5,6})|4(?:0[1-9]\\d{4,6}|[246]\\d{5,7}|(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])\\d{5,6})|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])\\d{5,6}|6(?:0[1-9]\\d{4,6}|3\\d{5,7}|(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])\\d{5,6})|8[1-9]\\d{5,7}|9(?:0[1-9]\\d{4,6}|(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8])\\d{5,6})" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"8123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[0236]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:0(?:0\\d{2}|[1-9](?:0\\d{1,4}|[1-9]\\d{4}))|1(?:0\\d{4}|[1-9]\\d{4,5})|[2-9]\\d{5})" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"20123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:00|39|44)(?:1(?:[0-26]\\d{5}|[3-57-9]\\d{2})|2(?:[0-2]\\d{5}|[3-9]\\d{2})|3(?:[0139]\\d{5}|[24-8]\\d{2})|4(?:[045]\\d{5}|[1-36-9]\\d{2})|5(?:5\\d{5}|[0-46-9]\\d{2})|6(?:[679]\\d{5}|[0-58]\\d{2})|7(?:[078]\\d{5}|[1-69]\\d{2})|8(?:[578]\\d{5}|[0-469]\\d{2}))" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"77(?:0(?:0\\d{2}|[1-9](?:0\\d|[1-9]\\d{4}))|[1-6][1-9]\\d{5})" withPossibleNumberPattern:@"\\d{6}(?:\\d{3})?" withExample:@"771234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"75[1-8]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"751234567"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"74[02-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"740123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SE"; - self.countryCode = [NSNumber numberWithInteger:46]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8)(\\d{2,3})(\\d{2,3})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{3})(\\d{2})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2,3})(\\d{2})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(77)(\\d{2})(\\d{2})" withFormat:@"$1-$2$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"20"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(20)(\\d{2,3})(\\d{2})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"9[034]"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1-$2 $3 $4" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"9[034]"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"8"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8)(\\d{2,3})(\\d{2,3})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"1[013689]|2[0136]|3[1356]|4[0246]|54|6[03]|90"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{2,3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"1[13689]|2[136]|3[1356]|4[0246]|54|6[03]|90"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([1-69]\\d)(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"1[2457]|2[2457-9]|3[0247-9]|4[1357-9]|5[0-35-9]|6[124-9]|9(?:[125-8]|3[0-5]|4[0-3])"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2,3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - - NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats5_patternArray addObject:@"7"]; - NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; - - NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats6_patternArray addObject:@"7"]; - NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(77)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; - - NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats7_patternArray addObject:@"20"]; - NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(20)(\\d{2,3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; - - NSMutableArray *intlNumberFormats8_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats8_patternArray addObject:@"9[034]"]; - NBNumberFormat *intlNumberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats8_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats8]; - - NSMutableArray *intlNumberFormats9_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats9_patternArray addObject:@"9[034]"]; - NBNumberFormat *intlNumberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(9[034]\\d)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats9_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats9]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24589]\\d{7,8}|1(?:[78]\\d{8}|[49]\\d{2,3})" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:22[234789]|42[45]|82[01458]|92[369])\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[69]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"599123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:4|9\\d)\\d{2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"19123"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1700\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1700123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PS"; - self.countryCode = [NSNumber numberWithInteger:970]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2489]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2489])(2\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5[69]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1[78]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1[78]00)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"8999"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TA"; - self.countryCode = [NSNumber numberWithInteger:290]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-46-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[12]\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[136]\\d{2}|2[0-79]\\d|480)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[02]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[1-57]|1[2-47]|2[237])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"760123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:8\\d|9[1579])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"808123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"884[128]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"884123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70(?:7\\d|8[17])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"707123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PT"; - self.countryCode = [NSNumber numberWithInteger:351]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2[12]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[3-9]|[346-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-46-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[36]\\d{7}|[17-9]\\d{7,10}" withPossibleNumberPattern:@"\\d{8,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[1-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"61234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8[1-7]|9[0-8])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1?800\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"18001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"19001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[12]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"31234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7000\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"70001234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SG"; - self.countryCode = [NSNumber numberWithInteger:65]; - self.internationalPrefix = @"0[0-3]\\d"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[369]|8[1-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3689]\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[89]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"70"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(7000)(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"649(?:712|9(?:4\\d|50))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6497121234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"649(?:2(?:3[129]|4[1-7])|3(?:3[1-389]|4[1-7])|4[34][1-3])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6492311234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"64971[01]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6497101234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TC"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"649"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{3,4}" withPossibleNumberPattern:@"\\d{4,5}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[0-57-9]\\d|6[4-9])\\d{2}|(?:[2-46]\\d|7[01])\\d{2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"2158"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[59]\\d|7[2-9])\\d{2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"5012"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SH"; - self.countryCode = [NSNumber numberWithInteger:290]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2679]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22(?:[3789]0|5[0-5]|6[89])\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22501234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[02368]\\d|77\\d|9(?:5[0-4]|9\\d))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"63012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TD"; - self.countryCode = [NSNumber numberWithInteger:235]; - self.internationalPrefix = @"00|16"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{6,7}|[89]\\d{4,7}" withPossibleNumberPattern:@"\\d{5,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|[25][2-8]|3[4-8]|4[24-8]|7[3-8])\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"11234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[37][01]|4[0139]|51|6[48])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"31234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{4,6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{4,6}|89[1-3]\\d{2,5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:59|8[1-3])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"59012345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SI"; - self.countryCode = [NSNumber numberWithInteger:386]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[12]|3[4-8]|4[24-8]|5[2-8]|7[3-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[37][01]|4[0139]|51|6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-7]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89][09]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([89][09])(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"59|8[1-3]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([58]\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2771234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[234689]0|77[45789])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6201234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PW"; - self.countryCode = [NSNumber numberWithInteger:680]; - self.internationalPrefix = @"01[12]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSJ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|[4789]\\d{7}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"79\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"79123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[015-8]|5[89]|9\\d)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"41234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[01]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"82[09]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"82012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810(?:0[0-6]|[2-8]\\d)\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81021234"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"880\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"85[0-5]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85012345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{4}|81(?:0(?:0[7-9]|1\\d)|5\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{5}(?:\\d{3})?" withExample:@"01234"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81[23]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81212345"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SJ"; - self.countryCode = [NSNumber numberWithInteger:47]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataUA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-689]\\d{8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"311234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:39|50|6[36-8]|9[1-9])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"391234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"UA"; - self.countryCode = [NSNumber numberWithInteger:380]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = @"0~0"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[38]9|4(?:[45][0-5]|87)|5(?:0|6[37]|7[37])|6[36-8]|9[1-9]"]; - [numberFormats0_patternArray addObject:@"[38]9|4(?:[45][0-5]|87)|5(?:0|6(?:3[14-7]|7)|7[37])|6[36-8]|9[1-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3-689]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3[1-8]2|4[13678]2|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90"]; - [numberFormats1_patternArray addObject:@"3(?:[1-46-8]2[013-9]|52)|4(?:[1378]2|62[013-9])|5(?:[12457]2|6[24])|6(?:[49]2|[12][29]|5[24])|8[0-8]|90"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-689]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"3(?:5[013-9]|[1-46-8])|4(?:[137][013-9]|6|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6[0135-9]|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])"]; - [numberFormats2_patternArray addObject:@"3(?:5[013-9]|[1-46-8](?:22|[013-9]))|4(?:[137][013-9]|6(?:[013-9]|22)|[45][6-9]|8[4-6])|5(?:[1245][013-9]|6(?:3[02389]|[015689])|3|7[4-6])|6(?:[49][013-9]|5[0135-9]|[12][13-8])"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([3-6]\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataRO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{5,8}|[37-9]\\d{8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1(?:\\d{7}|9\\d{3})|[3-6](?:\\d{7}|\\d9\\d{2}))|3[13-6]\\d{7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"211234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:000|[1-8]\\d{2}|99\\d)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[036]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"801\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"802\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"802123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"37\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"372123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"RO"; - self.countryCode = [NSNumber numberWithInteger:40]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" int "; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[23]1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([237]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"21"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[23][3-7]|[7-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"2[3-6]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-689]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-5]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[1-8]|1[0-24-9]|4[0489])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[78]\\d{7}|00\\d{6})" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[5-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"850123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:5[0-4]|9[0-6])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"96\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"961234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.codeID = @"SK"; - self.countryCode = [NSNumber numberWithInteger:421]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{3})(\\d{2})" withFormat:@"$1/$2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[3-5]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3-5]\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1/$2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[689]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([689]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataPY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:6[12]|[78][1-6]|9[1-5])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"961456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8700[0-4]\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"870012345"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]0\\d{4,7}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"201234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PY"; - self.countryCode = [NSNumber numberWithInteger:595]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-9]0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9[1-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8700"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[2-8][1-9]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2[2-7]|3[23]|44|55|66|77)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[0-389]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90112345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TG"; - self.countryCode = [NSNumber numberWithInteger:228]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-578]\\d{7}" withPossibleNumberPattern:@"\\d{6,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235]2[2-4][2-9]\\d{4}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"22221234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[15]|3[034]|4[04]|5[05]|7[6-9]|88)\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"25123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SL"; - self.countryCode = [NSNumber numberWithInteger:232]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{7,8}|1\\d{3}(?:\\d{5,6})?" withPossibleNumberPattern:@"\\d{4}|\\d{8,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:14|6[1-3]|[89]\\d)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"812345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[08]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"601234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"1100"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"1100"]; - self.codeID = @"TH"; - self.countryCode = [NSNumber numberWithInteger:66]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"14|[3-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([13-9]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[05-7]\\d{7,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0549(?:8[0157-9]|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"0549886377"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[16]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"66661212"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[178]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[158]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"58001110"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SM"; - self.countryCode = [NSNumber numberWithInteger:378]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"(?:0549)?([89]\\d{5})"; - self.nationalPrefixTransformRule = @"0549$1"; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[5-7]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0549)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{6})" withFormat:@"0549 $1" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[5-7]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"0"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0549)(\\d{6})" withFormat:@"($1) $2" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{6})" withFormat:@"(0549) $1" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataSN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3789]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611|90[1-5])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301012345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[067]\\d|21|8[0-26]|90)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88[4689]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"884123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81[02468]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3392\\d{5}|93330\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"933301234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SN"; - self.countryCode = [NSNumber numberWithInteger:221]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[379]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataRS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[126-9]\\d{4,11}|3(?:[0-79]\\d{3,10}|8[2-9]\\d{2,9})" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:[02-9][2-9]|1[1-9])\\d|2(?:[0-24-7][2-9]\\d|[389](?:0[2-9]|[2-9]\\d))|3(?:[0-8][2-9]\\d|9(?:[2-9]\\d|0[2-9])))\\d{3,8}" withPossibleNumberPattern:@"\\d{5,12}" withExample:@"10234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:[0-689]|7\\d)\\d{6,7}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"601234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{3,9}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:90[0169]|78\\d)\\d{3,7}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[06]\\d{4,10}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"700123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"RS"; - self.countryCode = [NSNumber numberWithInteger:381]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"(?:2[389]|39)0"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([23]\\d{2})(\\d{4,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1|2(?:[0-24-7]|[389][1-9])|3(?:[0-8]|9[1-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([1-3]\\d)(\\d{5,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(6\\d)(\\d{6,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"7[26]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(7[26])(\\d{4,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"7[08]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(7[08]\\d)(\\d{4,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTJ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-59]\\d{8}" withPossibleNumberPattern:@"\\d{3,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}" withPossibleNumberPattern:@"\\d{3,9}" withExample:@"372123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50[125]|9[0-35-9]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"917123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TJ"; - self.countryCode = [NSNumber numberWithInteger:992]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = @"8~10"; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"8"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[34]7|91[78]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([349]\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"4[48]|5|9(?:1[59]|[0235-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([459]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"331"]; - [numberFormats2_patternArray addObject:@"3317"]; - [numberFormats2_patternArray addObject:@"33170"]; - [numberFormats2_patternArray addObject:@"331700"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(331700)(\\d)(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"3[1-5]"]; - [numberFormats3_patternArray addObject:@"3(?:[1245]|3(?:[02-9]|1[0-589]))"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(8) $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"06\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"06698\\d{5}" withPossibleNumberPattern:@"\\d{10}" withExample:@"0669812345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"VA"; - self.countryCode = [NSNumber numberWithInteger:379]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(06)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataSO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-79]\\d{6,8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|59)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4012345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:15\\d|2(?:4\\d|8)|6[137-9]?\\d{2}|7[1-9]\\d|907\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"71123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SO"; - self.countryCode = [NSNumber numberWithInteger:252]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2[0-79]|[13-5]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"24|[67]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"15|28|6[1378]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"69"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(69\\d)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"90"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(90\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-4]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"3010"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5-9]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:@"5190"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TK"; - self.countryCode = [NSNumber numberWithInteger:690]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataUG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"20(?:[0147]\\d{2}|2(?:40|[5-9]\\d)|3[23]\\d|5[0-4]\\d|6[03]\\d|8[0-2]\\d)\\d{4}|[34]\\d{8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"312345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2030\\d{5}|7(?:0[0-7]|[15789]\\d|2[03]|30|[46][0-4])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800[123]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[123]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"901123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"UG"; - self.countryCode = [NSNumber numberWithInteger:256]; - self.internationalPrefix = @"00[057]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[7-9]|20(?:[013-8]|2[5-9])|4(?:6[45]|[7-9])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3|4(?:[1-5]|6[0-36-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"2024"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(2024)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataRU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3489]\\d{9}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:0[12]|4[1-35-79]|5[1-3]|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-7]|7[1-37-9]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3011234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{9}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[04]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[39]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8091234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"RU"; - self.countryCode = [NSNumber numberWithInteger:7]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = @"8~10"; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"8"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-79]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[34689]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[34689]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3489]\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"8 ($1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-489]\\d{6}|7\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2112345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[3-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77212345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TL"; - self.countryCode = [NSNumber numberWithInteger:670]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-489]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"784(?:266|3(?:6[6-9]|7\\d|8[0-24-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7842661234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"784(?:4(?:3[0-4]|5[45]|89|9[0-5])|5(?:2[6-9]|3[0-4]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7844301234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"VC"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"784"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata870 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[35-7]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301234567"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"301234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[356]\\d|7[6-8])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"301234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:870]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-6]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[2-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"66123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TM"; - self.countryCode = [NSNumber numberWithInteger:993]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = @"8~10"; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"8"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"12"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(8 $1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"13|[2-5]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(8 $1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{5,6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"211234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7[124-7]|8[1-9])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7412345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:6\\d{4}|90[0-4]\\d{3})" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"561234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SR"; - self.countryCode = [NSNumber numberWithInteger:597]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-4]|5[2-58]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"56"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"59|[6-8]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataRW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[027-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[258]\\d{7}|06\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"250123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[238]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"720123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"RW"; - self.countryCode = [NSNumber numberWithInteger:250]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[7-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([7-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"0"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(0\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataTN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[012]\\d{6}|7\\d{7}|81200\\d{3}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[259]\\d|4[0-24])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8010\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80101234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[12]10\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81101234"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TN"; - self.countryCode = [NSNumber numberWithInteger:216]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24589]\\d{9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:12|3[457-9]|[58][1-9]|[467]\\d|9[1-6])|50[01])\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"2121234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4(?:1[24-8]|2[46])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"4121234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"VE"; - self.countryCode = [NSNumber numberWithInteger:58]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[19]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"181234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:12|9[1257])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"977123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SS"; - self.countryCode = [NSNumber numberWithInteger:211]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[02-8]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"20123"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7[578]|8[47-9])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7715123"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"0800222"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TO"; - self.countryCode = [NSNumber numberWithInteger:676]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-6]|7[0-4]|8[05]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7[5-9]|8[47-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"0"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataST -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2221234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[89]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9812345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ST"; - self.countryCode = [NSNumber numberWithInteger:239]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"284(?:(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}|496[0-5]\\d{3})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2842291234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"284(?:(?:3(?:0[0-3]|4[0-367])|4(?:4[0-6]|68|99)|54[0-57])\\d{4}|496[6-9]\\d{3})" withPossibleNumberPattern:@"\\d{10}" withExample:@"2843001234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"VG"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"284"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSV -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[267]\\d{7}|[89]\\d{6}(?:\\d{4})?" withPossibleNumberPattern:@"\\d{7,8}|\\d{11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[1-6]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}(?:\\d{4})?" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{4}(?:\\d{4})?" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:@"9001234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SV"; - self.countryCode = [NSNumber numberWithInteger:503]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[267]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-589]\\d{9}|444\\d{4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:0[1-7]|22|[34]\\d|5[1-59]|9[246])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"512\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5123456789"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"444\\d{4}|850\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"4441444"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"444\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"4441444"]; - self.codeID = @"TR"; - self.countryCode = [NSNumber numberWithInteger:90]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[23]|4(?:[0-35-9]|4[0-35-9])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[589]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"444"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(444)(\\d{1})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"340(?:2(?:01|2[0678]|44|77)|3(?:32|44)|4(?:22|7[34])|5(?:1[34]|55)|6(?:26|4[23]|77|9[023])|7(?:1[2-589]|27|7\\d)|884|998)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"3406421234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"340(?:2(?:01|2[0678]|44|77)|3(?:32|44)|4(?:22|7[34])|5(?:1[34]|55)|6(?:26|4[23]|77|9[023])|7(?:1[2-589]|27|7\\d)|884|998)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"3406421234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"VI"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"340"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSX -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5789]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7215(?:4[2-8]|8[239]|9[056])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7215425678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7215205678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SX"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"721"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataWF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5-7]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50|68|72)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"501234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50|68|72)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"501234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"WF"; - self.countryCode = [NSNumber numberWithInteger:681]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"868(?:2(?:[03]1|2[1-5])|6(?:0[79]|1[02-9]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8682211234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"868(?:2(?:[89]\\d)|3(?:0[1-9]|1[02-9]|[2-9]\\d)|4[6-9]\\d|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8682911234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TT"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"868"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-59]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:1\\d?|4\\d|[2356])|2(?:1\\d?|[235])|3(?:[13]\\d|4)|4[13]|5[1-3])\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"112345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:22|[35][0-8]|4\\d|6[024-9]|88|9[0-489])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"944567890"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SY"; - self.countryCode = [NSNumber numberWithInteger:963]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-5]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataSZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[027]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2(?:0[07]|[13]7|2[57])|3(?:0[34]|[1278]3|3[23]|[46][34])|(?:40[4-69]|67)|5(?:0[5-7]|1[6-9]|[23][78]|48|5[01]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22171234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[6-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"76123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"08001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"08001234"]; - self.codeID = @"SZ"; - self.countryCode = [NSNumber numberWithInteger:268]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[027]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataTV -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{4,5}" withPossibleNumberPattern:@"\\d{5,6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[02-9]\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"20123"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"901234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TV"; - self.countryCode = [NSNumber numberWithInteger:688]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-689]\\d{7,8}|7\\d{7,9}" withPossibleNumberPattern:@"\\d{8,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TW"; - self.countryCode = [NSNumber numberWithInteger:886]; - self.internationalPrefix = @"0(?:0[25679]|19)"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @"#"; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-6]|[78][1-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-8])(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"80|9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"70"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(70)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]\\d{6,9}|[2-69]\\d{7,9}|8\\d{6,8}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[025-79]|1[0189]|[348][01])|3(?:[0136-9]|[25][01])|4\\d|5(?:[01][01]|[2-9])|6(?:[0-46-8]|5[01])|7(?:[02-79]|[18][01])|8[1-9])\\d{7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"2101234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:9\\d|1(?:2\\d|6[2-9]|8[68]|99))\\d{7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{4,6}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{4,6}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"1900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]99\\d{4}|69\\d{5,6}|80\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"1992000"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]99\\d{4}|69\\d{5,6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"1992000"]; - self.codeID = @"VN"; - self.countryCode = [NSNumber numberWithInteger:84]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[17]99"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([17]99)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[48]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([48])(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"2[025-79]|3[0136-9]|5[2-9]|6[0-46-8]|7[02-79]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([235-7]\\d)(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(80)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"69"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(69\\d)(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"2[1348]|3[25]|5[01]|65|7[18]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([235-7]\\d{2})(\\d{4})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"1(?:[26]|8[68]|99)"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(1[2689]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"1[89]0"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(1[89]00)(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataUS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[026]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|4[67]|5[12]|6[014]|8[56])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[0457]|3[1247]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[01678]|4[0179]|5[12469]|7[0-3589]|8[0459]))[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2015555555"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0[1-35-9]|1[02-9]|2[4589]|3[149]|4[08]|5[1-46]|6[0279]|7[026]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[014679]|4[67]|5[12]|6[014]|8[56])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|69|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-37]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[036]|3[016]|4[16]|5[017]|6[0-279]|78|8[12])|7(?:0[1-46-8]|1[02-9]|2[0457]|3[1247]|4[07]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|28|3[0-25]|4[3578]|5[06-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[01678]|4[0179]|5[12469]|7[0-3589]|8[0459]))[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2015555555"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"US"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"($1) $2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[2-8]\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"222345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[1578]|7[1-9])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[08]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:40|6[01])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"840123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"41\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"TZ"; - self.countryCode = [NSNumber numberWithInteger:255]; - self.internationalPrefix = @"00[056]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[24]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([24]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[67]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([67]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata878 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{11}" withPossibleNumberPattern:@"\\d{12}" withExample:@"101234567890"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"101234567890"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"101234567890"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"10\\d{10}" withPossibleNumberPattern:@"\\d{12}" withExample:@"101234567890"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:878]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataYE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{6,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:7\\d|[2-68])|2[2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"1234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[0137]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"712345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"YE"; - self.countryCode = [NSNumber numberWithInteger:967]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-6]|7[24-68]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-7])(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7[0137]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataZA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-79]\\d{8}|8(?:[067]\\d{7}|[1-4]\\d{3,7})" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0-8]|2[0-378]|3[1-69]|4\\d|5[1346-8])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"101234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[0-5]|7[0-46-9])\\d{7}|8[1-4]\\d{3,7}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"711234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"86[2-9]\\d{6}|90\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"862345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"860\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"860123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"87\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"871234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"861\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"861123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ZA"; - self.countryCode = [NSNumber numberWithInteger:27]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"860"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(860)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[1-79]|8(?:[0-47]|6[1-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"8[1-4]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8[1-4]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataUY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2489]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{7}|4[2-7]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"21231234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"94231234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[05]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[0-8]\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9001234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"UY"; - self.countryCode = [NSNumber numberWithInteger:598]; - self.internationalPrefix = @"0(?:1[3-9]\\d|0)"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" int. "; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[24]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"9[1-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]0"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataVU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57-9]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[02-9]\\d|3(?:[5-7]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}" withPossibleNumberPattern:@"\\d{5}" withExample:@"22123"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:7[2-5]|[3-69]\\d)|7[013-7]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5912345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[03]\\d{3}|900\\d{4}" withPossibleNumberPattern:@"\\d{5,7}" withExample:@"30123"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"VU"; - self.countryCode = [NSNumber numberWithInteger:678]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[579]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataUZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[679]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6(?:1(?:22|3[124]|4[1-4]|5[123578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d{2}|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[12456]|9[135-8])|1[12]\\d|2(?:22|3[1345789]|4[123579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"662345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:1(?:2(?:98|2[01])|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:11\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4])|7\\d{2})|5(?:19[01]|2(?:27|9[26])|30\\d|59\\d|7\\d{2})|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|3[79]\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79])|9[0-3]\\d)|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|5\\d|3[01]|7[0-4])|5[67]\\d|6(?:2[0-26]|8\\d)|7\\d{2}))\\d{4}|7(?:0\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|33\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078])|9[4-6]\\d)|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0127]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[05629]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07])))\\d{4}|9[0-57-9]\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"UZ"; - self.countryCode = [NSNumber numberWithInteger:998]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = @"8~10"; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"8"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([679]\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataWS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{4,6}" withPossibleNumberPattern:@"\\d{5,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-5]\\d|6[1-9]|84\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{5,7}" withExample:@"22123"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:60|7[25-7]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"601234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"800123"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"WS"; - self.countryCode = [NSNumber numberWithInteger:685]; - self.internationalPrefix = @"0"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata979 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:979]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataZM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[289]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"21[1-8]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"211234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:5[05]|6\\d|7[1-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"955123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ZM"; - self.countryCode = [NSNumber numberWithInteger:260]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[29]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([29]\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{3,5}" withPossibleNumberPattern:@"\\d{4,6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[267]\\d|3[0-5]|4[4-69])\\d{2}" withPossibleNumberPattern:@"\\d{4}" withExample:@"6889"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"501234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AC"; - self.countryCode = [NSNumber numberWithInteger:247]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[346-9]|180)\\d{5}" withPossibleNumberPattern:@"\\d{6,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[78]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"712345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[346]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"312345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"180[02]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"18001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"912345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AD"; - self.countryCode = [NSNumber numberWithInteger:376]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[346-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(180[02])(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataYT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2696[0-4]\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"269601234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"639\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"639123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"YT"; - self.countryCode = [NSNumber numberWithInteger:262]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"269|63"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{7,8}|800\\d{2,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-4679][2-8]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[0256]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"501234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"400\\d{6}|800\\d{2,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[02]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700[05]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700012345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600[25]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"600212345"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AE"; - self.countryCode = [NSNumber numberWithInteger:971]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-4679][2-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-4679])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5[0256])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[479]0"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([479]00)(\\d)(\\d{5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"60|8"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([68]00)(\\d{2,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[3-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[35]\\d|49)\\d{6}" withPossibleNumberPattern:@"\\d{6,8}" withExample:@"30123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:03|44|71|[1-356])\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"61123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[08]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[0246]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[12]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"82123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[23]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70223456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BA"; - self.countryCode = [NSNumber numberWithInteger:387]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[3-5]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6[1-356]|[7-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"6[047]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"234567890"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[05-9]\\d{7}|29\\d{6})" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AF"; - self.countryCode = [NSNumber numberWithInteger:93]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-6]|7[013-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-7]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"729"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(729)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBB -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"246[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2462345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"246(?:(?:2[346]|45|82)\\d|25[0-4])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2462501234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BB"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"246"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2684601234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"268(?:464|7(?:2[0-9]|64|7[0-689]|8[02-68]))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2684641234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"26848[01]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2684801234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"26840[69]\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2684061234"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AG"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"268"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{5,9}|1\\d{9}|8[0-7]\\d{4,8}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:7(?:1[0-267]|2[0-289]|3[0-29]|[46][01]|5[1-3]|7[017]|91)|8(?:0[125]|[139][1-6]|2[0157-9]|6[1-35]|7[1-5]|8[1-8])|9(?:0[0-2]|1[1-4]|2[568]|3[3-6]|5[5-7]|6[0167]|7[15]|8[0146-8]))\\d{4}|3(?:12?[5-7]\\d{2}|0(?:2(?:[025-79]\\d|[348]\\d{1,2})|3(?:[2-4]\\d|[56]\\d?))|2(?:1\\d{2}|2(?:[12]\\d|[35]\\d{1,2}|4\\d?))|3(?:1\\d{2}|2(?:[2356]\\d|4\\d{1,2}))|4(?:1\\d{2}|2(?:2\\d{1,2}|[47]|5\\d{2}))|5(?:1\\d{2}|29)|[67]1\\d{2}|8(?:1\\d{2}|2(?:2\\d{2}|3|4\\d)))\\d{3}|4(?:0(?:2(?:[09]\\d|7)|33\\d{2})|1\\d{3}|2(?:1\\d{2}|2(?:[25]\\d?|[348]\\d|[67]\\d{1,2}))|3(?:1\\d{2}(?:\\d{2})?|2(?:[045]\\d|[236-9]\\d{1,2})|32\\d{2})|4(?:[18]\\d{2}|2(?:[2-46]\\d{2}|3)|5[25]\\d{2})|5(?:1\\d{2}|2(?:3\\d|5))|6(?:[18]\\d{2}|2(?:3(?:\\d{2})?|[46]\\d{1,2}|5\\d{2}|7\\d)|5(?:3\\d?|4\\d|[57]\\d{1,2}|6\\d{2}|8))|71\\d{2}|8(?:[18]\\d{2}|23\\d{2}|54\\d{2})|9(?:[18]\\d{2}|2[2-5]\\d{2}|53\\d{1,2}))\\d{3}|5(?:02[03489]\\d{2}|1\\d{2}|2(?:1\\d{2}|2(?:2(?:\\d{2})?|[457]\\d{2}))|3(?:1\\d{2}|2(?:[37](?:\\d{2})?|[569]\\d{2}))|4(?:1\\d{2}|2[46]\\d{2})|5(?:1\\d{2}|26\\d{1,2})|6(?:[18]\\d{2}|2|53\\d{2})|7(?:1|24)\\d{2}|8(?:1|26)\\d{2}|91\\d{2})\\d{3}|6(?:0(?:1\\d{2}|2(?:3\\d{2}|4\\d{1,2}))|2(?:2[2-5]\\d{2}|5(?:[3-5]\\d{2}|7)|8\\d{2})|3(?:1|2[3478])\\d{2}|4(?:1|2[34])\\d{2}|5(?:1|2[47])\\d{2}|6(?:[18]\\d{2}|6(?:2(?:2\\d|[34]\\d{2})|5(?:[24]\\d{2}|3\\d|5\\d{1,2})))|72[2-5]\\d{2}|8(?:1\\d{2}|2[2-5]\\d{2})|9(?:1\\d{2}|2[2-6]\\d{2}))\\d{3}|7(?:(?:02|[3-589]1|6[12]|72[24])\\d{2}|21\\d{3}|32)\\d{3}|8(?:(?:4[12]|[5-7]2|1\\d?)|(?:0|3[12]|[5-7]1|217)\\d)\\d{4}|9(?:[35]1|(?:[024]2|81)\\d|(?:1|[24]1)\\d{2})\\d{3}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"27111234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[13-9]\\d|(?:3[78]|44)[02-9]|6(?:44|6[02-9]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1812345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[03]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"96(?:0[49]|1[0-4]|6[69])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9604123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BD"; - self.countryCode = [NSNumber numberWithInteger:880]; - self.internationalPrefix = @"00[12]?"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[3-79]1"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1|3(?:0|[2-58]2)|4(?:0|[25]2|3[23]|[4689][25])|5(?:[02-578]2|6[25])|6(?:[0347-9]2|[26][25])|7[02-9]2|8(?:[023][23]|[4-7]2)|9(?:[02][23]|[458]2|6[016])"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3,6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[3-79][2-9]|8"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,7})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2644(?:6[12]|9[78])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2644612345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"264(?:235|476|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2642351234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AI"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"264"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[0-69]|[49][23]|5\\d|6[013-57-9]|71|8[0-79])[1-9]\\d{5}|[23][2-8]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4(?:[679]\\d|8[03-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"470123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:70[2-7]|90\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"78\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"78123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BE"; - self.countryCode = [NSNumber numberWithInteger:32]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"4[6-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(4[6-9]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[23]|[49][23]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-49])(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[156]|7[018]|8(?:0[1-9]|[1-79])"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([15-8]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"(?:80|9)0"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{9}|3\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|65)|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|79|8[17])|6(?:0[04]|13|39|47)|7(?:0[59]|78|8[02])|8(?:[06]7|19|73)|90[25])[2-9]\\d{6}|310\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2042345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|65)|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|79|8[17])|6(?:0[04]|13|39|47)|7(?:0[59]|78|8[02])|8(?:[06]7|19|73)|90[25])[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2042345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}|310\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CA"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24-7]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20(?:49|5[23]|9[016-9])|40(?:4[569]|5[4-6]|7[0179])|50(?:[34]\\d|50))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20491234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:[0-689]\\d|7[0-5])\\d{5}|7\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BF"; - self.countryCode = [NSNumber numberWithInteger:226]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23567]\\d{5,7}|[489]\\d{6,8}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[0-8]\\d{5,6}|9\\d{4,6})|(?:[36]\\d|5[1-9]|8[1-6]|9[1-7])\\d{5,6}|(?:4(?:[124-7]\\d|3[1-6])|7(?:0[1-9]|[1-9]\\d))\\d{4,5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"2123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:8[7-9]|98)\\d{7}|4(?:3[0789]|8\\d)\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"48123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"70012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BG"; - self.countryCode = [NSNumber numberWithInteger:359]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"29"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(2)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"43[124-7]|70[1-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"43[124-7]|70[1-9]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[78]00"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2,3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"48|8[7-9]|9[08]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataZW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[012457-9]\\d{3,8}|6\\d{3,6})|[13-79]\\d{4,8}|8[06]\\d{8}" withPossibleNumberPattern:@"\\d{3,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[3-9]|2(?:0[45]|[16]|2[28]|[49]8?|58[23]|7[246]|8[1346-9])|3(?:08?|17?|3[78]|[2456]|7[1569]|8[379])|5(?:[07-9]|1[78]|483|5(?:7?|8))|6(?:0|28|37?|[45][68][78]|98?)|848)\\d{3,6}|(?:2(?:27|5|7[135789]|8[25])|3[39]|5[1-46]|6[126-8])\\d{4,6}|2(?:(?:0|70)\\d{5,6}|2[05]\\d{7})|(?:4\\d|9[2-8])\\d{4,7}" withPossibleNumberPattern:@"\\d{3,10}" withExample:@"1312345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[1378]\\d{7}|86(?:22|44)\\d{6}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"711234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"86(?:1[12]|30|55|77|8[367]|99)\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8686123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ZW"; - self.countryCode = [NSNumber numberWithInteger:263]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"4|9[2-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([49])(\\d{3})(\\d{2,5})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[19]1|7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([179]\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"86[24]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(86\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"2(?:[278]|0[45]|[49]8)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([2356]\\d{2})(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"2(?:[278]|0[45]|48)|3(?:08|17|3[78]|[78])|5[15][78]|6(?:[29]8|37|[68][78])|80"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([1-356]\\d)(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"1[3-9]|2(?:[1-469]|0[0-35-9]|[45][0-79])|3(?:0[0-79]|1[0-689]|[24-69]|3[0-69])|5(?:[02-46-9]|[15][0-69])|6(?:[0145]|[29][0-79]|3[0-689]|[68][0-69])"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"([1-356]\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"(?:25|54)8"]; - [numberFormats7_patternArray addObject:@"258[23]|5483"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"([25]\\d{3})(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"(?:25|54)8"]; - [numberFormats8_patternArray addObject:@"258[23]|5483"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"([25]\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"86"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57]\\d{7}|6\\d{8}|8\\d{5,7}|9\\d{5}" withPossibleNumberPattern:@"\\d{5,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:[168][1-9]|[247]\\d|9[1-7])|3(?:1[1-3]|[2-6]\\d|[79][1-8]|8[1-9])|4\\d{2}|5(?:1[1-4]|[2-578]\\d|6[1-5]|9[1-7])|8(?:[19][1-5]|[2-6]\\d|[78][1-7]))\\d{5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"22345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[6-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"661234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"900123"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"808\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"808123"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AL"; - self.countryCode = [NSNumber numberWithInteger:355]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"4[0-6]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(4)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(6[6-9])(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[2358][2-5]|4[7-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[235][16-9]|8[016-9]|[79]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1458]\\d{5,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89162\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"891621234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[03-9]|8[17-9]|9[017-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:80(?:0\\d{2})?|3(?:00\\d{2})?)\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"500\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"500123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"550\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"550123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CC"; - self.countryCode = [NSNumber numberWithInteger:61]; - self.internationalPrefix = @"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"; - self.preferredInternationalPrefix = @"0011"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[136-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:3[13-6]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|88)|9[69][69])|7(?:7\\d{2}|178))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"17001234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:[1-4679]\\d|5[01356]|8[0-48])\\d|6(?:3(?:00|33|6[16])|6(?:[69]\\d|3[03-9])))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"36001234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:87|9[014578])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"84\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"84123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BH"; - self.countryCode = [NSNumber numberWithInteger:973]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{7}" withPossibleNumberPattern:@"\\d{5,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[01]\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2|47\\d)\\d{5}" withPossibleNumberPattern:@"\\d{5,8}" withExample:@"10123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[139]|55|77|9[1-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[016]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[1-4]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[2-6]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"60271234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AM"; - self.countryCode = [NSNumber numberWithInteger:374]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1|47"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"4[139]|[5-7]|9[1-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[23]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8|90"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-6]\\d{6}|[18]\\d{6,8}|9\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:2\\d{7}|\\d{6})|[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"1234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[0-2459]\\d{2}|8)\\d{5}|9[7-9]\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"991234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CD"; - self.countryCode = [NSNumber numberWithInteger:243]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"12"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"8[0-2459]|9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"88"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[1-6]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[267]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22(?:2[0-7]|[3-5]0)\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[26]9|7[14-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"79561234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BI"; - self.countryCode = [NSNumber numberWithInteger:257]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBJ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2689]\\d{7}|7\\d{3}" withPossibleNumberPattern:@"\\d{4,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:02|1[037]|2[45]|3[68])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20211234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[146-8]|9[03-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90011234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[3-5]\\d{2}" withPossibleNumberPattern:@"\\d{4}" withExample:@"7312"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"857[58]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"85751234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"81\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BJ"; - self.countryCode = [NSNumber numberWithInteger:229]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-49]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"923123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AO"; - self.countryCode = [NSNumber numberWithInteger:244]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[278]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[12]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21612345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[0257]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8776\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"87761234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CF"; - self.countryCode = [NSNumber numberWithInteger:236]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[028]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"222[1-589]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0[14-6]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"061234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CG"; - self.countryCode = [NSNumber numberWithInteger:242]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[02]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataBL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"590(?:2[7-9]|5[12]|87)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"590271234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"690(?:0[0-7]|[1-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690301234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BL"; - self.countryCode = [NSNumber numberWithInteger:590]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata800 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:800]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataCH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{8}|860\\d{9}" withPossibleNumberPattern:@"\\d{9}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[5-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"781234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[016]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"84[0248]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"840123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"878\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"878123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"74[0248]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"740123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5[18]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"581234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"860\\d{9}" withPossibleNumberPattern:@"\\d{12}" withExample:@"860123456789"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CH"; - self.countryCode = [NSNumber numberWithInteger:41]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-7]|[89]1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-9]\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"8[047]|90"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"860"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"441(?:2(?:02|23|61|[3479]\\d)|[46]\\d{2}|5(?:4\\d|60|89)|824)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"4412345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"441(?:[37]\\d|5[0-39])\\d{5}" withPossibleNumberPattern:@"\\d{10}" withExample:@"4413701234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BM"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"441"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"11\\d{8}|[2368]\\d{9}|9\\d{10}" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"11\\d{8}|(?:2(?:2(?:[013]\\d|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[067]\\d)|4(?:7[3-8]|9\\d)|6(?:[01346]\\d|2[24-6]|5[15-8])|80\\d|9(?:[0124789]\\d|3[1-6]|5[234]|6[2-46]))|3(?:3(?:2[79]|6\\d|8[2578])|4(?:[78]\\d|0[0124-9]|[1-35]\\d|4[24-7]|6[02-9]|9[123678])|5(?:[138]\\d|2[1245]|4[1-9]|6[2-4]|7[1-6])|6[24]\\d|7(?:[0469]\\d|1[1568]|2[013-9]|3[145]|5[14-8]|7[2-57]|8[0-24-9])|8(?:[013578]\\d|2[15-7]|4[13-6]|6[1-357-9]|9[124]))|670\\d)\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"675\\d{7}|9(?:11[2-9]\\d{7}|(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))[2-9]\\d{6}|\\d{4}[2-9]\\d{5})" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"91123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[04579]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8101234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"810\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8101234567"]; - self.codeID = @"AR"; - self.countryCode = [NSNumber numberWithInteger:54]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"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[124-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(?:1[1568]|2[15]|3[145]|4[13]|5[14-8]|[069]|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)?"; - self.nationalPrefixTransformRule = @"9$1"; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[68]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([68]\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[2-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[2-9]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"911"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$2 15-$3-$4" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"9(?:2[234689]|3[3-8])"]; - [numberFormats5_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))"]; - [numberFormats5_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[014-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49])))"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$2 15-$3-$4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"9[23]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$2 15-$3-$4" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])"]; - [numberFormats8_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"[23]"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"1[012]|911"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats10]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[68]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([68]\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"911"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3-$4" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"9(?:2[234689]|3[3-8])"]; - [intlNumberFormats2_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578]))"]; - [intlNumberFormats2_patternArray addObject:@"9(?:2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[014-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49])))"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3-$4" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"9[23]"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3-$4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"1"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - - NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats5_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9[147-9])|3(?:36|4[12358]|5[138]|6[24]|7[069]|8[013578])"]; - [intlNumberFormats5_patternArray addObject:@"2(?:2[013]|3[067]|49|6[01346]|80|9(?:[179]|4[13479]|8[014-9]))|3(?:36|4[12358]|5(?:[18]|3[0-689])|6[24]|7[069]|8(?:[01]|3[013469]|5[0-39]|7[0-2459]|8[0-49]))"]; - NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; - - NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats6_patternArray addObject:@"[23]"]; - NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[02-7]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:0[1-9]|4[0-24-9]|5[4-9]|6[015-79]|7[57])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"01234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CI"; - self.countryCode = [NSNumber numberWithInteger:225]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataBN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-578]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[013-9]\\d|2[0-7])\\d{4}|[3-5]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"22[89]\\d{4}|[78]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BN"; - self.countryCode = [NSNumber numberWithInteger:673]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-578]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataDE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-35-9]\\d{3,14}|4(?:[0-8]\\d{4,12}|9(?:[0-37]\\d|4(?:[1-35-8]|4\\d?)|5\\d{1,2}|6[1-8]\\d?)\\d{2,8})" withPossibleNumberPattern:@"\\d{2,15}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[246]\\d{5,13}|3(?:0\\d{3,13}|2\\d{9}|[3-9]\\d{4,13})|5(?:0[2-8]|[1256]\\d|[38][0-8]|4\\d{0,2}|[79][0-7])\\d{3,11}|7(?:0[2-8]|[1-9]\\d)\\d{3,10}|8(?:0[2-9]|[1-9]\\d)\\d{3,10}|9(?:0[6-9]\\d{3,10}|1\\d{4,12}|[2-9]\\d{4,11})" withPossibleNumberPattern:@"\\d{2,15}" withExample:@"30123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:5[0-2579]\\d{8}|6[023]\\d{7,8}|7(?:[0-57-9]\\d?|6\\d)\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"15123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7,12}" withPossibleNumberPattern:@"\\d{10,15}" withExample:@"8001234567890"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"137[7-9]\\d{6}|900(?:[135]\\d{6}|9\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:3(?:7[1-6]\\d{6}|8\\d{4})|80\\d{5,11})" withPossibleNumberPattern:@"\\d{7,14}" withExample:@"18012345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{8}" withPossibleNumberPattern:@"\\d{11}" withExample:@"70012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"16(?:4\\d{1,10}|[89]\\d{1,11})" withPossibleNumberPattern:@"\\d{4,14}" withExample:@"16412345"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18(?:1\\d{5,11}|[2-9]\\d{8})" withPossibleNumberPattern:@"\\d{8,14}" withExample:@"18500123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"17799\\d{7,8}" withPossibleNumberPattern:@"\\d{12,13}" withExample:@"177991234567"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DE"; - self.countryCode = [NSNumber numberWithInteger:49]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1[67]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{2})(\\d{7,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"15"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{3})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"3[02]|40|[68]9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"2(?:\\d1|0[2389]|1[24]|28|34)|3(?:[3-9][15]|40)|[4-8][1-9]1|9(?:06|[1-9]1)"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])"]; - [numberFormats4_patternArray addObject:@"[24-6]|[7-9](?:\\d[1-9]|[1-9]\\d)|3(?:3(?:0[1-467]|2[127-9]|3[124578]|[46][1246]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|3[1357]|4[13578]|6[1246]|7[1356]|9[1346])|5(?:0[14]|2[1-3589]|3[1357]|4[1246]|6[1-4]|7[1346]|8[13568]|9[1246])|6(?:0[356]|2[1-489]|3[124-6]|4[1347]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|3[1357]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|4[1347]|6[0135-9]|7[1467]|8[136])|9(?:0[12479]|2[1358]|3[1357]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(3\\d{4})(\\d{1,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"800"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{7,12})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"177"]; - [numberFormats7_patternArray addObject:@"1779"]; - [numberFormats7_patternArray addObject:@"17799"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(177)(99)(\\d{7,8})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"(?:18|90)0|137"]; - [numberFormats8_patternArray addObject:@"1(?:37|80)|900[1359]"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{4,10})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"181"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{2})(\\d{5,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"185"]; - [numberFormats10_patternArray addObject:@"1850"]; - [numberFormats10_patternArray addObject:@"18500"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(18\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats10]; - - NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; - [numberFormats11_patternArray addObject:@"18[68]"]; - NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(18\\d{2})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats11]; - - NSMutableArray *numberFormats12_patternArray = [[NSMutableArray alloc] init]; - [numberFormats12_patternArray addObject:@"18[2-579]"]; - NBNumberFormat *numberFormats12 = [[NBNumberFormat alloc] initWithPattern:@"(18\\d)(\\d{8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats12_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats12]; - - NSMutableArray *numberFormats13_patternArray = [[NSMutableArray alloc] init]; - [numberFormats13_patternArray addObject:@"700"]; - NBNumberFormat *numberFormats13 = [[NBNumberFormat alloc] initWithPattern:@"(700)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats13_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats13]; - - NSMutableArray *numberFormats14_patternArray = [[NSMutableArray alloc] init]; - [numberFormats14_patternArray addObject:@"138"]; - NBNumberFormat *numberFormats14 = [[NBNumberFormat alloc] initWithPattern:@"(138)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats14_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats14]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6846(?:22|33|44|55|77|88|9[19])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6846221234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"684(?:25[2468]|7(?:3[13]|70))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6847331234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AS"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"684"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23467]\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:2\\d{2}|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d{2}|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:2\\d|3[234]|4[248]|5[24]|6[2-6]|7\\d))|4(?:4\\d{2}|6(?:11|[24689]\\d|72)))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BO"; - self.countryCode = [NSNumber numberWithInteger:591]; - self.internationalPrefix = @"00(1\\d)?"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0(1\\d)?"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[234]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([234])(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[67]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([67]\\d{7})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{3,12}" withPossibleNumberPattern:@"\\d{3,13}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3,12}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-8]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|63|7[1368]|8[2457])|5(?:12|2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[1-35-8]|5[468]|62)|7(?:2[1-8]|3[25]|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{3,10}" withPossibleNumberPattern:@"\\d{3,13}" withExample:@"1234567890"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:44|5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}" withPossibleNumberPattern:@"\\d{7,13}" withExample:@"644123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[02]\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:711|9(?:0[01]|3[019]))\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:10|2[018])\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"810123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"780\\d{6,10}" withPossibleNumberPattern:@"\\d{9,13}" withExample:@"780123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:(?:0[1-9]|17)\\d{2,10}|[79]\\d{3,11})|720\\d{6,10}" withPossibleNumberPattern:@"\\d{5,13}" withExample:@"50123"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AT"; - self.countryCode = [NSNumber numberWithInteger:43]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3,12})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"5[079]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{3,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"5[079]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"5[079]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(5\\d)(\\d{4})(\\d{4,7})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"316|46|51|732|6(?:44|5[0-3579]|[6-9])|7(?:1|[28]0)|[89]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"2|3(?:1[1-578]|[3-8])|4[2378]|5[2-6]|6(?:[12]|4[1-35-9]|5[468])|7(?:2[1-8]|35|4[1-8]|[5-79])"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3,9})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2\\d|3[13-7]|4[1-5])\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"21234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[0-68]|7\\d)\\d{3}" withPossibleNumberPattern:@"\\d{5}" withExample:@"71234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CK"; - self.countryCode = [NSNumber numberWithInteger:682]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-578]\\d{5,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[237]\\d{8}|8(?:[68]\\d{3}|7[0-69]\\d{2}|9(?:[02-9]\\d{2}|1(?:[0-57-9]\\d|6[0135-9])))\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[03-9]|8[17-9]|9[017-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"180(?:0\\d{3}|2)\\d{3}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"13(?:00\\d{2})?\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1300123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"500\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"500123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"550\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"550123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"16\\d{3,7}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"1612345"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:3(?:\\d{4}|00\\d{6})|80(?:0\\d{6}|2\\d{3}))" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1300123456"]; - self.codeID = @"AU"; - self.countryCode = [NSNumber numberWithInteger:61]; - self.internationalPrefix = @"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"; - self.preferredInternationalPrefix = @"0011"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2378]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2378])(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[45]|14"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"16"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(16)(\\d{3})(\\d{2,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1(?:[38]0|90)"]; - [numberFormats3_patternArray addObject:@"1(?:[38]00|90)"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1[389]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"180"]; - [numberFormats4_patternArray addObject:@"1802"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(180)(2\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"19[13]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(19\\d)(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"19[67]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(19\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"13[1-9]"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(13)(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-9]|600|123)\\d{7,8}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2\\d{7}|1962\\d{4})|(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"221234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[4-9]\\d{7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"961234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}|1230\\d{7}" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600\\d{7,8}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"6001234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"44\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"441234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600\\d{7,8}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"6001234567"]; - self.codeID = @"CL"; - self.countryCode = [NSNumber numberWithInteger:56]; - self.internationalPrefix = @"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0|(1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"22"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[357]|4[1-35]|6[13-57]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"44"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(44)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"60|8"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([68]00)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"60"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(600)(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1230)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"219"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"[1-9]"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4,5})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"22"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"[357]|4[1-35]|6[13-57]"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"9"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"44"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(44)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"60|8"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"([68]00)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - - NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats5_patternArray addObject:@"60"]; - NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(600)(\\d{3})(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; - - NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats6_patternArray addObject:@"1"]; - NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1230)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; - - NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats7_patternArray addObject:@"219"]; - NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC ($1)"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataEC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{9,10}|[2-8]\\d{7}|9\\d{8}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7][2-7]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:39|[45][89]|[67][7-9]|[89]\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"991234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6,7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"18001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]890\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"28901234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"EC"; - self.countryCode = [NSNumber numberWithInteger:593]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[247]|[356][2-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[247]|[356][2-8]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"9"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"1"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1800)(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBQ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[347]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:318[023]|416[023]|7(?:1[578]|50)\\d)\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7151234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:318[14-68]|416[15-9]|7(?:0[01]|7[07]|[89]\\d)\\d)\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3181234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BQ"; - self.countryCode = [NSNumber numberWithInteger:599]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:22|33|4[23])\\d{6}|(?:22|33)\\d{6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"222123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[5-79]\\d{7}|[579]\\d{7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"671234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CM"; - self.countryCode = [NSNumber numberWithInteger:237]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[26]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([26])(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[23579]|88"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2357-9]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{2})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-46-9]\\d{7,10}|5\\d{8,9}" withPossibleNumberPattern:@"\\d{8,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[1-9][2-5]\\d{7}|(?:[4689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"1123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[1-9](?:7|9\\d)\\d{7}|(?:2[12478]|9[1-9])9?[6-9]\\d{7}|(?:3[1-578]|[468][1-9]|5[13-5]|7[13-579])[6-9]\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"11961234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6,7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[359]00\\d{6,7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"300123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34]00\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40041234"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34]00\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40041234"]; - self.codeID = @"BR"; - self.countryCode = [NSNumber numberWithInteger:55]; - self.internationalPrefix = @"00(?:1[45]|2[135]|31|4[13])"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0(?:(1[245]|2[135]|31|4[13])(\\d{10,11}))?"; - self.nationalPrefixTransformRule = @"$2"; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-9](?:[1-9]|0[1-9])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"9(?:[1-9]|0[1-9])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1[125689]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3,5})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"(?:1[1-9]|2[12478]|9[1-9])9"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[1-9][1-9]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"[34]00"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([34]00\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"[3589]00"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"([3589]00)(\\d{2,3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"(?:1[1-9]|2[12478]|9[1-9])9"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"[1-9][1-9]"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0 $CC ($1)"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"[34]00"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([34]00\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"[3589]00"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([3589]00)(\\d{2,3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[25-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:2\\d|8[1-9])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5(?:6\\d|9[2-478])|6(?:[039]0|22|4[01]|6[0-2])|7[34]\\d|9(?:6[45]|9[4-8]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5601234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"8001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9001234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"28\\d{5}|501\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5011234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AW"; - self.countryCode = [NSNumber numberWithInteger:297]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,9}" withPossibleNumberPattern:@"\\d{4,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"21(?:100\\d{2}|95\\d{3,4}|\\d{8,10})|(?:10|2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:71|98))(?:100\\d{2}|95\\d{3,4}|\\d{8})|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[3-9]|5[2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100\\d{2}|95\\d{3,4}|\\d{7})|80(?:29|6[03578]|7[018]|81)\\d{4}" withPossibleNumberPattern:@"\\d{4,12}" withExample:@"1012345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:[38]\\d|4[57]|5[0-35-9]|7[06-8])\\d{8}" withPossibleNumberPattern:@"\\d{11}" withExample:@"13123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:10)?800\\d{7}" withPossibleNumberPattern:@"\\d{10,12}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"16[08]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"16812345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"400\\d{7}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[4789]|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[3678]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"4001234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4|(?:10)?8)00\\d{7}" withPossibleNumberPattern:@"\\d{10,12}" withExample:@"4001234567"]; - self.codeID = @"CN"; - self.countryCode = [NSNumber numberWithInteger:86]; - self.internationalPrefix = @"(1[1279]\\d{3})?00"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"(1[1279]\\d{3})|0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"80[2678]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[48]00"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([48]00)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"100|95"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5,6})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"(?:10|2\\d)[19]"]; - [numberFormats3_patternArray addObject:@"(?:10|2\\d)(?:10|9[56])"]; - [numberFormats3_patternArray addObject:@"(?:10|2\\d)(?:100|9[56])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[3-9]"]; - [numberFormats4_patternArray addObject:@"[3-9]\\d{2}[19]"]; - [numberFormats4_patternArray addObject:@"[3-9]\\d{2}(?:10|9[56])"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"[2-9]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3,4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"21"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{4})(\\d{4,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"10[1-9]|2[02-9]"]; - [numberFormats7_patternArray addObject:@"10[1-9]|2[02-9]"]; - [numberFormats7_patternArray addObject:@"10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:71|98)"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"1[3-578]"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats10]; - - NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; - [numberFormats11_patternArray addObject:@"108"]; - [numberFormats11_patternArray addObject:@"1080"]; - [numberFormats11_patternArray addObject:@"10800"]; - NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(10800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats11]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"80[2678]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"[48]00"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([48]00)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"(?:10|2\\d)[19]"]; - [intlNumberFormats2_patternArray addObject:@"(?:10|2\\d)(?:10|9[56])"]; - [intlNumberFormats2_patternArray addObject:@"(?:10|2\\d)(?:100|9[56])"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"[3-9]"]; - [intlNumberFormats3_patternArray addObject:@"[3-9]\\d{2}[19]"]; - [intlNumberFormats3_patternArray addObject:@"[3-9]\\d{2}(?:10|9[56])"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"21"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(21)(\\d{4})(\\d{4,6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - - NSMutableArray *intlNumberFormats5_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats5_patternArray addObject:@"10[1-9]|2[02-9]"]; - [intlNumberFormats5_patternArray addObject:@"10[1-9]|2[02-9]"]; - [intlNumberFormats5_patternArray addObject:@"10(?:[1-79]|8(?:[1-9]|0[1-9]))|2[02-9]"]; - NBNumberFormat *intlNumberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"([12]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats5]; - - NSMutableArray *intlNumberFormats6_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats6_patternArray addObject:@"3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1|2[37]|3[12]|51|7[13-79]|9[15])|7(?:31|5[457]|6[09]|91)|8(?:71|98)"]; - NBNumberFormat *intlNumberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats6]; - - NSMutableArray *intlNumberFormats7_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats7_patternArray addObject:@"3(?:1[02-9]|35|49|5|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|[35][2-9]|6[4789]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[04-9]|4[3-6]|6[2368])|8(?:1[236-8]|2[5-7]|3|5[1-9]|7[02-9]|8[3678]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])"]; - NBNumberFormat *intlNumberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats7]; - - NSMutableArray *intlNumberFormats8_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats8_patternArray addObject:@"1[3-578]"]; - NBNumberFormat *intlNumberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats8_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats8]; - - NSMutableArray *intlNumberFormats9_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats9_patternArray addObject:@"108"]; - [intlNumberFormats9_patternArray addObject:@"1080"]; - [intlNumberFormats9_patternArray addObject:@"10800"]; - NBNumberFormat *intlNumberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(10800)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats9_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats9]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataEE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3,4}|[3-9]\\d{6,7}|800\\d{6,7}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5\\d|8[1-5])\\d{6}|5(?:[02]\\d{2}|1(?:[0-8]\\d|95)|5[0-478]\\d|64[0-4]|65[1-589])\\d{3}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"51234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800(?:0\\d{3}|1\\d|[2-9])\\d{3}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:40\\d{2}|900)\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"9001234"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[0-2]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:2[01245]|3[0-6]|4[1-489]|5[0-59]|6[1-46-9]|7[0-27-9]|8[189]|9[012])\\d{1,2}" withPossibleNumberPattern:@"\\d{4,5}" withExample:@"12123"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{3,4}|800[2-9]\\d{3}" withPossibleNumberPattern:@"\\d{4,7}" withExample:@"8002123"]; - self.codeID = @"EE"; - self.countryCode = [NSNumber numberWithInteger:372]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]"]; - [numberFormats0_patternArray addObject:@"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([3-79]\\d{2})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"70"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(70)(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"800"]; - [numberFormats2_patternArray addObject:@"8000"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(8000)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"40|5|8(?:00|[1-5])"]; - [numberFormats3_patternArray addObject:@"40|5|8(?:00[1-9]|[1-5])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([458]\\d{3})(\\d{3,4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3467]|8[0-4]|9[2-467])|461|502|6(?:0[12]|12|7[67]|8[78]|9[89])|702)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"2423456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(?:3(?:5[79]|[79]5)|4(?:[2-4][1-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-9]|65|77)|6[34]6|727)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2423591234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242300\\d{4}|8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BS"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"242"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataDJ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[27]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1[2-5]|7[45])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21360003"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"77[6-8]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77831001"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DJ"; - self.countryCode = [NSNumber numberWithInteger:253]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAX -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135]\\d{5,9}|[27]\\d{4,9}|4\\d{5,10}|6\\d{7,8}|8\\d{6,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[1-8]\\d{3,9}" withPossibleNumberPattern:@"\\d{6,12}" withExample:@"1812345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{5,10}|50\\d{4,8}" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"412345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]00\\d{5,6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"600123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]0\\d{4,8}|2(?:0(?:[016-8]\\d{3,7}|[2-59]\\d{2,7})|9\\d{4,8})|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"10112345"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]00\\d{3,7}|2(?:0(?:0\\d{3,7}|2[023]\\d{1,6}|9[89]\\d{1,6}))|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"100123"]; - self.codeID = @"AX"; - self.countryCode = [NSNumber numberWithInteger:358]; - self.internationalPrefix = @"00|99[049]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[13]\\d{0,3}|[24-8])\\d{7}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[124-8][2-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0[0-5]|1\\d|2[0-2]|5[01])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"3211234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"18001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"19(?:0[01]|4[78])\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"19001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CO"; - self.countryCode = [NSNumber numberWithInteger:57]; - self.internationalPrefix = @"00(?:4(?:[14]4|56)|[579])"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0([3579]|4(?:44|56))?"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1(?:8[2-9]|9[0-3]|[2-7])|[24-8]"]; - [numberFormats0_patternArray addObject:@"1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1(?:80|9[04])"]; - [numberFormats2_patternArray addObject:@"1(?:800|9(?:0[01]|4[78]))"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{7})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"1(?:8[2-9]|9[0-3]|[2-7])|[24-8]"]; - [intlNumberFormats0_patternArray addObject:@"1(?:8[2-9]|9(?:09|[1-3])|[2-7])|[24-8]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"($1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"3"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$CC $1"]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"1(?:80|9[04])"]; - [intlNumberFormats2_patternArray addObject:@"1(?:800|9(?:0[01]|4[78]))"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{7})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-8]\\d{6,7}" withPossibleNumberPattern:@"\\d{6,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"2345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]7\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"17123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BT"; - self.countryCode = [NSNumber numberWithInteger:975]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1|77"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([17]7)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-68]|7[246]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([2-8])(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataDK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-7]\\d|8[126-9]|9[1-36-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"32123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[2-7]\\d|8[126-9]|9[1-36-9])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DK"; - self.countryCode = [NSNumber numberWithInteger:45]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataEG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{4,9}|[2456]\\d{8}|3\\d{7}|[89]\\d{8,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:3[23]\\d|5(?:[23]|9\\d))|2[2-4]\\d{2}|3\\d{2}|4(?:0[2-5]|[578][23]|64)\\d|5(?:0[2-7]|[57][23])\\d|6[24-689]3\\d|8(?:2[2-57]|4[26]|6[237]|8[2-4])\\d|9(?:2[27]|3[24]|52|6[2356]|7[2-4])\\d)\\d{5}|1[69]\\d{3}" withPossibleNumberPattern:@"\\d{5,9}" withExample:@"234567890"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:0[0-269]|1[0-245]|2[0-278])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1001234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"EG"; - self.countryCode = [NSNumber numberWithInteger:20]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[23]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[012]|[89]00"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1[35]|[4-6]|[89][2-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataAZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1[28]\\d|2(?:02|1[24]|2[2-4]|33|[45]2|6[23])|365)\\d{6}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"123123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4[04]|5[015]|60|7[07])\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"401234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"88\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"881234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900200\\d{3}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900200123"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AZ"; - self.countryCode = [NSNumber numberWithInteger:994]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"(?:1[28]|2(?:[45]2|[0-36])|365)"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[4-8]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataEH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"528[89]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"528812345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:0[0-8]|[12-79]\\d|8[01])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"650123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"EH"; - self.countryCode = [NSNumber numberWithInteger:212]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"528[89]"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataDM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[57-9]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4]|70[1-3])\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"7674201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"767(?:2(?:[234689]5|7[5-7])|31[5-7]|61[2-7])\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7672251234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DM"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"767"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[24-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{8,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[24-7]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:0[01]|7[0-3])\\d{5}|6(?:[0-2]\\d|30)\\d{5}|7[0-3]\\d{6}|8[3-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"83123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[059]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9001234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"210[0-6]\\d{4}|4(?:0(?:0[01]\\d{4}|10[0-3]\\d{3}|2(?:00\\d{3}|900\\d{2})|3[01]\\d{4}|40\\d{4}|5\\d{5}|60\\d{4}|70[01]\\d{3}|8[0-2]\\d{4})|1[01]\\d{5}|20[0-3]\\d{4}|400\\d{4}|70[0-2]\\d{4})|5100\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"40001234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CR"; - self.countryCode = [NSNumber numberWithInteger:506]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"(19(?:0[012468]|1[09]|20|66|77|99))"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[24-7]|8[3-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[89]0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-79]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0235-9]|55|6\\d|7[01]|9[0-57])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2401234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[1-356]\\d|4[0-7]|7[014-7])\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"79[12][01]\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"79101234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BW"; - self.countryCode = [NSNumber numberWithInteger:267]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-6]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(90)(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0?\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"01\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"01441234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0?[2-7]\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"06031234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GA"; - self.countryCode = [NSNumber numberWithInteger:241]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-7]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataDO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[04]9[2-9]\\d{6}|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d{2}|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9]))\\d{4})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8092345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[024]9[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8092345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DO"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"8[024]9"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-4]\\d{8}|[89]\\d{9,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d{2})|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"152450911"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:5[5679]|9[1-9])|33\\d|44\\d)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"294911911"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:0[13]|20\\d)\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"8011234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:810|902)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9021234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[013]|[12]0)\\d{8}|902\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:@"82012345678"]; - self.codeID = @"BY"; - self.countryCode = [NSNumber numberWithInteger:375]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = @"8~10"; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"8?0?"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"17[0-3589]|2[4-9]|[34]"]; - [numberFormats0_patternArray addObject:@"17(?:[02358]|1[0-2]|9[0189])|2[4-9]|[34]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"8 0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1(?:5[24]|6[235]|7[467])|2(?:1[246]|2[25]|3[26])"]; - [numberFormats1_patternArray addObject:@"1(?:5[24]|6(?:2|3[04-9]|5[0346-9])|7(?:[46]|7[37-9]))|2(?:1[246]|2[25]|3[26])"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2-$3-$4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8 0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])"]; - [numberFormats2_patternArray addObject:@"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])"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{3})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8[01]|9"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([89]\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"82"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGB -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{7,10}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:0[01378]|3[0189]|4[017]|8[0-46-9]|9[012])\\d{7}|1(?:(?:1(?:3[0-48]|[46][0-4]|5[012789]|7[0-49]|8[01349])|21[0-7]|31[0-8]|[459]1\\d|61[0-46-9]))\\d{6}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-4789]|7[013-9]|9\\d)|3(?:0\\d|[25][02-9]|3[02-579]|[468][0-46-9]|7[1235679]|9[24578])|4(?:0[03-9]|[28][02-5789]|[37]\\d|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1235-9]|2[024-9]|3[015689]|4[02-9]|5[03-9]|6\\d|7[0-35-9]|8[0-468]|9[0-5789])|6(?:0[034689]|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0124578])|7(?:0[0246-9]|2\\d|3[023678]|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-5789]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-5789]|4[2-9]|5[0-579]|6[234789]|7[0124578]|8\\d|9[2-57]))\\d{6}|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-4789]|8[345])))|3(?:638[2-5]|647[23]|8(?:47[04-9]|64[015789]))|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[123]))|5(?:24(?:3[2-79]|6\\d)|276\\d|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[567]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|955[0-4])|7(?:26(?:6[13-9]|7[0-7])|442\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|84(?:3[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}|176888[234678]\\d{2}|16977[23]\\d{3}" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"1212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:[1-4]\\d\\d|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(?:[04-9]\\d|1[02-9]|2[0-35-9]|3[0-689]))\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7400123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{2,3})?" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:87[123]|9(?:[01]\\d|8[2349]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9012345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8431234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7640123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0347]|55)\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GB"; - self.countryCode = [NSNumber numberWithInteger:44]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" x"; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2|5[56]|7(?:0|6[013-9])"]; - [numberFormats0_patternArray addObject:@"2|5[56]|7(?:0|6(?:[013-9]|2[0-35-9]))"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1(?:1|\\d1)|3|9[018]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1(?:38|5[23]|69|76|94)"]; - [numberFormats2_patternArray addObject:@"1(?:387|5(?:24|39)|697|768|946)"]; - [numberFormats2_patternArray addObject:@"1(?:3873|5(?:242|39[456])|697[347]|768[347]|9467)"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{5})(\\d{4,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"7(?:[1-5789]|62)"]; - [numberFormats4_patternArray addObject:@"7(?:[1-5789]|624)"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(7\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"800"]; - [numberFormats5_patternArray addObject:@"8001"]; - [numberFormats5_patternArray addObject:@"80011"]; - [numberFormats5_patternArray addObject:@"800111"]; - [numberFormats5_patternArray addObject:@"8001111"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"845"]; - [numberFormats6_patternArray addObject:@"8454"]; - [numberFormats6_patternArray addObject:@"84546"]; - [numberFormats6_patternArray addObject:@"845464"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(845)(46)(4\\d)" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"8(?:4[2-5]|7[0-3])"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"80"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"[58]00"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"([58]00)(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-57]\\d{5,7}" withPossibleNumberPattern:@"\\d{4,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[1-4]\\d{5,6}|3(?:1\\d{6}|[23]\\d{4,6})|4(?:[125]\\d{5,6}|[36]\\d{6}|[78]\\d{4,6})|7\\d{6,7}" withPossibleNumberPattern:@"\\d{4,8}" withExample:@"71234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"51234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CU"; - self.countryCode = [NSNumber numberWithInteger:53]; - self.internationalPrefix = @"119"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{6,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-4]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataBZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{6}|0\\d{10}" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[234578][02]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2221234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[0-367]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"6221234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"08001234123"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BZ"; - self.countryCode = [NSNumber numberWithInteger:501]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(0)(800)(\\d{4})(\\d{3})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataCV -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[259]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}" withPossibleNumberPattern:@"\\d{7}" withExample:@"2211234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:9\\d|59)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"9911234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CV"; - self.countryCode = [NSNumber numberWithInteger:238]; - self.internationalPrefix = @"0"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadata808 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:808]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataGD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[4589]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|68|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"4732691234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"473(?:4(?:0[2-79]|1[04-9]|20|58)|5(?:2[01]|3[3-8])|901)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"4734031234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GD"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"473"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataFI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{4,11}|[2-9]\\d{4,10}" withPossibleNumberPattern:@"\\d{5,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:[3569][1-8]\\d{3,9}|[47]\\d{5,10})|2[1-8]\\d{3,9}|3(?:[1-8]\\d{3,9}|9\\d{4,8})|[5689][1-8]\\d{3,9}" withPossibleNumberPattern:@"\\d{5,12}" withExample:@"1312345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{5,10}|50\\d{4,8}" withPossibleNumberPattern:@"\\d{6,11}" withExample:@"412345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{4,7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[67]00\\d{5,6}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"600123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]0\\d{4,8}|2(?:0(?:[016-8]\\d{3,7}|[2-59]\\d{2,7})|9\\d{4,8})|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"10112345"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13]00\\d{3,7}|2(?:0(?:0\\d{3,7}|2[023]\\d{1,6}|9[89]\\d{1,6}))|60(?:[12]\\d{5,6}|6\\d{7})|7(?:1\\d{7}|3\\d{8}|5[03-9]\\d{2,7})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"100123"]; - self.codeID = @"FI"; - self.countryCode = [NSNumber numberWithInteger:358]; - self.internationalPrefix = @"00|99[049]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"(?:[1-3]00|[6-8]0)"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[14]|2[09]|50|7[135]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,10})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[25689][1-8]|3"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4,11})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCW -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[169]\\d{6,7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[48]\\d{2}|50\\d|7(?:2[0-24]|[34]\\d|6[35-7]|77|8[7-9]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"94151234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:5(?:[1246]\\d|3[01])|6(?:[16-9]\\d|3[01]))\\d{4}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"95181234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:10|69)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"1011234"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"955\\d{5}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"95581234"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CW"; - self.countryCode = [NSNumber numberWithInteger:599]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[13-7]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[34578]\\d{8}" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}" withPossibleNumberPattern:@"\\d{6,9}" withExample:@"322123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:14|5[01578]|68|7[0147-9]|9[0-35-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"555123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"706\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"706123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"706\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"706123456"]; - self.codeID = @"GE"; - self.countryCode = [NSNumber numberWithInteger:995]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[348]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"7"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"5"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataFJ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[36-9]\\d{6}|0\\d{10}" withPossibleNumberPattern:@"\\d{7}(?:\\d{4})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0-5]|6[25-7]|8[58])\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:7[0-8]|8[034679]|9\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0800\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:@"08001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"FJ"; - self.countryCode = [NSNumber numberWithInteger:679]; - self.internationalPrefix = @"0(?:0|52)"; - self.preferredInternationalPrefix = @"00"; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[36-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataCX -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1458]\\d{5,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89164\\d{4}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"891641234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"14(?:5\\d|71)\\d{5}|4(?:[0-2]\\d|3[0-57-9]|4[47-9]|5[0-25-9]|6[6-9]|7[03-9]|8[17-9]|9[017-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"412345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:80(?:0\\d{2})?|3(?:00\\d{2})?)\\d{4}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"500\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"500123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"550\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"550123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CX"; - self.countryCode = [NSNumber numberWithInteger:61]; - self.internationalPrefix = @"(?:14(?:1[14]|34|4[17]|[56]6|7[47]|88))?001[14-689]"; - self.preferredInternationalPrefix = @"0011"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGF -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"594101234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"694(?:[04][0-7]|1[0-5]|3[018]|[29]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"694201234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GF"; - self.countryCode = [NSNumber numberWithInteger:594]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataFK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-47]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:@"31234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{4}" withPossibleNumberPattern:@"\\d{5}" withExample:@"51234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"FK"; - self.countryCode = [NSNumber numberWithInteger:500]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[257-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2[2-6]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[5-79]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"96123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80001234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[09]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"90012345"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80112345"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"70012345"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:50|77)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"77123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CY"; - self.countryCode = [NSNumber numberWithInteger:357]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135789]\\d{6,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1481\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1481456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:781|839|911)\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7781123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0(?:1111|\\d{6,7})|8\\d{7})|500\\d{6}" withPossibleNumberPattern:@"\\d{7}(?:\\d{2,3})?" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:87[123]|9(?:[01]\\d|8[0-3]))\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9012345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"8431234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7640123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:3[0347]|55)\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GG"; - self.countryCode = [NSNumber numberWithInteger:44]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" x"; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataCZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-8]\\d{8}|9\\d{8,11}" withPossibleNumberPattern:@"\\d{9,12}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"212345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"601123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:0[05689]|76)\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[134]\\d{7}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"811234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70[01]\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"700123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[17]0\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"910123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:5\\d|7[234])\\d{6}" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"972123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:3\\d{9}|6\\d{7,10})" withPossibleNumberPattern:@"\\d{9,12}" withExample:@"93123456789"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CZ"; - self.countryCode = [NSNumber numberWithInteger:420]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-8]|9[015-7]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"96"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(96\\d)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9[36]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGH -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235]\\d{8}|8\\d{7}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0[237]\\d|[167](?:2[0-6]|7\\d)|2(?:2[0-5]|7\\d)|3(?:2[0-3]|7\\d)|4(?:2[013-9]|3[01]|7\\d)|5(?:2[0-7]|7\\d)|8(?:2[0-2]|7\\d)|9(?:20|7\\d))\\d{5}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"302345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[034678]\\d|5(?:[047]\\d|54|6[01]))\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"231234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80012345"]; - self.codeID = @"GH"; - self.countryCode = [NSNumber numberWithInteger:233]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[235]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataFM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[39]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[2357]0[1-9]\\d{3}|9[2-6]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[2357]0[1-9]\\d{3}|9[2-7]\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3501234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"FM"; - self.countryCode = [NSNumber numberWithInteger:691]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataER -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[178]\\d{6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:1[12568]|20|40|55|6[146])\\d{4}|8\\d{6}" withPossibleNumberPattern:@"\\d{6,7}" withExample:@"8370362"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"17[1-3]\\d{4}|7\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:@"7123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ER"; - self.countryCode = [NSNumber numberWithInteger:291]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGI -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2568]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:00\\d|1(?:6[24-7]|9\\d)|2(?:00|2[2457]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"20012345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[46-8]|62)\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"57123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"80123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[1-689]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"88123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"87\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"87123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GI"; - self.countryCode = [NSNumber numberWithInteger:350]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataES -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:[13]0|[28][0-8]|[47][1-9]|5[01346-9]|6[0457-9])\\d{6}|9(?:[1238][0-8]\\d{6}|4[1-9]\\d{6}|5\\d{7}|6(?:[0-8]\\d{6}|9(?:0(?:[0-57-9]\\d{4}|6(?:0[0-8]|1[1-9]|[2-9]\\d)\\d{2})|[1-9]\\d{5}))|7(?:[124-9]\\d{2}|3(?:[0-8]\\d|9[1-9]))\\d{4})" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6\\d{6}|7[1-4]\\d{5}|9(?:6906(?:09|10)|7390\\d{2}))\\d{2}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[89]00\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[367]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"803123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[12]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"901123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"701234567"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"51\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"511234567"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ES"; - self.countryCode = [NSNumber numberWithInteger:34]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[568]|[79][0-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([5-9]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataFO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:20|[3-4]\\d|8[19])\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[1-9]|5\\d|7[1-79])\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"211234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[257-9]\\d{3}" withPossibleNumberPattern:@"\\d{6}" withExample:@"802123"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90(?:[1345][15-7]|2[125-7]|99)\\d{2}" withPossibleNumberPattern:@"\\d{6}" withExample:@"901123"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:6[0-36]|88)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"601234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"FO"; - self.countryCode = [NSNumber numberWithInteger:298]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"(10(?:01|[12]0|88))"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{6})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataET -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-59]\\d{8}" withPossibleNumberPattern:@"\\d{7,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[57]|44|5[0-4])|6(?:18|2[69]|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|22[0-6]|33[0134689]|44[04]|55[0-6]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:11[1-9]|22[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}" withPossibleNumberPattern:@"\\d{7,9}" withExample:@"111112345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9(?:[1-3]\\d|5[89])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"911234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"ET"; - self.countryCode = [NSNumber numberWithInteger:251]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-59]\\d)(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-689]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:19|3[1-6]|6[14689]|8[14-79]|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"321000"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[245][2-9]\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"221234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"801234"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3[89]\\d{4}" withPossibleNumberPattern:@"\\d{6}" withExample:@"381234"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GL"; - self.countryCode = [NSNumber numberWithInteger:299]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataDZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[1-4]|[5-9]\\d)\\d{7}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:1\\d|2[014-79]|3[0-8]|4[0135689])\\d{6}|9619\\d{5}" withPossibleNumberPattern:@"\\d{8,9}" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[4-6]|7[7-9])\\d{7}|6(?:[569]\\d|7[0-4])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"551234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[3-689]1\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"808123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80[12]1\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"98[23]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"983123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DZ"; - self.countryCode = [NSNumber numberWithInteger:213]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-4]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-4]\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[5-8]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([5-8]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"9"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9\\d)(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGM -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:4(?:[23]\\d{2}|4(?:1[024679]|[6-9]\\d))|5(?:54[0-7]|6(?:[67]\\d)|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}" withPossibleNumberPattern:@"\\d{7}" withExample:@"5661234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2[0-6]|[3679]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{7}" withExample:@"3012345"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GM"; - self.countryCode = [NSNumber numberWithInteger:220]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataID -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{6,10}" withPossibleNumberPattern:@"\\d{5,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1(?:14\\d{3}|[0-8]\\d{6,7}|500\\d{3}|9\\d{6})|2\\d{6,8}|4\\d{7,8})|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|2[1-578]|3[1-68]|4[1-3]|5[1-8]|6[1-3568]|7[0-46]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[1246-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:19?|[25]\\d|3[1-469]|4[1-6])|7(?:1[1-9]|2[14-9]|[36]\\d|4[1-8]|5[1-9]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}" withPossibleNumberPattern:@"\\d{5,11}" withExample:@"612345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2(?:1(?:3[145]|4[01]|5[1-469]|60|8[0359]|9\\d)|2(?:88|9[1256])|3[1-4]9|4(?:36|91)|5(?:1[349]|[2-4]9)|6[0-7]9|7(?:[1-36]9|4[39])|8[1-5]9|9[1-48]9)|3(?:19[1-3]|2[12]9|3[13]9|4(?:1[69]|39)|5[14]9|6(?:1[69]|2[89])|709)|4[13]19|5(?:1(?:19|8[39])|4[129]9|6[12]9)|6(?:19[12]|2(?:[23]9|77))|7(?:1[13]9|2[15]9|419|5(?:1[89]|29)|6[15]9|7[178]9))\\d{5,6}|8[1-35-9]\\d{7,9}" withPossibleNumberPattern:@"\\d{9,11}" withExample:@"812345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"177\\d{6,8}|800\\d{5,7}" withPossibleNumberPattern:@"\\d{8,11}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"809\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8091234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8071\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8071123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8071\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8071123456"]; - self.codeID = @"ID"; - self.countryCode = [NSNumber numberWithInteger:62]; - self.internationalPrefix = @"0(?:0[1789]|10(?:00|1[67]))"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2[124]|[36]1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[4579]|2[035-9]|[36][02-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"8[1-35-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{3,4})(\\d{3,4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(177)(\\d{6,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"800"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{5,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"80[79]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(80\\d)(\\d)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataFR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-5]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6\\d{8}|7[5-9]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"612345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89[1-37-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"891123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:1[019]|2[0156]|84|90)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:@"912345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"FR"; - self.countryCode = [NSNumber numberWithInteger:33]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-79]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"11"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(1\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[1-79]"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([1-79])(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4 $5" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"8"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(8\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[367]\\d{7,8}" withPossibleNumberPattern:@"\\d{8,9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"30241234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6[02356]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"601123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"722\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"722123456"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GN"; - self.countryCode = [NSNumber numberWithInteger:224]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[67]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[124-9]\\d{6,9}" withPossibleNumberPattern:@"\\d{5,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{7,8}|2(?:1\\d{6,7}|3\\d{7}|[24-9]\\d{5})|4(?:0[24]\\d{5}|[1-469]\\d{7}|5\\d{6}|7\\d{5}|8[0-46-9]\\d{7})|5(?:0[45]\\d{5}|1\\d{6}|[23679]\\d{7}|8\\d{5})|6(?:1\\d{6}|[237-9]\\d{5}|[4-6]\\d{7})|7[14]\\d{7}|9(?:1\\d{6}|[04]\\d{7}|[35-9]\\d{5})" withPossibleNumberPattern:@"\\d{5,10}" withExample:@"2212345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:22\\d{6}|[35-9]\\d{7})" withPossibleNumberPattern:@"\\d{9}" withExample:@"850123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"15(?:1[2-8]|[2-8]0|9[089])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1520123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[59]0\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1850123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"700\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"700123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"761234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"818\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"818123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[35-9]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8501234567"]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[59]0\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1850123456"]; - self.codeID = @"IE"; - self.countryCode = [NSNumber numberWithInteger:353]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[24-9]|47|58|6[237-9]|9[35-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"40[24]|50[45]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"48"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(48)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"81"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(818)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"[24-69]|7[14]"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"76|8[35-9]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"([78]\\d)(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"70"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(700)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"1(?:8[059]|5)"]; - [numberFormats8_patternArray addObject:@"1(?:8[059]0|5)"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataHK -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[235-7]\\d{7}|8\\d{7,8}|9\\d{4,10}" withPossibleNumberPattern:@"\\d{5,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[23]\\d|5[78])\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[1-69]\\d|6\\d{2}|9(?:0[1-9]|[1-8]\\d))\\d{5}" withPossibleNumberPattern:@"\\d{8}" withExample:@"51234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900(?:[0-24-9]\\d{7}|3\\d{1,4})" withPossibleNumberPattern:@"\\d{5,11}" withExample:@"90012345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8[1-3]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"81123456"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"71234567"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"HK"; - self.countryCode = [NSNumber numberWithInteger:852]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[235-7]|[89](?:0[1-9]|[1-9])"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"800"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(800)(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"900"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(900)(\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"900"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(900)(\\d{2,5})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGP -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[56]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"590(?:0[13468]|1[012]|2[0-68]|3[28]|4[0-8]|5[579]|6[0189]|70|8[0-689]|9\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"590201234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"690(?:0[0-7]|[1-9]\\d)\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"690301234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GP"; - self.countryCode = [NSNumber numberWithInteger:590]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([56]90)(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGQ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23589]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"333091234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:222|551)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90\\d[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"900123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GQ"; - self.countryCode = [NSNumber numberWithInteger:240]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[235]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[26-9]\\d{9}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:1\\d{2}|2(?:2[1-46-9]|3[1-8]|4[1-7]|5[1-4]|6[1-8]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|3[1245]|4[1-7]|5[13-9]|[269][1-6]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"2123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"69\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"6912345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8001234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"90[19]\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9091234567"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:0[16]|12|25)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8011234567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GR"; - self.countryCode = [NSNumber numberWithInteger:30]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"21|7"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([27]\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[2-9]1|[689]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"2[2-9][02-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(2\\d{3})(\\d{6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataHN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[237-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:2(?:0[019]|1[1-36]|[23]\\d|4[056]|5[57]|7[01389]|8[0146-9]|9[012])|4(?:2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:4[3-5]|5\\d|6[56]|74)|6(?:[056]\\d|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[34])|8(?:79|8[0-35789]|9[1-57-9]))\\d{4}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[37-9]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"91234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"HN"; - self.countryCode = [NSNumber numberWithInteger:504]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataJE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[135789]\\d{6,9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1534\\d{6}" withPossibleNumberPattern:@"\\d{6,10}" withExample:@"1534456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:509|7(?:00|97)|829|937)\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7797123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:07(?:35|81)|8901)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8007354567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:871206|90(?:066[59]|1810|71(?:07|55)))\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9018105678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|70002)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8447034567"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"701511\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7015115678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5612345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7640123456"]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5512345678"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"JE"; - self.countryCode = [NSNumber numberWithInteger:44]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = @" x"; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-7]\\d{7}|1[89]\\d{9}" withPossibleNumberPattern:@"\\d{8}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[267][2-9]\\d{6}" withPossibleNumberPattern:@"\\d{8}" withExample:@"22456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[345]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:@"51234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"18[01]\\d{8}" withPossibleNumberPattern:@"\\d{11}" withExample:@"18001112222"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"19\\d{9}" withPossibleNumberPattern:@"\\d{11}" withExample:@"19001112222"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GT"; - self.countryCode = [NSNumber numberWithInteger:502]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-7]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataGU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[5689]\\d{9}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6713001234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:56|7[1-9]|8[236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[5-9])|7(?:[079]7|2[0167]|3[45]|8[789])|8(?:[2-5789]8|6[48])|9(?:2[29]|6[79]|7[179]|8[789]|9[78]))\\d{4}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"6713001234"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|44|55|66|77|88)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"8002123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"9002123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:00|33|44|66|77)[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5002345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GU"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"671"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataIL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[17]\\d{6,9}|[2-589]\\d{3}(?:\\d{3,6})?|6\\d{3}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-489]\\d{7}" withPossibleNumberPattern:@"\\d{7,8}" withExample:@"21234567"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"5(?:[02347-9]\\d{2}|5(?:01|2[23]|3[34]|4[45]|5[5689]|6[67]|7[78]|8[89]|9[7-9])|6[2-9]\\d)\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"501234567"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:80[019]\\d{3}|255)\\d{3}" withPossibleNumberPattern:@"\\d{7,10}" withExample:@"1800123456"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(?:212|(?:9(?:0[01]|19)|200)\\d{2})\\d{4}" withPossibleNumberPattern:@"\\d{8,10}" withExample:@"1919123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1700\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1700123456"]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7(?:2[23]\\d|3[237]\\d|47\\d|6(?:5\\d|8[068])|7\\d{2}|8(?:33|55|77|81))\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"771234567"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-689]\\d{3}|1599\\d{6}" withPossibleNumberPattern:@"\\d{4}(?:\\d{6})?" withExample:@"1599123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1700\\d{6}|[2-689]\\d{3}" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"1700123456"]; - self.codeID = @"IL"; - self.countryCode = [NSNumber numberWithInteger:972]; - self.internationalPrefix = @"0(?:0|1[2-9])"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[2-489]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([2-489])(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[57]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"([57]\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"1[7-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(1)([7-9]\\d{2})(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"125"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1255)(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"120"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(1200)(\\d{3})(\\d{3})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"121"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(1212)(\\d{2})(\\d{2})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"15"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(1599)(\\d{6})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"[2-689]"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"*$1" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h deleted file mode 100644 index 16a5ed6..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - -@interface NBMetadataCoreMapper : NSObject - -+ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key; - -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m deleted file mode 100644 index cd4e787..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreMapper.m +++ /dev/null @@ -1,915 +0,0 @@ -#import "NBMetadataCoreMapper.h" - -@implementation NBMetadataCoreMapper - -static NSMutableDictionary *kMapCCode2CN; - -+ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key -{ - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - kMapCCode2CN = [[NSMutableDictionary alloc] init]; - - NSMutableArray *countryCode356Array = [[NSMutableArray alloc] init]; - [countryCode356Array addObject:@"MT"]; - [kMapCCode2CN setObject:countryCode356Array forKey:@"356"]; - - NSMutableArray *countryCode53Array = [[NSMutableArray alloc] init]; - [countryCode53Array addObject:@"CU"]; - [kMapCCode2CN setObject:countryCode53Array forKey:@"53"]; - - NSMutableArray *countryCode381Array = [[NSMutableArray alloc] init]; - [countryCode381Array addObject:@"RS"]; - [kMapCCode2CN setObject:countryCode381Array forKey:@"381"]; - - NSMutableArray *countryCode373Array = [[NSMutableArray alloc] init]; - [countryCode373Array addObject:@"MD"]; - [kMapCCode2CN setObject:countryCode373Array forKey:@"373"]; - - NSMutableArray *countryCode508Array = [[NSMutableArray alloc] init]; - [countryCode508Array addObject:@"PM"]; - [kMapCCode2CN setObject:countryCode508Array forKey:@"508"]; - - NSMutableArray *countryCode509Array = [[NSMutableArray alloc] init]; - [countryCode509Array addObject:@"HT"]; - [kMapCCode2CN setObject:countryCode509Array forKey:@"509"]; - - NSMutableArray *countryCode54Array = [[NSMutableArray alloc] init]; - [countryCode54Array addObject:@"AR"]; - [kMapCCode2CN setObject:countryCode54Array forKey:@"54"]; - - NSMutableArray *countryCode800Array = [[NSMutableArray alloc] init]; - [countryCode800Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode800Array forKey:@"800"]; - - NSMutableArray *countryCode268Array = [[NSMutableArray alloc] init]; - [countryCode268Array addObject:@"SZ"]; - [kMapCCode2CN setObject:countryCode268Array forKey:@"268"]; - - NSMutableArray *countryCode357Array = [[NSMutableArray alloc] init]; - [countryCode357Array addObject:@"CY"]; - [kMapCCode2CN setObject:countryCode357Array forKey:@"357"]; - - NSMutableArray *countryCode382Array = [[NSMutableArray alloc] init]; - [countryCode382Array addObject:@"ME"]; - [kMapCCode2CN setObject:countryCode382Array forKey:@"382"]; - - NSMutableArray *countryCode55Array = [[NSMutableArray alloc] init]; - [countryCode55Array addObject:@"BR"]; - [kMapCCode2CN setObject:countryCode55Array forKey:@"55"]; - - NSMutableArray *countryCode374Array = [[NSMutableArray alloc] init]; - [countryCode374Array addObject:@"AM"]; - [kMapCCode2CN setObject:countryCode374Array forKey:@"374"]; - - NSMutableArray *countryCode56Array = [[NSMutableArray alloc] init]; - [countryCode56Array addObject:@"CL"]; - [kMapCCode2CN setObject:countryCode56Array forKey:@"56"]; - - NSMutableArray *countryCode81Array = [[NSMutableArray alloc] init]; - [countryCode81Array addObject:@"JP"]; - [kMapCCode2CN setObject:countryCode81Array forKey:@"81"]; - - NSMutableArray *countryCode269Array = [[NSMutableArray alloc] init]; - [countryCode269Array addObject:@"KM"]; - [kMapCCode2CN setObject:countryCode269Array forKey:@"269"]; - - NSMutableArray *countryCode358Array = [[NSMutableArray alloc] init]; - [countryCode358Array addObject:@"FI"]; - [countryCode358Array addObject:@"AX"]; - [kMapCCode2CN setObject:countryCode358Array forKey:@"358"]; - - NSMutableArray *countryCode57Array = [[NSMutableArray alloc] init]; - [countryCode57Array addObject:@"CO"]; - [kMapCCode2CN setObject:countryCode57Array forKey:@"57"]; - - NSMutableArray *countryCode82Array = [[NSMutableArray alloc] init]; - [countryCode82Array addObject:@"KR"]; - [kMapCCode2CN setObject:countryCode82Array forKey:@"82"]; - - NSMutableArray *countryCode375Array = [[NSMutableArray alloc] init]; - [countryCode375Array addObject:@"BY"]; - [kMapCCode2CN setObject:countryCode375Array forKey:@"375"]; - - NSMutableArray *countryCode58Array = [[NSMutableArray alloc] init]; - [countryCode58Array addObject:@"VE"]; - [kMapCCode2CN setObject:countryCode58Array forKey:@"58"]; - - NSMutableArray *countryCode359Array = [[NSMutableArray alloc] init]; - [countryCode359Array addObject:@"BG"]; - [kMapCCode2CN setObject:countryCode359Array forKey:@"359"]; - - NSMutableArray *countryCode376Array = [[NSMutableArray alloc] init]; - [countryCode376Array addObject:@"AD"]; - [kMapCCode2CN setObject:countryCode376Array forKey:@"376"]; - - NSMutableArray *countryCode84Array = [[NSMutableArray alloc] init]; - [countryCode84Array addObject:@"VN"]; - [kMapCCode2CN setObject:countryCode84Array forKey:@"84"]; - - NSMutableArray *countryCode385Array = [[NSMutableArray alloc] init]; - [countryCode385Array addObject:@"HR"]; - [kMapCCode2CN setObject:countryCode385Array forKey:@"385"]; - - NSMutableArray *countryCode377Array = [[NSMutableArray alloc] init]; - [countryCode377Array addObject:@"MC"]; - [kMapCCode2CN setObject:countryCode377Array forKey:@"377"]; - - NSMutableArray *countryCode86Array = [[NSMutableArray alloc] init]; - [countryCode86Array addObject:@"CN"]; - [kMapCCode2CN setObject:countryCode86Array forKey:@"86"]; - - NSMutableArray *countryCode297Array = [[NSMutableArray alloc] init]; - [countryCode297Array addObject:@"AW"]; - [kMapCCode2CN setObject:countryCode297Array forKey:@"297"]; - - NSMutableArray *countryCode386Array = [[NSMutableArray alloc] init]; - [countryCode386Array addObject:@"SI"]; - [kMapCCode2CN setObject:countryCode386Array forKey:@"386"]; - - NSMutableArray *countryCode378Array = [[NSMutableArray alloc] init]; - [countryCode378Array addObject:@"SM"]; - [kMapCCode2CN setObject:countryCode378Array forKey:@"378"]; - - NSMutableArray *countryCode670Array = [[NSMutableArray alloc] init]; - [countryCode670Array addObject:@"TL"]; - [kMapCCode2CN setObject:countryCode670Array forKey:@"670"]; - - NSMutableArray *countryCode298Array = [[NSMutableArray alloc] init]; - [countryCode298Array addObject:@"FO"]; - [kMapCCode2CN setObject:countryCode298Array forKey:@"298"]; - - NSMutableArray *countryCode387Array = [[NSMutableArray alloc] init]; - [countryCode387Array addObject:@"BA"]; - [kMapCCode2CN setObject:countryCode387Array forKey:@"387"]; - - NSMutableArray *countryCode590Array = [[NSMutableArray alloc] init]; - [countryCode590Array addObject:@"GP"]; - [countryCode590Array addObject:@"BL"]; - [countryCode590Array addObject:@"MF"]; - [kMapCCode2CN setObject:countryCode590Array forKey:@"590"]; - - NSMutableArray *countryCode379Array = [[NSMutableArray alloc] init]; - [countryCode379Array addObject:@"VA"]; - [kMapCCode2CN setObject:countryCode379Array forKey:@"379"]; - - NSMutableArray *countryCode299Array = [[NSMutableArray alloc] init]; - [countryCode299Array addObject:@"GL"]; - [kMapCCode2CN setObject:countryCode299Array forKey:@"299"]; - - NSMutableArray *countryCode591Array = [[NSMutableArray alloc] init]; - [countryCode591Array addObject:@"BO"]; - [kMapCCode2CN setObject:countryCode591Array forKey:@"591"]; - - NSMutableArray *countryCode680Array = [[NSMutableArray alloc] init]; - [countryCode680Array addObject:@"PW"]; - [kMapCCode2CN setObject:countryCode680Array forKey:@"680"]; - - NSMutableArray *countryCode808Array = [[NSMutableArray alloc] init]; - [countryCode808Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode808Array forKey:@"808"]; - - NSMutableArray *countryCode672Array = [[NSMutableArray alloc] init]; - [countryCode672Array addObject:@"NF"]; - [kMapCCode2CN setObject:countryCode672Array forKey:@"672"]; - - NSMutableArray *countryCode850Array = [[NSMutableArray alloc] init]; - [countryCode850Array addObject:@"KP"]; - [kMapCCode2CN setObject:countryCode850Array forKey:@"850"]; - - NSMutableArray *countryCode389Array = [[NSMutableArray alloc] init]; - [countryCode389Array addObject:@"MK"]; - [kMapCCode2CN setObject:countryCode389Array forKey:@"389"]; - - NSMutableArray *countryCode592Array = [[NSMutableArray alloc] init]; - [countryCode592Array addObject:@"GY"]; - [kMapCCode2CN setObject:countryCode592Array forKey:@"592"]; - - NSMutableArray *countryCode681Array = [[NSMutableArray alloc] init]; - [countryCode681Array addObject:@"WF"]; - [kMapCCode2CN setObject:countryCode681Array forKey:@"681"]; - - NSMutableArray *countryCode673Array = [[NSMutableArray alloc] init]; - [countryCode673Array addObject:@"BN"]; - [kMapCCode2CN setObject:countryCode673Array forKey:@"673"]; - - NSMutableArray *countryCode690Array = [[NSMutableArray alloc] init]; - [countryCode690Array addObject:@"TK"]; - [kMapCCode2CN setObject:countryCode690Array forKey:@"690"]; - - NSMutableArray *countryCode593Array = [[NSMutableArray alloc] init]; - [countryCode593Array addObject:@"EC"]; - [kMapCCode2CN setObject:countryCode593Array forKey:@"593"]; - - NSMutableArray *countryCode682Array = [[NSMutableArray alloc] init]; - [countryCode682Array addObject:@"CK"]; - [kMapCCode2CN setObject:countryCode682Array forKey:@"682"]; - - NSMutableArray *countryCode674Array = [[NSMutableArray alloc] init]; - [countryCode674Array addObject:@"NR"]; - [kMapCCode2CN setObject:countryCode674Array forKey:@"674"]; - - NSMutableArray *countryCode852Array = [[NSMutableArray alloc] init]; - [countryCode852Array addObject:@"HK"]; - [kMapCCode2CN setObject:countryCode852Array forKey:@"852"]; - - NSMutableArray *countryCode691Array = [[NSMutableArray alloc] init]; - [countryCode691Array addObject:@"FM"]; - [kMapCCode2CN setObject:countryCode691Array forKey:@"691"]; - - NSMutableArray *countryCode594Array = [[NSMutableArray alloc] init]; - [countryCode594Array addObject:@"GF"]; - [kMapCCode2CN setObject:countryCode594Array forKey:@"594"]; - - NSMutableArray *countryCode683Array = [[NSMutableArray alloc] init]; - [countryCode683Array addObject:@"NU"]; - [kMapCCode2CN setObject:countryCode683Array forKey:@"683"]; - - NSMutableArray *countryCode675Array = [[NSMutableArray alloc] init]; - [countryCode675Array addObject:@"PG"]; - [kMapCCode2CN setObject:countryCode675Array forKey:@"675"]; - - NSMutableArray *countryCode30Array = [[NSMutableArray alloc] init]; - [countryCode30Array addObject:@"GR"]; - [kMapCCode2CN setObject:countryCode30Array forKey:@"30"]; - - NSMutableArray *countryCode853Array = [[NSMutableArray alloc] init]; - [countryCode853Array addObject:@"MO"]; - [kMapCCode2CN setObject:countryCode853Array forKey:@"853"]; - - NSMutableArray *countryCode692Array = [[NSMutableArray alloc] init]; - [countryCode692Array addObject:@"MH"]; - [kMapCCode2CN setObject:countryCode692Array forKey:@"692"]; - - NSMutableArray *countryCode595Array = [[NSMutableArray alloc] init]; - [countryCode595Array addObject:@"PY"]; - [kMapCCode2CN setObject:countryCode595Array forKey:@"595"]; - - NSMutableArray *countryCode31Array = [[NSMutableArray alloc] init]; - [countryCode31Array addObject:@"NL"]; - [kMapCCode2CN setObject:countryCode31Array forKey:@"31"]; - - NSMutableArray *countryCode870Array = [[NSMutableArray alloc] init]; - [countryCode870Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode870Array forKey:@"870"]; - - NSMutableArray *countryCode676Array = [[NSMutableArray alloc] init]; - [countryCode676Array addObject:@"TO"]; - [kMapCCode2CN setObject:countryCode676Array forKey:@"676"]; - - NSMutableArray *countryCode32Array = [[NSMutableArray alloc] init]; - [countryCode32Array addObject:@"BE"]; - [kMapCCode2CN setObject:countryCode32Array forKey:@"32"]; - - NSMutableArray *countryCode596Array = [[NSMutableArray alloc] init]; - [countryCode596Array addObject:@"MQ"]; - [kMapCCode2CN setObject:countryCode596Array forKey:@"596"]; - - NSMutableArray *countryCode685Array = [[NSMutableArray alloc] init]; - [countryCode685Array addObject:@"WS"]; - [kMapCCode2CN setObject:countryCode685Array forKey:@"685"]; - - NSMutableArray *countryCode33Array = [[NSMutableArray alloc] init]; - [countryCode33Array addObject:@"FR"]; - [kMapCCode2CN setObject:countryCode33Array forKey:@"33"]; - - NSMutableArray *countryCode960Array = [[NSMutableArray alloc] init]; - [countryCode960Array addObject:@"MV"]; - [kMapCCode2CN setObject:countryCode960Array forKey:@"960"]; - - NSMutableArray *countryCode677Array = [[NSMutableArray alloc] init]; - [countryCode677Array addObject:@"SB"]; - [kMapCCode2CN setObject:countryCode677Array forKey:@"677"]; - - NSMutableArray *countryCode855Array = [[NSMutableArray alloc] init]; - [countryCode855Array addObject:@"KH"]; - [kMapCCode2CN setObject:countryCode855Array forKey:@"855"]; - - NSMutableArray *countryCode34Array = [[NSMutableArray alloc] init]; - [countryCode34Array addObject:@"ES"]; - [kMapCCode2CN setObject:countryCode34Array forKey:@"34"]; - - NSMutableArray *countryCode880Array = [[NSMutableArray alloc] init]; - [countryCode880Array addObject:@"BD"]; - [kMapCCode2CN setObject:countryCode880Array forKey:@"880"]; - - NSMutableArray *countryCode597Array = [[NSMutableArray alloc] init]; - [countryCode597Array addObject:@"SR"]; - [kMapCCode2CN setObject:countryCode597Array forKey:@"597"]; - - NSMutableArray *countryCode686Array = [[NSMutableArray alloc] init]; - [countryCode686Array addObject:@"KI"]; - [kMapCCode2CN setObject:countryCode686Array forKey:@"686"]; - - NSMutableArray *countryCode961Array = [[NSMutableArray alloc] init]; - [countryCode961Array addObject:@"LB"]; - [kMapCCode2CN setObject:countryCode961Array forKey:@"961"]; - - NSMutableArray *countryCode60Array = [[NSMutableArray alloc] init]; - [countryCode60Array addObject:@"MY"]; - [kMapCCode2CN setObject:countryCode60Array forKey:@"60"]; - - NSMutableArray *countryCode678Array = [[NSMutableArray alloc] init]; - [countryCode678Array addObject:@"VU"]; - [kMapCCode2CN setObject:countryCode678Array forKey:@"678"]; - - NSMutableArray *countryCode856Array = [[NSMutableArray alloc] init]; - [countryCode856Array addObject:@"LA"]; - [kMapCCode2CN setObject:countryCode856Array forKey:@"856"]; - - NSMutableArray *countryCode881Array = [[NSMutableArray alloc] init]; - [countryCode881Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode881Array forKey:@"881"]; - - NSMutableArray *countryCode36Array = [[NSMutableArray alloc] init]; - [countryCode36Array addObject:@"HU"]; - [kMapCCode2CN setObject:countryCode36Array forKey:@"36"]; - - NSMutableArray *countryCode61Array = [[NSMutableArray alloc] init]; - [countryCode61Array addObject:@"AU"]; - [countryCode61Array addObject:@"CC"]; - [countryCode61Array addObject:@"CX"]; - [kMapCCode2CN setObject:countryCode61Array forKey:@"61"]; - - NSMutableArray *countryCode598Array = [[NSMutableArray alloc] init]; - [countryCode598Array addObject:@"UY"]; - [kMapCCode2CN setObject:countryCode598Array forKey:@"598"]; - - NSMutableArray *countryCode687Array = [[NSMutableArray alloc] init]; - [countryCode687Array addObject:@"NC"]; - [kMapCCode2CN setObject:countryCode687Array forKey:@"687"]; - - NSMutableArray *countryCode962Array = [[NSMutableArray alloc] init]; - [countryCode962Array addObject:@"JO"]; - [kMapCCode2CN setObject:countryCode962Array forKey:@"962"]; - - NSMutableArray *countryCode62Array = [[NSMutableArray alloc] init]; - [countryCode62Array addObject:@"ID"]; - [kMapCCode2CN setObject:countryCode62Array forKey:@"62"]; - - NSMutableArray *countryCode679Array = [[NSMutableArray alloc] init]; - [countryCode679Array addObject:@"FJ"]; - [kMapCCode2CN setObject:countryCode679Array forKey:@"679"]; - - NSMutableArray *countryCode882Array = [[NSMutableArray alloc] init]; - [countryCode882Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode882Array forKey:@"882"]; - - NSMutableArray *countryCode970Array = [[NSMutableArray alloc] init]; - [countryCode970Array addObject:@"PS"]; - [kMapCCode2CN setObject:countryCode970Array forKey:@"970"]; - - NSMutableArray *countryCode971Array = [[NSMutableArray alloc] init]; - [countryCode971Array addObject:@"AE"]; - [kMapCCode2CN setObject:countryCode971Array forKey:@"971"]; - - NSMutableArray *countryCode63Array = [[NSMutableArray alloc] init]; - [countryCode63Array addObject:@"PH"]; - [kMapCCode2CN setObject:countryCode63Array forKey:@"63"]; - - NSMutableArray *countryCode599Array = [[NSMutableArray alloc] init]; - [countryCode599Array addObject:@"CW"]; - [countryCode599Array addObject:@"BQ"]; - [kMapCCode2CN setObject:countryCode599Array forKey:@"599"]; - - NSMutableArray *countryCode688Array = [[NSMutableArray alloc] init]; - [countryCode688Array addObject:@"TV"]; - [kMapCCode2CN setObject:countryCode688Array forKey:@"688"]; - - NSMutableArray *countryCode963Array = [[NSMutableArray alloc] init]; - [countryCode963Array addObject:@"SY"]; - [kMapCCode2CN setObject:countryCode963Array forKey:@"963"]; - - NSMutableArray *countryCode39Array = [[NSMutableArray alloc] init]; - [countryCode39Array addObject:@"IT"]; - [kMapCCode2CN setObject:countryCode39Array forKey:@"39"]; - - NSMutableArray *countryCode64Array = [[NSMutableArray alloc] init]; - [countryCode64Array addObject:@"NZ"]; - [kMapCCode2CN setObject:countryCode64Array forKey:@"64"]; - - NSMutableArray *countryCode883Array = [[NSMutableArray alloc] init]; - [countryCode883Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode883Array forKey:@"883"]; - - NSMutableArray *countryCode972Array = [[NSMutableArray alloc] init]; - [countryCode972Array addObject:@"IL"]; - [kMapCCode2CN setObject:countryCode972Array forKey:@"972"]; - - NSMutableArray *countryCode65Array = [[NSMutableArray alloc] init]; - [countryCode65Array addObject:@"SG"]; - [kMapCCode2CN setObject:countryCode65Array forKey:@"65"]; - - NSMutableArray *countryCode90Array = [[NSMutableArray alloc] init]; - [countryCode90Array addObject:@"TR"]; - [kMapCCode2CN setObject:countryCode90Array forKey:@"90"]; - - NSMutableArray *countryCode689Array = [[NSMutableArray alloc] init]; - [countryCode689Array addObject:@"PF"]; - [kMapCCode2CN setObject:countryCode689Array forKey:@"689"]; - - NSMutableArray *countryCode964Array = [[NSMutableArray alloc] init]; - [countryCode964Array addObject:@"IQ"]; - [kMapCCode2CN setObject:countryCode964Array forKey:@"964"]; - - NSMutableArray *countryCode1Array = [[NSMutableArray alloc] init]; - [countryCode1Array addObject:@"US"]; - [countryCode1Array addObject:@"AG"]; - [countryCode1Array addObject:@"AI"]; - [countryCode1Array addObject:@"AS"]; - [countryCode1Array addObject:@"BB"]; - [countryCode1Array addObject:@"BM"]; - [countryCode1Array addObject:@"BS"]; - [countryCode1Array addObject:@"CA"]; - [countryCode1Array addObject:@"DM"]; - [countryCode1Array addObject:@"DO"]; - [countryCode1Array addObject:@"GD"]; - [countryCode1Array addObject:@"GU"]; - [countryCode1Array addObject:@"JM"]; - [countryCode1Array addObject:@"KN"]; - [countryCode1Array addObject:@"KY"]; - [countryCode1Array addObject:@"LC"]; - [countryCode1Array addObject:@"MP"]; - [countryCode1Array addObject:@"MS"]; - [countryCode1Array addObject:@"PR"]; - [countryCode1Array addObject:@"SX"]; - [countryCode1Array addObject:@"TC"]; - [countryCode1Array addObject:@"TT"]; - [countryCode1Array addObject:@"VC"]; - [countryCode1Array addObject:@"VG"]; - [countryCode1Array addObject:@"VI"]; - [kMapCCode2CN setObject:countryCode1Array forKey:@"1"]; - - NSMutableArray *countryCode66Array = [[NSMutableArray alloc] init]; - [countryCode66Array addObject:@"TH"]; - [kMapCCode2CN setObject:countryCode66Array forKey:@"66"]; - - NSMutableArray *countryCode91Array = [[NSMutableArray alloc] init]; - [countryCode91Array addObject:@"IN"]; - [kMapCCode2CN setObject:countryCode91Array forKey:@"91"]; - - NSMutableArray *countryCode973Array = [[NSMutableArray alloc] init]; - [countryCode973Array addObject:@"BH"]; - [kMapCCode2CN setObject:countryCode973Array forKey:@"973"]; - - NSMutableArray *countryCode965Array = [[NSMutableArray alloc] init]; - [countryCode965Array addObject:@"KW"]; - [kMapCCode2CN setObject:countryCode965Array forKey:@"965"]; - - NSMutableArray *countryCode92Array = [[NSMutableArray alloc] init]; - [countryCode92Array addObject:@"PK"]; - [kMapCCode2CN setObject:countryCode92Array forKey:@"92"]; - - NSMutableArray *countryCode93Array = [[NSMutableArray alloc] init]; - [countryCode93Array addObject:@"AF"]; - [kMapCCode2CN setObject:countryCode93Array forKey:@"93"]; - - NSMutableArray *countryCode974Array = [[NSMutableArray alloc] init]; - [countryCode974Array addObject:@"QA"]; - [kMapCCode2CN setObject:countryCode974Array forKey:@"974"]; - - NSMutableArray *countryCode966Array = [[NSMutableArray alloc] init]; - [countryCode966Array addObject:@"SA"]; - [kMapCCode2CN setObject:countryCode966Array forKey:@"966"]; - - NSMutableArray *countryCode94Array = [[NSMutableArray alloc] init]; - [countryCode94Array addObject:@"LK"]; - [kMapCCode2CN setObject:countryCode94Array forKey:@"94"]; - - NSMutableArray *countryCode7Array = [[NSMutableArray alloc] init]; - [countryCode7Array addObject:@"RU"]; - [countryCode7Array addObject:@"KZ"]; - [kMapCCode2CN setObject:countryCode7Array forKey:@"7"]; - - NSMutableArray *countryCode886Array = [[NSMutableArray alloc] init]; - [countryCode886Array addObject:@"TW"]; - [kMapCCode2CN setObject:countryCode886Array forKey:@"886"]; - - NSMutableArray *countryCode95Array = [[NSMutableArray alloc] init]; - [countryCode95Array addObject:@"MM"]; - [kMapCCode2CN setObject:countryCode95Array forKey:@"95"]; - - NSMutableArray *countryCode878Array = [[NSMutableArray alloc] init]; - [countryCode878Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode878Array forKey:@"878"]; - - NSMutableArray *countryCode967Array = [[NSMutableArray alloc] init]; - [countryCode967Array addObject:@"YE"]; - [kMapCCode2CN setObject:countryCode967Array forKey:@"967"]; - - NSMutableArray *countryCode975Array = [[NSMutableArray alloc] init]; - [countryCode975Array addObject:@"BT"]; - [kMapCCode2CN setObject:countryCode975Array forKey:@"975"]; - - NSMutableArray *countryCode992Array = [[NSMutableArray alloc] init]; - [countryCode992Array addObject:@"TJ"]; - [kMapCCode2CN setObject:countryCode992Array forKey:@"992"]; - - NSMutableArray *countryCode976Array = [[NSMutableArray alloc] init]; - [countryCode976Array addObject:@"MN"]; - [kMapCCode2CN setObject:countryCode976Array forKey:@"976"]; - - NSMutableArray *countryCode968Array = [[NSMutableArray alloc] init]; - [countryCode968Array addObject:@"OM"]; - [kMapCCode2CN setObject:countryCode968Array forKey:@"968"]; - - NSMutableArray *countryCode993Array = [[NSMutableArray alloc] init]; - [countryCode993Array addObject:@"TM"]; - [kMapCCode2CN setObject:countryCode993Array forKey:@"993"]; - - NSMutableArray *countryCode98Array = [[NSMutableArray alloc] init]; - [countryCode98Array addObject:@"IR"]; - [kMapCCode2CN setObject:countryCode98Array forKey:@"98"]; - - NSMutableArray *countryCode888Array = [[NSMutableArray alloc] init]; - [countryCode888Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode888Array forKey:@"888"]; - - NSMutableArray *countryCode977Array = [[NSMutableArray alloc] init]; - [countryCode977Array addObject:@"NP"]; - [kMapCCode2CN setObject:countryCode977Array forKey:@"977"]; - - NSMutableArray *countryCode994Array = [[NSMutableArray alloc] init]; - [countryCode994Array addObject:@"AZ"]; - [kMapCCode2CN setObject:countryCode994Array forKey:@"994"]; - - NSMutableArray *countryCode995Array = [[NSMutableArray alloc] init]; - [countryCode995Array addObject:@"GE"]; - [kMapCCode2CN setObject:countryCode995Array forKey:@"995"]; - - NSMutableArray *countryCode979Array = [[NSMutableArray alloc] init]; - [countryCode979Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode979Array forKey:@"979"]; - - NSMutableArray *countryCode996Array = [[NSMutableArray alloc] init]; - [countryCode996Array addObject:@"KG"]; - [kMapCCode2CN setObject:countryCode996Array forKey:@"996"]; - - NSMutableArray *countryCode998Array = [[NSMutableArray alloc] init]; - [countryCode998Array addObject:@"UZ"]; - [kMapCCode2CN setObject:countryCode998Array forKey:@"998"]; - - NSMutableArray *countryCode40Array = [[NSMutableArray alloc] init]; - [countryCode40Array addObject:@"RO"]; - [kMapCCode2CN setObject:countryCode40Array forKey:@"40"]; - - NSMutableArray *countryCode41Array = [[NSMutableArray alloc] init]; - [countryCode41Array addObject:@"CH"]; - [kMapCCode2CN setObject:countryCode41Array forKey:@"41"]; - - NSMutableArray *countryCode43Array = [[NSMutableArray alloc] init]; - [countryCode43Array addObject:@"AT"]; - [kMapCCode2CN setObject:countryCode43Array forKey:@"43"]; - - NSMutableArray *countryCode44Array = [[NSMutableArray alloc] init]; - [countryCode44Array addObject:@"GB"]; - [countryCode44Array addObject:@"GG"]; - [countryCode44Array addObject:@"IM"]; - [countryCode44Array addObject:@"JE"]; - [kMapCCode2CN setObject:countryCode44Array forKey:@"44"]; - - NSMutableArray *countryCode211Array = [[NSMutableArray alloc] init]; - [countryCode211Array addObject:@"SS"]; - [kMapCCode2CN setObject:countryCode211Array forKey:@"211"]; - - NSMutableArray *countryCode45Array = [[NSMutableArray alloc] init]; - [countryCode45Array addObject:@"DK"]; - [kMapCCode2CN setObject:countryCode45Array forKey:@"45"]; - - NSMutableArray *countryCode220Array = [[NSMutableArray alloc] init]; - [countryCode220Array addObject:@"GM"]; - [kMapCCode2CN setObject:countryCode220Array forKey:@"220"]; - - NSMutableArray *countryCode212Array = [[NSMutableArray alloc] init]; - [countryCode212Array addObject:@"MA"]; - [countryCode212Array addObject:@"EH"]; - [kMapCCode2CN setObject:countryCode212Array forKey:@"212"]; - - NSMutableArray *countryCode46Array = [[NSMutableArray alloc] init]; - [countryCode46Array addObject:@"SE"]; - [kMapCCode2CN setObject:countryCode46Array forKey:@"46"]; - - NSMutableArray *countryCode47Array = [[NSMutableArray alloc] init]; - [countryCode47Array addObject:@"NO"]; - [countryCode47Array addObject:@"SJ"]; - [kMapCCode2CN setObject:countryCode47Array forKey:@"47"]; - - NSMutableArray *countryCode221Array = [[NSMutableArray alloc] init]; - [countryCode221Array addObject:@"SN"]; - [kMapCCode2CN setObject:countryCode221Array forKey:@"221"]; - - NSMutableArray *countryCode213Array = [[NSMutableArray alloc] init]; - [countryCode213Array addObject:@"DZ"]; - [kMapCCode2CN setObject:countryCode213Array forKey:@"213"]; - - NSMutableArray *countryCode48Array = [[NSMutableArray alloc] init]; - [countryCode48Array addObject:@"PL"]; - [kMapCCode2CN setObject:countryCode48Array forKey:@"48"]; - - NSMutableArray *countryCode230Array = [[NSMutableArray alloc] init]; - [countryCode230Array addObject:@"MU"]; - [kMapCCode2CN setObject:countryCode230Array forKey:@"230"]; - - NSMutableArray *countryCode222Array = [[NSMutableArray alloc] init]; - [countryCode222Array addObject:@"MR"]; - [kMapCCode2CN setObject:countryCode222Array forKey:@"222"]; - - NSMutableArray *countryCode49Array = [[NSMutableArray alloc] init]; - [countryCode49Array addObject:@"DE"]; - [kMapCCode2CN setObject:countryCode49Array forKey:@"49"]; - - NSMutableArray *countryCode231Array = [[NSMutableArray alloc] init]; - [countryCode231Array addObject:@"LR"]; - [kMapCCode2CN setObject:countryCode231Array forKey:@"231"]; - - NSMutableArray *countryCode223Array = [[NSMutableArray alloc] init]; - [countryCode223Array addObject:@"ML"]; - [kMapCCode2CN setObject:countryCode223Array forKey:@"223"]; - - NSMutableArray *countryCode240Array = [[NSMutableArray alloc] init]; - [countryCode240Array addObject:@"GQ"]; - [kMapCCode2CN setObject:countryCode240Array forKey:@"240"]; - - NSMutableArray *countryCode232Array = [[NSMutableArray alloc] init]; - [countryCode232Array addObject:@"SL"]; - [kMapCCode2CN setObject:countryCode232Array forKey:@"232"]; - - NSMutableArray *countryCode224Array = [[NSMutableArray alloc] init]; - [countryCode224Array addObject:@"GN"]; - [kMapCCode2CN setObject:countryCode224Array forKey:@"224"]; - - NSMutableArray *countryCode216Array = [[NSMutableArray alloc] init]; - [countryCode216Array addObject:@"TN"]; - [kMapCCode2CN setObject:countryCode216Array forKey:@"216"]; - - NSMutableArray *countryCode241Array = [[NSMutableArray alloc] init]; - [countryCode241Array addObject:@"GA"]; - [kMapCCode2CN setObject:countryCode241Array forKey:@"241"]; - - NSMutableArray *countryCode233Array = [[NSMutableArray alloc] init]; - [countryCode233Array addObject:@"GH"]; - [kMapCCode2CN setObject:countryCode233Array forKey:@"233"]; - - NSMutableArray *countryCode225Array = [[NSMutableArray alloc] init]; - [countryCode225Array addObject:@"CI"]; - [kMapCCode2CN setObject:countryCode225Array forKey:@"225"]; - - NSMutableArray *countryCode250Array = [[NSMutableArray alloc] init]; - [countryCode250Array addObject:@"RW"]; - [kMapCCode2CN setObject:countryCode250Array forKey:@"250"]; - - NSMutableArray *countryCode500Array = [[NSMutableArray alloc] init]; - [countryCode500Array addObject:@"FK"]; - [kMapCCode2CN setObject:countryCode500Array forKey:@"500"]; - - NSMutableArray *countryCode242Array = [[NSMutableArray alloc] init]; - [countryCode242Array addObject:@"CG"]; - [kMapCCode2CN setObject:countryCode242Array forKey:@"242"]; - - NSMutableArray *countryCode420Array = [[NSMutableArray alloc] init]; - [countryCode420Array addObject:@"CZ"]; - [kMapCCode2CN setObject:countryCode420Array forKey:@"420"]; - - NSMutableArray *countryCode234Array = [[NSMutableArray alloc] init]; - [countryCode234Array addObject:@"NG"]; - [kMapCCode2CN setObject:countryCode234Array forKey:@"234"]; - - NSMutableArray *countryCode226Array = [[NSMutableArray alloc] init]; - [countryCode226Array addObject:@"BF"]; - [kMapCCode2CN setObject:countryCode226Array forKey:@"226"]; - - NSMutableArray *countryCode251Array = [[NSMutableArray alloc] init]; - [countryCode251Array addObject:@"ET"]; - [kMapCCode2CN setObject:countryCode251Array forKey:@"251"]; - - NSMutableArray *countryCode501Array = [[NSMutableArray alloc] init]; - [countryCode501Array addObject:@"BZ"]; - [kMapCCode2CN setObject:countryCode501Array forKey:@"501"]; - - NSMutableArray *countryCode218Array = [[NSMutableArray alloc] init]; - [countryCode218Array addObject:@"LY"]; - [kMapCCode2CN setObject:countryCode218Array forKey:@"218"]; - - NSMutableArray *countryCode243Array = [[NSMutableArray alloc] init]; - [countryCode243Array addObject:@"CD"]; - [kMapCCode2CN setObject:countryCode243Array forKey:@"243"]; - - NSMutableArray *countryCode421Array = [[NSMutableArray alloc] init]; - [countryCode421Array addObject:@"SK"]; - [kMapCCode2CN setObject:countryCode421Array forKey:@"421"]; - - NSMutableArray *countryCode235Array = [[NSMutableArray alloc] init]; - [countryCode235Array addObject:@"TD"]; - [kMapCCode2CN setObject:countryCode235Array forKey:@"235"]; - - NSMutableArray *countryCode260Array = [[NSMutableArray alloc] init]; - [countryCode260Array addObject:@"ZM"]; - [kMapCCode2CN setObject:countryCode260Array forKey:@"260"]; - - NSMutableArray *countryCode227Array = [[NSMutableArray alloc] init]; - [countryCode227Array addObject:@"NE"]; - [kMapCCode2CN setObject:countryCode227Array forKey:@"227"]; - - NSMutableArray *countryCode252Array = [[NSMutableArray alloc] init]; - [countryCode252Array addObject:@"SO"]; - [kMapCCode2CN setObject:countryCode252Array forKey:@"252"]; - - NSMutableArray *countryCode502Array = [[NSMutableArray alloc] init]; - [countryCode502Array addObject:@"GT"]; - [kMapCCode2CN setObject:countryCode502Array forKey:@"502"]; - - NSMutableArray *countryCode244Array = [[NSMutableArray alloc] init]; - [countryCode244Array addObject:@"AO"]; - [kMapCCode2CN setObject:countryCode244Array forKey:@"244"]; - - NSMutableArray *countryCode236Array = [[NSMutableArray alloc] init]; - [countryCode236Array addObject:@"CF"]; - [kMapCCode2CN setObject:countryCode236Array forKey:@"236"]; - - NSMutableArray *countryCode261Array = [[NSMutableArray alloc] init]; - [countryCode261Array addObject:@"MG"]; - [kMapCCode2CN setObject:countryCode261Array forKey:@"261"]; - - NSMutableArray *countryCode350Array = [[NSMutableArray alloc] init]; - [countryCode350Array addObject:@"GI"]; - [kMapCCode2CN setObject:countryCode350Array forKey:@"350"]; - - NSMutableArray *countryCode228Array = [[NSMutableArray alloc] init]; - [countryCode228Array addObject:@"TG"]; - [kMapCCode2CN setObject:countryCode228Array forKey:@"228"]; - - NSMutableArray *countryCode253Array = [[NSMutableArray alloc] init]; - [countryCode253Array addObject:@"DJ"]; - [kMapCCode2CN setObject:countryCode253Array forKey:@"253"]; - - NSMutableArray *countryCode503Array = [[NSMutableArray alloc] init]; - [countryCode503Array addObject:@"SV"]; - [kMapCCode2CN setObject:countryCode503Array forKey:@"503"]; - - NSMutableArray *countryCode245Array = [[NSMutableArray alloc] init]; - [countryCode245Array addObject:@"GW"]; - [kMapCCode2CN setObject:countryCode245Array forKey:@"245"]; - - NSMutableArray *countryCode423Array = [[NSMutableArray alloc] init]; - [countryCode423Array addObject:@"LI"]; - [kMapCCode2CN setObject:countryCode423Array forKey:@"423"]; - - NSMutableArray *countryCode237Array = [[NSMutableArray alloc] init]; - [countryCode237Array addObject:@"CM"]; - [kMapCCode2CN setObject:countryCode237Array forKey:@"237"]; - - NSMutableArray *countryCode262Array = [[NSMutableArray alloc] init]; - [countryCode262Array addObject:@"RE"]; - [countryCode262Array addObject:@"YT"]; - [kMapCCode2CN setObject:countryCode262Array forKey:@"262"]; - - NSMutableArray *countryCode351Array = [[NSMutableArray alloc] init]; - [countryCode351Array addObject:@"PT"]; - [kMapCCode2CN setObject:countryCode351Array forKey:@"351"]; - - NSMutableArray *countryCode229Array = [[NSMutableArray alloc] init]; - [countryCode229Array addObject:@"BJ"]; - [kMapCCode2CN setObject:countryCode229Array forKey:@"229"]; - - NSMutableArray *countryCode254Array = [[NSMutableArray alloc] init]; - [countryCode254Array addObject:@"KE"]; - [kMapCCode2CN setObject:countryCode254Array forKey:@"254"]; - - NSMutableArray *countryCode504Array = [[NSMutableArray alloc] init]; - [countryCode504Array addObject:@"HN"]; - [kMapCCode2CN setObject:countryCode504Array forKey:@"504"]; - - NSMutableArray *countryCode246Array = [[NSMutableArray alloc] init]; - [countryCode246Array addObject:@"IO"]; - [kMapCCode2CN setObject:countryCode246Array forKey:@"246"]; - - NSMutableArray *countryCode20Array = [[NSMutableArray alloc] init]; - [countryCode20Array addObject:@"EG"]; - [kMapCCode2CN setObject:countryCode20Array forKey:@"20"]; - - NSMutableArray *countryCode238Array = [[NSMutableArray alloc] init]; - [countryCode238Array addObject:@"CV"]; - [kMapCCode2CN setObject:countryCode238Array forKey:@"238"]; - - NSMutableArray *countryCode263Array = [[NSMutableArray alloc] init]; - [countryCode263Array addObject:@"ZW"]; - [kMapCCode2CN setObject:countryCode263Array forKey:@"263"]; - - NSMutableArray *countryCode352Array = [[NSMutableArray alloc] init]; - [countryCode352Array addObject:@"LU"]; - [kMapCCode2CN setObject:countryCode352Array forKey:@"352"]; - - NSMutableArray *countryCode255Array = [[NSMutableArray alloc] init]; - [countryCode255Array addObject:@"TZ"]; - [kMapCCode2CN setObject:countryCode255Array forKey:@"255"]; - - NSMutableArray *countryCode505Array = [[NSMutableArray alloc] init]; - [countryCode505Array addObject:@"NI"]; - [kMapCCode2CN setObject:countryCode505Array forKey:@"505"]; - - NSMutableArray *countryCode247Array = [[NSMutableArray alloc] init]; - [countryCode247Array addObject:@"AC"]; - [kMapCCode2CN setObject:countryCode247Array forKey:@"247"]; - - NSMutableArray *countryCode239Array = [[NSMutableArray alloc] init]; - [countryCode239Array addObject:@"ST"]; - [kMapCCode2CN setObject:countryCode239Array forKey:@"239"]; - - NSMutableArray *countryCode264Array = [[NSMutableArray alloc] init]; - [countryCode264Array addObject:@"NA"]; - [kMapCCode2CN setObject:countryCode264Array forKey:@"264"]; - - NSMutableArray *countryCode353Array = [[NSMutableArray alloc] init]; - [countryCode353Array addObject:@"IE"]; - [kMapCCode2CN setObject:countryCode353Array forKey:@"353"]; - - NSMutableArray *countryCode256Array = [[NSMutableArray alloc] init]; - [countryCode256Array addObject:@"UG"]; - [kMapCCode2CN setObject:countryCode256Array forKey:@"256"]; - - NSMutableArray *countryCode370Array = [[NSMutableArray alloc] init]; - [countryCode370Array addObject:@"LT"]; - [kMapCCode2CN setObject:countryCode370Array forKey:@"370"]; - - NSMutableArray *countryCode506Array = [[NSMutableArray alloc] init]; - [countryCode506Array addObject:@"CR"]; - [kMapCCode2CN setObject:countryCode506Array forKey:@"506"]; - - NSMutableArray *countryCode248Array = [[NSMutableArray alloc] init]; - [countryCode248Array addObject:@"SC"]; - [kMapCCode2CN setObject:countryCode248Array forKey:@"248"]; - - NSMutableArray *countryCode265Array = [[NSMutableArray alloc] init]; - [countryCode265Array addObject:@"MW"]; - [kMapCCode2CN setObject:countryCode265Array forKey:@"265"]; - - NSMutableArray *countryCode290Array = [[NSMutableArray alloc] init]; - [countryCode290Array addObject:@"SH"]; - [countryCode290Array addObject:@"TA"]; - [kMapCCode2CN setObject:countryCode290Array forKey:@"290"]; - - NSMutableArray *countryCode354Array = [[NSMutableArray alloc] init]; - [countryCode354Array addObject:@"IS"]; - [kMapCCode2CN setObject:countryCode354Array forKey:@"354"]; - - NSMutableArray *countryCode257Array = [[NSMutableArray alloc] init]; - [countryCode257Array addObject:@"BI"]; - [kMapCCode2CN setObject:countryCode257Array forKey:@"257"]; - - NSMutableArray *countryCode371Array = [[NSMutableArray alloc] init]; - [countryCode371Array addObject:@"LV"]; - [kMapCCode2CN setObject:countryCode371Array forKey:@"371"]; - - NSMutableArray *countryCode507Array = [[NSMutableArray alloc] init]; - [countryCode507Array addObject:@"PA"]; - [kMapCCode2CN setObject:countryCode507Array forKey:@"507"]; - - NSMutableArray *countryCode249Array = [[NSMutableArray alloc] init]; - [countryCode249Array addObject:@"SD"]; - [kMapCCode2CN setObject:countryCode249Array forKey:@"249"]; - - NSMutableArray *countryCode266Array = [[NSMutableArray alloc] init]; - [countryCode266Array addObject:@"LS"]; - [kMapCCode2CN setObject:countryCode266Array forKey:@"266"]; - - NSMutableArray *countryCode51Array = [[NSMutableArray alloc] init]; - [countryCode51Array addObject:@"PE"]; - [kMapCCode2CN setObject:countryCode51Array forKey:@"51"]; - - NSMutableArray *countryCode291Array = [[NSMutableArray alloc] init]; - [countryCode291Array addObject:@"ER"]; - [kMapCCode2CN setObject:countryCode291Array forKey:@"291"]; - - NSMutableArray *countryCode258Array = [[NSMutableArray alloc] init]; - [countryCode258Array addObject:@"MZ"]; - [kMapCCode2CN setObject:countryCode258Array forKey:@"258"]; - - NSMutableArray *countryCode355Array = [[NSMutableArray alloc] init]; - [countryCode355Array addObject:@"AL"]; - [kMapCCode2CN setObject:countryCode355Array forKey:@"355"]; - - NSMutableArray *countryCode372Array = [[NSMutableArray alloc] init]; - [countryCode372Array addObject:@"EE"]; - [kMapCCode2CN setObject:countryCode372Array forKey:@"372"]; - - NSMutableArray *countryCode27Array = [[NSMutableArray alloc] init]; - [countryCode27Array addObject:@"ZA"]; - [kMapCCode2CN setObject:countryCode27Array forKey:@"27"]; - - NSMutableArray *countryCode52Array = [[NSMutableArray alloc] init]; - [countryCode52Array addObject:@"MX"]; - [kMapCCode2CN setObject:countryCode52Array forKey:@"52"]; - - NSMutableArray *countryCode380Array = [[NSMutableArray alloc] init]; - [countryCode380Array addObject:@"UA"]; - [kMapCCode2CN setObject:countryCode380Array forKey:@"380"]; - - NSMutableArray *countryCode267Array = [[NSMutableArray alloc] init]; - [countryCode267Array addObject:@"BW"]; - [kMapCCode2CN setObject:countryCode267Array forKey:@"267"]; - }); - return [kMapCCode2CN objectForKey:key]; -} - -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h deleted file mode 100644 index 6a392f1..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.h +++ /dev/null @@ -1,93 +0,0 @@ -#import -#import "NBPhoneMetaData.h" - -@interface NBPhoneMetadataTestAD : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestBR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestAU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestBB : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestAE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestCX : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestBS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestDE : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestKR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestNZ : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestPL : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestYT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestCA : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestAO : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTest800 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestFR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestGG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestHU : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestSG : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestJP : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestCC : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestMX : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestUS : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestIT : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestAR : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTest979 : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestGB : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestBY : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestCN : NBPhoneMetaData -@end - -@interface NBPhoneMetadataTestRE : NBPhoneMetaData -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m deleted file mode 100644 index 675e6e4..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTest.m +++ /dev/null @@ -1,1619 +0,0 @@ -#import "NBMetadataCoreTest.h" -#import "NBPhoneNumberDefines.h" -#import "NBPhoneNumberDesc.h" - -#import "NBNumberFormat.h" - -@implementation NBPhoneMetadataTestAD -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AD"; - self.countryCode = [NSNumber numberWithInteger:376]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestBR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BR"; - self.countryCode = [NSNumber numberWithInteger:55]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestAU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-578]\\d{4,14}" withPossibleNumberPattern:@"\\d{5,15}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2378]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"4\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1800\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"190[0126]\\d{6}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AU"; - self.countryCode = [NSNumber numberWithInteger:61]; - self.internationalPrefix = @"001[12]"; - self.preferredInternationalPrefix = @"0011"; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[2-478]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{1})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestBB -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BB"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestAE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"600\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"600123456"]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AE"; - self.countryCode = [NSNumber numberWithInteger:971]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestCX -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CX"; - self.countryCode = [NSNumber numberWithInteger:61]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestBS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(242|8(00|66|77|88)|900)\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\\d{4}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"242(357|359|457|557)\\d{4}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(00|66|77|88)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BS"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestDE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{4,14}" withPossibleNumberPattern:@"\\d{2,14}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}" withPossibleNumberPattern:@"\\d{2,14}" withExample:@"30123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1(5\\d{9}|7\\d{8}|6[02]\\d{8}|63\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900([135]\\d{6}|9\\d{7})" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"DE"; - self.countryCode = [NSNumber numberWithInteger:49]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"2|3[3-9]|906|[4-9][1-9]1"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,8})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[34]0|[68]9"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4,11})" withFormat:@"$1/$2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[4-9]"]; - [numberFormats2_patternArray addObject:@"[4-6]|[7-9](?:\\d[1-9]|[1-9]\\d)"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"([4-9]\\d)(\\d{2})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"[4-9]"]; - [numberFormats3_patternArray addObject:@"[4-6]|[7-9](?:\\d[1-9]|[1-9]\\d)"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"([4-9]\\d{3})(\\d{2,7})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"800"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{1})(\\d{6})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"900"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestKR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-7]\\d{3,9}|8\\d{8}" withPossibleNumberPattern:@"\\d{4,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})" withPossibleNumberPattern:@"\\d{4,10}" withExample:@"22123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1[0-25-9]\\d{7,8}" withPossibleNumberPattern:@"\\d{9,10}" withExample:@"1023456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"60[2-9]\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"602345678"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"50\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"5012345678"]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:@"7012345678"]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"KR"; - self.countryCode = [NSNumber numberWithInteger:82]; - self.internationalPrefix = @"00(?:[124-68]|[37]\\d{2})"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0(8[1-46-8]|85\\d{2})?"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5[458])|[57]0"]; - [numberFormats0_patternArray addObject:@"1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]"]; - [numberFormats1_patternArray addObject:@"1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"131"]; - [numberFormats2_patternArray addObject:@"1312"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d)(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"131"]; - [numberFormats3_patternArray addObject:@"131[13-9]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"13[2-9]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"30"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3-$4" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"2(?:[26]|3[0-467])"]; - [numberFormats6_patternArray addObject:@"2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - - NSMutableArray *numberFormats7_patternArray = [[NSMutableArray alloc] init]; - [numberFormats7_patternArray addObject:@"2(?:3[0-35-9]|[457-9])"]; - [numberFormats7_patternArray addObject:@"2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])"]; - NBNumberFormat *numberFormats7 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats7_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats7]; - - NSMutableArray *numberFormats8_patternArray = [[NSMutableArray alloc] init]; - [numberFormats8_patternArray addObject:@"21[0-46-9]"]; - [numberFormats8_patternArray addObject:@"21(?:[0-247-9]|3[124]|6[1269])"]; - NBNumberFormat *numberFormats8 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats8_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats8]; - - NSMutableArray *numberFormats9_patternArray = [[NSMutableArray alloc] init]; - [numberFormats9_patternArray addObject:@"21[36]"]; - [numberFormats9_patternArray addObject:@"21(?:3[035-9]|6[03-578])"]; - NBNumberFormat *numberFormats9 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats9_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats9]; - - NSMutableArray *numberFormats10_patternArray = [[NSMutableArray alloc] init]; - [numberFormats10_patternArray addObject:@"[3-6][1-9]1"]; - [numberFormats10_patternArray addObject:@"[3-6][1-9]1(?:[0-46-9])"]; - [numberFormats10_patternArray addObject:@"[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])"]; - NBNumberFormat *numberFormats10 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats10_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats10]; - - NSMutableArray *numberFormats11_patternArray = [[NSMutableArray alloc] init]; - [numberFormats11_patternArray addObject:@"[3-6][1-9]1"]; - [numberFormats11_patternArray addObject:@"[3-6][1-9]1[36]"]; - [numberFormats11_patternArray addObject:@"[3-6][1-9]1(?:3[035-9]|6[03-578])"]; - NBNumberFormat *numberFormats11 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats11_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats11]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestNZ -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[289]\\d{7,9}|[3-7]\\d{7}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"24099\\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\\d{6}" withPossibleNumberPattern:@"\\d{7,8}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2(?:[027]\\d{7}|9\\d{6,7}|1(?:0\\d{5,7}|[12]\\d{5,6}|[3-9]\\d{5})|4[1-9]\\d{6}|8\\d{7,8})" withPossibleNumberPattern:@"\\d{8,10}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6,7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{6,7}" withPossibleNumberPattern:@"\\d{9,10}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"NZ"; - self.countryCode = [NSNumber numberWithInteger:64]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"24|[34679]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{4})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"2[179]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3,5})" withFormat:@"$1-$2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[89]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestPL -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"(?:5[01]|6[069]|7[289]|88)\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"PL"; - self.countryCode = [NSNumber numberWithInteger:48]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestYT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2696[0-4]\\d{4}" withPossibleNumberPattern:@"\\d{9}" withExample:@"269601234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"639\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"639123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"YT"; - self.countryCode = [NSNumber numberWithInteger:262]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"269|639"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestCA -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CA"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestAO -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[29]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"2\\d(?:[26-9]\\d|\\d[26-9])\\d{5}" withPossibleNumberPattern:@"\\d{9}" withExample:@"222123456"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[1-3]\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"923123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AO"; - self.countryCode = [NSNumber numberWithInteger:244]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0~0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0~0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTest800 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"12345678"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{8}" withPossibleNumberPattern:@"\\d{8}" withExample:@"12345678"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:800]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestFR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{6}" withPossibleNumberPattern:@"\\d{7}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"FR"; - self.countryCode = [NSNumber numberWithInteger:33]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestGG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GG"; - self.countryCode = [NSNumber numberWithInteger:44]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestHU -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"30\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"HU"; - self.countryCode = [NSNumber numberWithInteger:36]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"06"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"06"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestSG -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13689]\\d{7,10}" withPossibleNumberPattern:@"\\d{8}|\\d{10,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[36]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[89]\\d{7}" withPossibleNumberPattern:@"\\d{8}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1?800\\d{7}" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1900\\d{7}" withPossibleNumberPattern:@"\\d{11}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"SG"; - self.countryCode = [NSNumber numberWithInteger:65]; - self.internationalPrefix = @"0[0-3][0-9]"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"777777"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[369]|8[1-9]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[89]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"800"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestJP -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"07\\d{5}|[1-357-9]\\d{3,10}" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"07\\d{5}|[1-357-9]\\d{3,10}" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"07\\d{5}|[1-357-9]\\d{3,10}" withPossibleNumberPattern:@"\\d{4,11}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0777[01]\\d{2}" withPossibleNumberPattern:@"\\d{7}" withExample:@"0777012"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[23]\\d{3}" withPossibleNumberPattern:@"\\d{4}" withExample:nil]; - self.codeID = @"JP"; - self.countryCode = [NSNumber numberWithInteger:81]; - self.internationalPrefix = @"010"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[57-9]0"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[57-9]0"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"111|222|333"]; - [numberFormats2_patternArray addObject:@"(?:111|222|333)1"]; - [numberFormats2_patternArray addObject:@"(?:111|222|333)11"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"222|333"]; - [numberFormats3_patternArray addObject:@"2221|3332"]; - [numberFormats3_patternArray addObject:@"22212|3332"]; - [numberFormats3_patternArray addObject:@"222120|3332"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d)(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[23]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - - NSMutableArray *numberFormats5_patternArray = [[NSMutableArray alloc] init]; - [numberFormats5_patternArray addObject:@"077"]; - NBNumberFormat *numberFormats5 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1-$2" withLeadingDigitsPatterns:numberFormats5_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats5]; - - NSMutableArray *numberFormats6_patternArray = [[NSMutableArray alloc] init]; - [numberFormats6_patternArray addObject:@"[23]"]; - NBNumberFormat *numberFormats6 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"*$1" withLeadingDigitsPatterns:numberFormats6_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats6]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestCC -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CC"; - self.countryCode = [NSNumber numberWithInteger:61]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestMX -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{9,10}" withPossibleNumberPattern:@"\\d{7,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[2-9]\\d{9}" withPossibleNumberPattern:@"\\d{7,10}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"1\\d{10}" withPossibleNumberPattern:@"\\d{11}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"MX"; - self.countryCode = [NSNumber numberWithInteger:52]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"01"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"01|04[45](\\d{10})"; - self.nationalPrefixTransformRule = @"1$1"; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[89]00"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"33|55|81"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"1(?:33|55|81)"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{2})(\\d{4})(\\d{4})" withFormat:@"045 $2 $3 $4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"045 $2 $3 $4" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"[89]00"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"33|55|81"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:@"01 $1" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"1(?:33|55|81)"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(1)(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestUS -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-689]\\d{9}|2[0-35-9]\\d{8}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"1234567890"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-689]\\d{9}|2[0-35-9]\\d{8}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"1234567890"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[13-689]\\d{9}|2[0-35-9]\\d{8}" withPossibleNumberPattern:@"\\d{7}(?:\\d{3})?" withExample:@"1234567890"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:00|66|77|88)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1234567890"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"900\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1234567890"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"800\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:@"1234567890"]; - self.codeID = @"US"; - self.countryCode = [NSNumber numberWithInteger:1]; - self.internationalPrefix = @"011"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"1"; - self.preferredExtnPrefix = @" extn. "; - self.nationalPrefixForParsing = @"1"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:YES withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = YES; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestIT -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[0389]\\d{5,10}" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"0\\d{9,10}" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"3\\d{8,9}" withPossibleNumberPattern:@"\\d{9,10}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80(?:0\\d{6}|3\\d{3})" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"89(?:2\\d{3}|9\\d{6})" withPossibleNumberPattern:@"\\d{6,9}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"IT"; - self.countryCode = [NSNumber numberWithInteger:39]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"0[26]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"0[13-57-9]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{4})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"3"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{3,4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = YES; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestAR -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-3689]\\d{9,10}" withPossibleNumberPattern:@"\\d{6,11}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-3]\\d{9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9\\d{10}|[1-3]\\d{9}" withPossibleNumberPattern:@"\\d{10,11}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(0\\d|10)\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"AR"; - self.countryCode = [NSNumber numberWithInteger:54]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0(?:(11|343|3715)15)?"; - self.nationalPrefixTransformRule = @"9$1"; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"11"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"1[02-9]|[23]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"911"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$2 15 $3-$4" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"9(?:1[02-9]|[23])"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$2 $3-$4" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"0$1 $CC"]; - [numberFormats_FormatArray addObject:numberFormats3]; - - NSMutableArray *numberFormats4_patternArray = [[NSMutableArray alloc] init]; - [numberFormats4_patternArray addObject:@"[68]"]; - NBNumberFormat *numberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:numberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats4]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *intlNumberFormats0_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats0_patternArray addObject:@"11"]; - NBNumberFormat *intlNumberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats0]; - - NSMutableArray *intlNumberFormats1_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats1_patternArray addObject:@"1[02-9]|[23]"]; - NBNumberFormat *intlNumberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2-$3" withLeadingDigitsPatterns:intlNumberFormats1_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats1]; - - NSMutableArray *intlNumberFormats2_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats2_patternArray addObject:@"911"]; - NBNumberFormat *intlNumberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(9)(11)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats2_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats2]; - - NSMutableArray *intlNumberFormats3_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats3_patternArray addObject:@"9(?:1[02-9]|[23])"]; - NBNumberFormat *intlNumberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(9)(\\d{4})(\\d{2})(\\d{4})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:intlNumberFormats3_patternArray withNationalPrefixFormattingRule:nil whenFormatting:NO withDomesticCarrierCodeFormattingRule:nil]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats3]; - - NSMutableArray *intlNumberFormats4_patternArray = [[NSMutableArray alloc] init]; - [intlNumberFormats4_patternArray addObject:@"[68]"]; - NBNumberFormat *intlNumberFormats4 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1-$2-$3" withLeadingDigitsPatterns:intlNumberFormats4_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [intlNumberFormats_FormatArray addObject:intlNumberFormats4]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTest979 -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:@"123456789"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{9}" withPossibleNumberPattern:@"\\d{9}" withExample:@"123456789"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"001"; - self.countryCode = [NSNumber numberWithInteger:979]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestGB -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"\\d{10}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-6]\\d{9}" withPossibleNumberPattern:@"\\d{6,10}" withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"7[1-57-9]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"9[018]\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:4[3-5]|7[0-2])\\d{7}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"70\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"56\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"76\\d{8}" withPossibleNumberPattern:@"\\d{10}" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"GB"; - self.countryCode = [NSNumber numberWithInteger:44]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-59]|[78]0"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{4})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"6"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d)(\\d{3})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"7[1-57-9]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})(\\d{3})(\\d{3})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - - NSMutableArray *numberFormats3_patternArray = [[NSMutableArray alloc] init]; - [numberFormats3_patternArray addObject:@"8[47]"]; - NBNumberFormat *numberFormats3 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})(\\d{4})" withFormat:@"$1 $2 $3" withLeadingDigitsPatterns:numberFormats3_patternArray withNationalPrefixFormattingRule:@"(0$1)" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats3]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestBY -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:@"112345"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[1-9]\\d{5}" withPossibleNumberPattern:@"\\d{6}" withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"BY"; - self.countryCode = [NSNumber numberWithInteger:375]; - self.internationalPrefix = @"810"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"8"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"80?|99999"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[1-8]"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{4})" withFormat:@"$1" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - - NSMutableArray *numberFormats1_patternArray = [[NSMutableArray alloc] init]; - [numberFormats1_patternArray addObject:@"[1-8]"]; - NBNumberFormat *numberFormats1 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{2})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats1_patternArray withNationalPrefixFormattingRule:@"8$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats1]; - - NSMutableArray *numberFormats2_patternArray = [[NSMutableArray alloc] init]; - [numberFormats2_patternArray addObject:@"[1-8]"]; - NBNumberFormat *numberFormats2 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{3})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats2_patternArray withNationalPrefixFormattingRule:@"8 $1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats2]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestCN -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"CN"; - self.countryCode = [NSNumber numberWithInteger:86]; - self.internationalPrefix = @""; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = nil; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = nil; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = YES; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - [numberFormats0_patternArray addObject:@"[3-9]"]; - [numberFormats0_patternArray addObject:@"[3-9]\\d{2}[19]"]; - [numberFormats0_patternArray addObject:@"[3-9]\\d{2}(?:10|95)"]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"(\\d{3})(\\d{5,6})" withFormat:@"$1 $2" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@"$CC $1"]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = nil; - self.leadingZeroPossible = NO; - } - return self; -} -@end - -@implementation NBPhoneMetadataTestRE -- (id)init -{ - self = [super init]; - if (self) { - self.generalDesc = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"[268]\\d{8}" withPossibleNumberPattern:@"\\d{9}" withExample:nil]; - self.fixedLine = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"262\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"262161234"]; - self.mobile = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"6(?:9[23]|47)\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"692123456"]; - self.tollFree = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"80\\d{7}" withPossibleNumberPattern:@"\\d{9}" withExample:@"801234567"]; - self.premiumRate = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"8(?:1[01]|2[0156]|84|9[0-37-9])\\d{6}" withPossibleNumberPattern:@"\\d{9}" withExample:@"810123456"]; - self.sharedCost = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.personalNumber = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.voip = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.pager = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.uan = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.emergency = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:nil withPossibleNumberPattern:nil withExample:nil]; - self.voicemail = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.noInternationalDialling = [[NBPhoneNumberDesc alloc] initWithNationalNumberPattern:@"NA" withPossibleNumberPattern:@"NA" withExample:nil]; - self.codeID = @"RE"; - self.countryCode = [NSNumber numberWithInteger:262]; - self.internationalPrefix = @"00"; - self.preferredInternationalPrefix = nil; - self.nationalPrefix = @"0"; - self.preferredExtnPrefix = nil; - self.nationalPrefixForParsing = @"0"; - self.nationalPrefixTransformRule = nil; - self.sameMobileAndFixedLinePattern = NO; - - NSMutableArray *numberFormats_FormatArray = [[NSMutableArray alloc] init]; - - NSMutableArray *numberFormats0_patternArray = [[NSMutableArray alloc] init]; - NBNumberFormat *numberFormats0 = [[NBNumberFormat alloc] initWithPattern:@"([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})" withFormat:@"$1 $2 $3 $4" withLeadingDigitsPatterns:numberFormats0_patternArray withNationalPrefixFormattingRule:@"0$1" whenFormatting:NO withDomesticCarrierCodeFormattingRule:@""]; - [numberFormats_FormatArray addObject:numberFormats0]; - self.numberFormats = numberFormats_FormatArray; - - NSMutableArray *intlNumberFormats_FormatArray = [[NSMutableArray alloc] init]; - self.intlNumberFormats = intlNumberFormats_FormatArray; - self.mainCountryForCode = NO; - self.leadingDigits = @"262|6(?:9[23]|47)|8"; - self.leadingZeroPossible = NO; - } - return self; -} -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h deleted file mode 100644 index 0544330..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - -@interface NBMetadataCoreTestMapper : NSObject - -+ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key; - -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m deleted file mode 100644 index 234b0b0..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataCoreTestMapper.m +++ /dev/null @@ -1,116 +0,0 @@ -#import "NBMetadataCoreTestMapper.h" - -@implementation NBMetadataCoreTestMapper - -static NSMutableDictionary *kMapCCode2CN; - -+ (NSArray *)ISOCodeFromCallingNumber:(NSString *)key -{ - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - kMapCCode2CN = [[NSMutableDictionary alloc] init]; - - NSMutableArray *countryCode971Array = [[NSMutableArray alloc] init]; - [countryCode971Array addObject:@"AE"]; - [kMapCCode2CN setObject:countryCode971Array forKey:@"971"]; - - NSMutableArray *countryCode55Array = [[NSMutableArray alloc] init]; - [countryCode55Array addObject:@"BR"]; - [kMapCCode2CN setObject:countryCode55Array forKey:@"55"]; - - NSMutableArray *countryCode48Array = [[NSMutableArray alloc] init]; - [countryCode48Array addObject:@"PL"]; - [kMapCCode2CN setObject:countryCode48Array forKey:@"48"]; - - NSMutableArray *countryCode33Array = [[NSMutableArray alloc] init]; - [countryCode33Array addObject:@"FR"]; - [kMapCCode2CN setObject:countryCode33Array forKey:@"33"]; - - NSMutableArray *countryCode49Array = [[NSMutableArray alloc] init]; - [countryCode49Array addObject:@"DE"]; - [kMapCCode2CN setObject:countryCode49Array forKey:@"49"]; - - NSMutableArray *countryCode86Array = [[NSMutableArray alloc] init]; - [countryCode86Array addObject:@"CN"]; - [kMapCCode2CN setObject:countryCode86Array forKey:@"86"]; - - NSMutableArray *countryCode64Array = [[NSMutableArray alloc] init]; - [countryCode64Array addObject:@"NZ"]; - [kMapCCode2CN setObject:countryCode64Array forKey:@"64"]; - - NSMutableArray *countryCode800Array = [[NSMutableArray alloc] init]; - [countryCode800Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode800Array forKey:@"800"]; - - NSMutableArray *countryCode1Array = [[NSMutableArray alloc] init]; - [countryCode1Array addObject:@"US"]; - [countryCode1Array addObject:@"BB"]; - [countryCode1Array addObject:@"BS"]; - [countryCode1Array addObject:@"CA"]; - [kMapCCode2CN setObject:countryCode1Array forKey:@"1"]; - - NSMutableArray *countryCode65Array = [[NSMutableArray alloc] init]; - [countryCode65Array addObject:@"SG"]; - [kMapCCode2CN setObject:countryCode65Array forKey:@"65"]; - - NSMutableArray *countryCode36Array = [[NSMutableArray alloc] init]; - [countryCode36Array addObject:@"HU"]; - [kMapCCode2CN setObject:countryCode36Array forKey:@"36"]; - - NSMutableArray *countryCode244Array = [[NSMutableArray alloc] init]; - [countryCode244Array addObject:@"AO"]; - [kMapCCode2CN setObject:countryCode244Array forKey:@"244"]; - - NSMutableArray *countryCode375Array = [[NSMutableArray alloc] init]; - [countryCode375Array addObject:@"BY"]; - [kMapCCode2CN setObject:countryCode375Array forKey:@"375"]; - - NSMutableArray *countryCode44Array = [[NSMutableArray alloc] init]; - [countryCode44Array addObject:@"GB"]; - [countryCode44Array addObject:@"GG"]; - [kMapCCode2CN setObject:countryCode44Array forKey:@"44"]; - - NSMutableArray *countryCode81Array = [[NSMutableArray alloc] init]; - [countryCode81Array addObject:@"JP"]; - [kMapCCode2CN setObject:countryCode81Array forKey:@"81"]; - - NSMutableArray *countryCode52Array = [[NSMutableArray alloc] init]; - [countryCode52Array addObject:@"MX"]; - [kMapCCode2CN setObject:countryCode52Array forKey:@"52"]; - - NSMutableArray *countryCode82Array = [[NSMutableArray alloc] init]; - [countryCode82Array addObject:@"KR"]; - [kMapCCode2CN setObject:countryCode82Array forKey:@"82"]; - - NSMutableArray *countryCode376Array = [[NSMutableArray alloc] init]; - [countryCode376Array addObject:@"AD"]; - [kMapCCode2CN setObject:countryCode376Array forKey:@"376"]; - - NSMutableArray *countryCode979Array = [[NSMutableArray alloc] init]; - [countryCode979Array addObject:@"001"]; - [kMapCCode2CN setObject:countryCode979Array forKey:@"979"]; - - NSMutableArray *countryCode39Array = [[NSMutableArray alloc] init]; - [countryCode39Array addObject:@"IT"]; - [kMapCCode2CN setObject:countryCode39Array forKey:@"39"]; - - NSMutableArray *countryCode61Array = [[NSMutableArray alloc] init]; - [countryCode61Array addObject:@"AU"]; - [countryCode61Array addObject:@"CC"]; - [countryCode61Array addObject:@"CX"]; - [kMapCCode2CN setObject:countryCode61Array forKey:@"61"]; - - NSMutableArray *countryCode54Array = [[NSMutableArray alloc] init]; - [countryCode54Array addObject:@"AR"]; - [kMapCCode2CN setObject:countryCode54Array forKey:@"54"]; - - NSMutableArray *countryCode262Array = [[NSMutableArray alloc] init]; - [countryCode262Array addObject:@"RE"]; - [countryCode262Array addObject:@"YT"]; - [kMapCCode2CN setObject:countryCode262Array forKey:@"262"]; - }); - return [kMapCCode2CN objectForKey:key]; -} - -@end - diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h deleted file mode 100644 index d33e31b..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// NBMetadataHelper.h -// libPhoneNumber -// -// Created by tabby on 2015. 2. 8.. -// Copyright (c) 2015년 ohtalk.me. All rights reserved. -// - -#import -#import "NBPhoneNumberDefines.h" - - -@class NBPhoneMetaData; - -@interface NBMetadataHelper : NSObject - -+ (void)setTestMode:(BOOL)isMode; - -+ (NSArray *)getAllMetadata; - -+ (NBPhoneMetaData *)getMetadataForNonGeographicalRegion:(NSNumber *)countryCallingCode; -+ (NBPhoneMetaData *)getMetadataForRegion:(NSString *)regionCode; - -+ (NSArray *)regionCodeFromCountryCode:(NSNumber *)countryCodeNumber; -+ (NSString *)countryCodeFromRegionCode:(NSString *)regionCode; - -+ (NSString *)stringByTrimming:(NSString *)aString; -+ (NSString *)normalizeNonBreakingSpace:(NSString *)aString; - -+ (BOOL)hasValue:(NSString *)string; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m deleted file mode 100644 index ef1dfc4..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBMetadataHelper.m +++ /dev/null @@ -1,259 +0,0 @@ -// -// NBMetadataHelper.m -// libPhoneNumber -// -// Created by tabby on 2015. 2. 8.. -// Copyright (c) 2015년 ohtalk.me. All rights reserved. -// - -#import "NBMetadataHelper.h" - -#import "NBPhoneMetaData.h" - -#import "NBMetadataCoreTest.h" -#import "NBMetadataCore.h" - -#import "NBMetadataCoreMapper.h" -#import "NBMetadataCoreTestMapper.h" - - -@interface NBMetadataHelper () - -@end - - -@implementation NBMetadataHelper - -/* - Terminologies - - Country Number (CN) = Country code for i18n calling - - Country Code (CC) : ISO country codes (2 chars) - Ref. site (countrycode.org) - */ - -static NSMutableDictionary *kMapCCode2CN; - -// Cached metadata -static NBPhoneMetaData *cachedMetaData; -static NSString *cachedMetaDataKey; - -static BOOL isTestMode = NO; - -+ (void)setTestMode:(BOOL)isMode -{ - isTestMode = isMode; -} - -/** - * initialization meta-meta variables - */ -+ (void)initializeHelper -{ - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - kMapCCode2CN = [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"1", @"US", @"1", @"AG", @"1", @"AI", @"1", @"AS", @"1", @"BB", @"1", @"BM", @"1", @"BS", @"1", @"CA", @"1", @"DM", @"1", @"DO", - @"1", @"GD", @"1", @"GU", @"1", @"JM", @"1", @"KN", @"1", @"KY", @"1", @"LC", @"1", @"MP", @"1", @"MS", @"1", @"PR", @"1", @"SX", - @"1", @"TC", @"1", @"TT", @"1", @"VC", @"1", @"VG", @"1", @"VI", @"7", @"RU", @"7", @"KZ", - @"20", @"EG", @"27", @"ZA", - @"30", @"GR", @"31", @"NL", @"32", @"BE", @"33", @"FR", @"34", @"ES", @"36", @"HU", @"39", @"IT", - @"40", @"RO", @"41", @"CH", @"43", @"AT", @"44", @"GB", @"44", @"GG", @"44", @"IM", @"44", @"JE", @"45", @"DK", @"46", @"SE", @"47", @"NO", @"47", @"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", @"61", @"CC", @"61", @"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", @"212", @"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", @"262", @"YT", @"263", @"ZW", @"264", @"NA", @"265", @"MW", @"266", @"LS", @"267", @"BW", @"268", @"SZ", @"269", @"KM", - @"290", @"SH", @"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",@"358", @"AX", @"359", @"BG", - @"370", @"LT", @"371", @"LV", @"372", @"EE", @"373", @"MD", @"374", @"AM", @"375", @"BY", @"376", @"AD", @"377", @"MC", @"378", @"SM", @"379", @"VA", - @"380", @"UA", @"381", @"RS", @"382", @"ME", @"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", @"590", @"BL", @"590", @"MF", @"591", @"BO", @"592", @"GY", @"593", @"EC", @"594", @"GF", @"595", @"PY", @"596", @"MQ", @"597", @"SR", @"598", @"UY", @"599", @"CW", @"599", @"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", - @"800", @"001", @"808", @"001", - @"850", @"KP", @"852", @"HK", @"853", @"MO", @"855", @"KH", @"856", @"LA", - @"870", @"001", @"878", @"001", - @"880", @"BD", @"881", @"001", @"882", @"001", @"883", @"001", @"886", @"TW", @"888", @"001", - @"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", @"979", @"001", - @"992", @"TJ", @"993", @"TM", @"994", @"AZ", @"995", @"GE", @"996", @"KG", @"998", @"UZ", - nil]; - }); -} - - -+ (void)clearHelper -{ - if (kMapCCode2CN) { - [kMapCCode2CN removeAllObjects]; - kMapCCode2CN = nil; - } -} - - -+ (NSArray*)getAllMetadata -{ - NSArray *countryCodes = [NSLocale ISOCountryCodes]; - NSMutableArray *resultMetadata = [[NSMutableArray alloc] init]; - - for (NSString *countryCode in countryCodes) { - id countryDictionaryInstance = [NSDictionary dictionaryWithObject:countryCode forKey:NSLocaleCountryCode]; - NSString *identifier = [NSLocale localeIdentifierFromComponents:countryDictionaryInstance]; - NSString *country = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:identifier]; - - NSMutableDictionary *countryMeta = [[NSMutableDictionary alloc] init]; - if (country) { - [countryMeta setObject:country forKey:@"name"]; - } - - if (countryCode) { - [countryMeta setObject:countryCode forKey:@"code"]; - } - - NBPhoneMetaData *metaData = [NBMetadataHelper getMetadataForRegion:countryCode]; - if (metaData) { - [countryMeta setObject:metaData forKey:@"metadata"]; - } - - [resultMetadata addObject:countryMeta]; - } - - return resultMetadata; -} - - -+ (NSArray *)regionCodeFromCountryCode:(NSNumber *)countryCodeNumber -{ - [NBMetadataHelper initializeHelper]; - - id res = nil; - - if (isTestMode) { - res = [NBMetadataCoreTestMapper ISOCodeFromCallingNumber:[countryCodeNumber stringValue]]; - } else { - res = [NBMetadataCoreMapper ISOCodeFromCallingNumber:[countryCodeNumber stringValue]]; - } - - if (res && [res isKindOfClass:[NSArray class]] && [((NSArray*)res) count] > 0) { - return res; - } - - return nil; -} - - -+ (NSString *)countryCodeFromRegionCode:(NSString* )regionCode -{ - [NBMetadataHelper initializeHelper]; - - id res = [kMapCCode2CN objectForKey:regionCode]; - - if (res) { - return res; - } - - return nil; -} - - -+ (NSString *)stringByTrimming:(NSString *)aString -{ - if (aString == nil || aString.length <= 0) return aString; - - aString = [NBMetadataHelper normalizeNonBreakingSpace:aString]; - - NSString *aRes = @""; - NSArray *newlines = [aString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; - - for (NSString *line in newlines) { - NSString *performedString = [line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; - - if (performedString.length > 0) { - aRes = [aRes stringByAppendingString:performedString]; - } - } - - if (newlines.count <= 0) { - return aString; - } - - return aRes; -} - - -+ (NSString *)normalizeNonBreakingSpace:(NSString *)aString -{ - return [aString stringByReplacingOccurrencesOfString:NB_NON_BREAKING_SPACE withString:@" "]; -} - - -/** - * Returns the metadata for the given region code or {@code nil} if the region - * code is invalid or unknown. - * - * @param {?string} regionCode - * @return {i18n.phonenumbers.PhoneMetadata} - */ -+ (NBPhoneMetaData *)getMetadataForRegion:(NSString *)regionCode -{ - [NBMetadataHelper initializeHelper]; - - if ([self hasValue:regionCode] == NO) { - return nil; - } - - regionCode = [regionCode uppercaseString]; - - NSString *classPrefix = isTestMode ? @"NBPhoneMetadataTest" : @"NBPhoneMetadata"; - - NSString *className = [NSString stringWithFormat:@"%@%@", classPrefix, regionCode]; - Class metaClass = NSClassFromString(className); - - if (metaClass) { - NBPhoneMetaData *metadata = [[metaClass alloc] init]; - return metadata; - } - - return nil; -} - - -/** - * @param {number} countryCallingCode - * @return {i18n.phonenumbers.PhoneMetadata} - */ -+ (NBPhoneMetaData *)getMetadataForNonGeographicalRegion:(NSNumber *)countryCallingCode -{ - NSString *countryCallingCodeStr = [NSString stringWithFormat:@"%@", countryCallingCode]; - return [self getMetadataForRegion:countryCallingCodeStr]; -} - - -#pragma mark - Regular expression Utilities - - -+ (BOOL)hasValue:(NSString*)string -{ - static dispatch_once_t onceToken; - static NSCharacterSet *whitespaceCharSet = nil; - dispatch_once(&onceToken, ^{ - NSMutableCharacterSet *spaceCharSet = [NSMutableCharacterSet characterSetWithCharactersInString:NB_NON_BREAKING_SPACE]; - [spaceCharSet formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; - whitespaceCharSet = spaceCharSet; - }); - - if (string == nil || [string stringByTrimmingCharactersInSet:whitespaceCharSet].length <= 0) { - return NO; - } - - return YES; -} - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h deleted file mode 100755 index 2abb41a..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// NBPhoneNumberFormat.h -// libPhoneNumber -// -// - -#import - - -@interface NBNumberFormat : NSObject - -// from phonemetadata.pb.js -/* 1 */ @property (nonatomic, strong) NSString *pattern; -/* 2 */ @property (nonatomic, strong) NSString *format; -/* 3 */ @property (nonatomic, strong) NSMutableArray *leadingDigitsPatterns; -/* 4 */ @property (nonatomic, strong) NSString *nationalPrefixFormattingRule; -/* 6 */ @property (nonatomic, assign) BOOL nationalPrefixOptionalWhenFormatting; -/* 5 */ @property (nonatomic, strong) NSString *domesticCarrierCodeFormattingRule; - -- (id)initWithPattern:(NSString *)pattern withFormat:(NSString *)format withLeadingDigitsPatterns:(NSMutableArray *)leadingDigitsPatterns withNationalPrefixFormattingRule:(NSString *)nationalPrefixFormattingRule whenFormatting:(BOOL)nationalPrefixOptionalWhenFormatting withDomesticCarrierCodeFormattingRule:(NSString *)domesticCarrierCodeFormattingRule; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m deleted file mode 100755 index 96f64af..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBNumberFormat.m +++ /dev/null @@ -1,98 +0,0 @@ -// -// NBPhoneNumberFormat.m -// libPhoneNumber -// -// - -#import "NBNumberFormat.h" -#import "NSArray+NBAdditions.h" - - -@implementation NBNumberFormat - - -- (id)initWithPattern:(NSString *)pattern withFormat:(NSString *)format withLeadingDigitsPatterns:(NSMutableArray *)leadingDigitsPatterns withNationalPrefixFormattingRule:(NSString *)nationalPrefixFormattingRule whenFormatting:(BOOL)nationalPrefixOptionalWhenFormatting withDomesticCarrierCodeFormattingRule:(NSString *)domesticCarrierCodeFormattingRule -{ - self = [self init]; - - _pattern = pattern; - _format = format; - _leadingDigitsPatterns = leadingDigitsPatterns; - _nationalPrefixFormattingRule = nationalPrefixFormattingRule; - _nationalPrefixOptionalWhenFormatting = nationalPrefixOptionalWhenFormatting; - _domesticCarrierCodeFormattingRule = domesticCarrierCodeFormattingRule; - - return self; -} - - -- (id)init -{ - self = [super init]; - - if (self) { - self.nationalPrefixOptionalWhenFormatting = NO; - self.leadingDigitsPatterns = [[NSMutableArray alloc] init]; - } - - return self; -} - - -- (NSString *)description -{ - return [NSString stringWithFormat:@"[pattern:%@, format:%@, leadingDigitsPattern:%@, nationalPrefixFormattingRule:%@, nationalPrefixOptionalWhenFormatting:%@, domesticCarrierCodeFormattingRule:%@]", - self.pattern, self.format, self.leadingDigitsPatterns, self.nationalPrefixFormattingRule, self.nationalPrefixOptionalWhenFormatting?@"Y":@"N", self.domesticCarrierCodeFormattingRule]; -} - - -- (id)copyWithZone:(NSZone *)zone -{ - NBNumberFormat *phoneFormatCopy = [[NBNumberFormat allocWithZone:zone] init]; - - /* - 1 @property (nonatomic, strong, readwrite) NSString *pattern; - 2 @property (nonatomic, strong, readwrite) NSString *format; - 3 @property (nonatomic, strong, readwrite) NSString *leadingDigitsPattern; - 4 @property (nonatomic, strong, readwrite) NSString *nationalPrefixFormattingRule; - 6 @property (nonatomic, assign, readwrite) BOOL nationalPrefixOptionalWhenFormatting; - 5 @property (nonatomic, strong, readwrite) NSString *domesticCarrierCodeFormattingRule; - */ - - phoneFormatCopy.pattern = [self.pattern copy]; - phoneFormatCopy.format = [self.format copy]; - phoneFormatCopy.leadingDigitsPatterns = [self.leadingDigitsPatterns copy]; - phoneFormatCopy.nationalPrefixFormattingRule = [self.nationalPrefixFormattingRule copy]; - phoneFormatCopy.nationalPrefixOptionalWhenFormatting = self.nationalPrefixOptionalWhenFormatting; - phoneFormatCopy.domesticCarrierCodeFormattingRule = [self.domesticCarrierCodeFormattingRule copy]; - - return phoneFormatCopy; -} - - -- (id)initWithCoder:(NSCoder*)coder -{ - if (self = [super init]) { - self.pattern = [coder decodeObjectForKey:@"pattern"]; - self.format = [coder decodeObjectForKey:@"format"]; - self.leadingDigitsPatterns = [coder decodeObjectForKey:@"leadingDigitsPatterns"]; - self.nationalPrefixFormattingRule = [coder decodeObjectForKey:@"nationalPrefixFormattingRule"]; - self.nationalPrefixOptionalWhenFormatting = [[coder decodeObjectForKey:@"nationalPrefixOptionalWhenFormatting"] boolValue]; - self.domesticCarrierCodeFormattingRule = [coder decodeObjectForKey:@"domesticCarrierCodeFormattingRule"]; - } - return self; -} - - -- (void)encodeWithCoder:(NSCoder*)coder -{ - [coder encodeObject:self.pattern forKey:@"pattern"]; - [coder encodeObject:self.format forKey:@"format"]; - [coder encodeObject:self.leadingDigitsPatterns forKey:@"leadingDigitsPatterns"]; - [coder encodeObject:self.nationalPrefixFormattingRule forKey:@"nationalPrefixFormattingRule"]; - [coder encodeObject:[NSNumber numberWithBool:self.nationalPrefixOptionalWhenFormatting] forKey:@"nationalPrefixOptionalWhenFormatting"]; - [coder encodeObject:self.domesticCarrierCodeFormattingRule forKey:@"domesticCarrierCodeFormattingRule"]; -} - - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h deleted file mode 100755 index 6b0bf2e..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// M2PhoneMetaData.h -// libPhoneNumber -// -// - -#import - - -@class NBPhoneNumberDesc, NBNumberFormat; - -@interface NBPhoneMetaData : NSObject - -// from phonemetadata.pb.js -/* 1 */ @property (nonatomic, strong) NBPhoneNumberDesc *generalDesc; -/* 2 */ @property (nonatomic, strong) NBPhoneNumberDesc *fixedLine; -/* 3 */ @property (nonatomic, strong) NBPhoneNumberDesc *mobile; -/* 4 */ @property (nonatomic, strong) NBPhoneNumberDesc *tollFree; -/* 5 */ @property (nonatomic, strong) NBPhoneNumberDesc *premiumRate; -/* 6 */ @property (nonatomic, strong) NBPhoneNumberDesc *sharedCost; -/* 7 */ @property (nonatomic, strong) NBPhoneNumberDesc *personalNumber; -/* 8 */ @property (nonatomic, strong) NBPhoneNumberDesc *voip; -/* 21 */ @property (nonatomic, strong) NBPhoneNumberDesc *pager; -/* 25 */ @property (nonatomic, strong) NBPhoneNumberDesc *uan; -/* 27 */ @property (nonatomic, strong) NBPhoneNumberDesc *emergency; -/* 28 */ @property (nonatomic, strong) NBPhoneNumberDesc *voicemail; -/* 24 */ @property (nonatomic, strong) NBPhoneNumberDesc *noInternationalDialling; -/* 9 */ @property (nonatomic, strong) NSString *codeID; -/* 10 */ @property (nonatomic, strong) NSNumber *countryCode; -/* 11 */ @property (nonatomic, strong) NSString *internationalPrefix; -/* 17 */ @property (nonatomic, strong) NSString *preferredInternationalPrefix; -/* 12 */ @property (nonatomic, strong) NSString *nationalPrefix; -/* 13 */ @property (nonatomic, strong) NSString *preferredExtnPrefix; -/* 15 */ @property (nonatomic, strong) NSString *nationalPrefixForParsing; -/* 16 */ @property (nonatomic, strong) NSString *nationalPrefixTransformRule; -/* 18 */ @property (nonatomic, assign) BOOL sameMobileAndFixedLinePattern; -/* 19 */ @property (nonatomic, strong) NSMutableArray *numberFormats; -/* 20 */ @property (nonatomic, strong) NSMutableArray *intlNumberFormats; -/* 22 */ @property (nonatomic, assign) BOOL mainCountryForCode; -/* 23 */ @property (nonatomic, strong) NSString *leadingDigits; -/* 26 */ @property (nonatomic, assign) BOOL leadingZeroPossible; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m deleted file mode 100755 index 1ca2083..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneMetaData.m +++ /dev/null @@ -1,106 +0,0 @@ -// -// NBPhoneMetaData.m -// libPhoneNumber -// -// - -#import "NBPhoneMetaData.h" -#import "NBPhoneNumberDesc.h" -#import "NBNumberFormat.h" -#import "NSArray+NBAdditions.h" - - -@implementation NBPhoneMetaData - - -- (id)init -{ - self = [super init]; - - if (self) { - _numberFormats = [[NSMutableArray alloc] init]; - _intlNumberFormats = [[NSMutableArray alloc] init]; - - _leadingZeroPossible = NO; - _mainCountryForCode = NO; - } - - return self; -} - - -- (NSString *)description -{ - return [NSString stringWithFormat:@"* codeID[%@] countryCode[%@] generalDesc[%@] fixedLine[%@] mobile[%@] tollFree[%@] premiumRate[%@] sharedCost[%@] personalNumber[%@] voip[%@] pager[%@] uan[%@] emergency[%@] voicemail[%@] noInternationalDialling[%@] internationalPrefix[%@] preferredInternationalPrefix[%@] nationalPrefix[%@] preferredExtnPrefix[%@] nationalPrefixForParsing[%@] nationalPrefixTransformRule[%@] sameMobileAndFixedLinePattern[%@] numberFormats[%@] intlNumberFormats[%@] mainCountryForCode[%@] leadingDigits[%@] leadingZeroPossible[%@]", - _codeID, _countryCode, _generalDesc, _fixedLine, _mobile, _tollFree, _premiumRate, _sharedCost, _personalNumber, _voip, _pager, _uan, _emergency, _voicemail, _noInternationalDialling, _internationalPrefix, _preferredInternationalPrefix, _nationalPrefix, _preferredExtnPrefix, _nationalPrefixForParsing, _nationalPrefixTransformRule, _sameMobileAndFixedLinePattern?@"Y":@"N", _numberFormats, _intlNumberFormats, _mainCountryForCode?@"Y":@"N", _leadingDigits, _leadingZeroPossible?@"Y":@"N"]; -} - - -- (id)initWithCoder:(NSCoder*)coder -{ - if (self = [super init]) { - _generalDesc = [coder decodeObjectForKey:@"generalDesc"]; - _fixedLine = [coder decodeObjectForKey:@"fixedLine"]; - _mobile = [coder decodeObjectForKey:@"mobile"]; - _tollFree = [coder decodeObjectForKey:@"tollFree"]; - _premiumRate = [coder decodeObjectForKey:@"premiumRate"]; - _sharedCost = [coder decodeObjectForKey:@"sharedCost"]; - _personalNumber = [coder decodeObjectForKey:@"personalNumber"]; - _voip = [coder decodeObjectForKey:@"voip"]; - _pager = [coder decodeObjectForKey:@"pager"]; - _uan = [coder decodeObjectForKey:@"uan"]; - _emergency = [coder decodeObjectForKey:@"emergency"]; - _voicemail = [coder decodeObjectForKey:@"voicemail"]; - _noInternationalDialling = [coder decodeObjectForKey:@"noInternationalDialling"]; - _codeID = [coder decodeObjectForKey:@"codeID"]; - _countryCode = [coder decodeObjectForKey:@"countryCode"]; - _internationalPrefix = [coder decodeObjectForKey:@"internationalPrefix"]; - _preferredInternationalPrefix = [coder decodeObjectForKey:@"preferredInternationalPrefix"]; - _nationalPrefix = [coder decodeObjectForKey:@"nationalPrefix"]; - _preferredExtnPrefix = [coder decodeObjectForKey:@"preferredExtnPrefix"]; - _nationalPrefixForParsing = [coder decodeObjectForKey:@"nationalPrefixForParsing"]; - _nationalPrefixTransformRule = [coder decodeObjectForKey:@"nationalPrefixTransformRule"]; - _sameMobileAndFixedLinePattern = [[coder decodeObjectForKey:@"sameMobileAndFixedLinePattern"] boolValue]; - _numberFormats = [coder decodeObjectForKey:@"numberFormats"]; - _intlNumberFormats = [coder decodeObjectForKey:@"intlNumberFormats"]; - _mainCountryForCode = [[coder decodeObjectForKey:@"mainCountryForCode"] boolValue]; - _leadingDigits = [coder decodeObjectForKey:@"leadingDigits"]; - _leadingZeroPossible = [[coder decodeObjectForKey:@"leadingZeroPossible"] boolValue]; - } - return self; -} - - -- (void)encodeWithCoder:(NSCoder*)coder -{ - [coder encodeObject:_generalDesc forKey:@"generalDesc"]; - [coder encodeObject:_fixedLine forKey:@"fixedLine"]; - [coder encodeObject:_mobile forKey:@"mobile"]; - [coder encodeObject:_tollFree forKey:@"tollFree"]; - [coder encodeObject:_premiumRate forKey:@"premiumRate"]; - [coder encodeObject:_sharedCost forKey:@"sharedCost"]; - [coder encodeObject:_personalNumber forKey:@"personalNumber"]; - [coder encodeObject:_voip forKey:@"voip"]; - [coder encodeObject:_pager forKey:@"pager"]; - [coder encodeObject:_uan forKey:@"uan"]; - [coder encodeObject:_emergency forKey:@"emergency"]; - [coder encodeObject:_voicemail forKey:@"voicemail"]; - [coder encodeObject:_noInternationalDialling forKey:@"noInternationalDialling"]; - [coder encodeObject:_codeID forKey:@"codeID"]; - [coder encodeObject:_countryCode forKey:@"countryCode"]; - [coder encodeObject:_internationalPrefix forKey:@"internationalPrefix"]; - [coder encodeObject:_preferredInternationalPrefix forKey:@"preferredInternationalPrefix"]; - [coder encodeObject:_nationalPrefix forKey:@"nationalPrefix"]; - [coder encodeObject:_preferredExtnPrefix forKey:@"preferredExtnPrefix"]; - [coder encodeObject:_nationalPrefixForParsing forKey:@"nationalPrefixForParsing"]; - [coder encodeObject:_nationalPrefixTransformRule forKey:@"nationalPrefixTransformRule"]; - [coder encodeObject:[NSNumber numberWithBool:_sameMobileAndFixedLinePattern] forKey:@"sameMobileAndFixedLinePattern"]; - [coder encodeObject:_numberFormats forKey:@"numberFormats"]; - [coder encodeObject:_intlNumberFormats forKey:@"intlNumberFormats"]; - [coder encodeObject:[NSNumber numberWithBool:_mainCountryForCode] forKey:@"mainCountryForCode"]; - [coder encodeObject:_leadingDigits forKey:@"leadingDigits"]; - [coder encodeObject:[NSNumber numberWithBool:_leadingZeroPossible] forKey:@"leadingZeroPossible"]; -} - - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h deleted file mode 100755 index 7b95671..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// NBPhoneNumber.h -// libPhoneNumber -// -// - -#import -#import "NBPhoneNumberDefines.h" - - -@interface NBPhoneNumber : NSObject - -// from phonemetadata.pb.js -/* 1 */ @property (nonatomic, strong, readwrite) NSNumber *countryCode; -/* 2 */ @property (nonatomic, strong, readwrite) NSNumber *nationalNumber; -/* 3 */ @property (nonatomic, strong, readwrite) NSString *extension; -/* 4 */ @property (nonatomic, assign, readwrite) BOOL italianLeadingZero; -/* 5 */ @property (nonatomic, strong, readwrite) NSString *rawInput; -/* 6 */ @property (nonatomic, strong, readwrite) NSNumber *countryCodeSource; -/* 7 */ @property (nonatomic, strong, readwrite) NSString *preferredDomesticCarrierCode; - -- (void)clearCountryCodeSource; -- (NBECountryCodeSource)getCountryCodeSourceOrDefault; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m deleted file mode 100755 index 9db6d3e..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumber.m +++ /dev/null @@ -1,119 +0,0 @@ -// -// NBPhoneNumber.m -// libPhoneNumber -// -// - -#import "NBPhoneNumber.h" -#import "NBPhoneNumberDefines.h" - - -@implementation NBPhoneNumber - -- (id)init -{ - self = [super init]; - - if (self) { - self.countryCodeSource = nil; - self.italianLeadingZero = NO; - self.nationalNumber = @-1; - self.countryCode = @-1; - } - - return self; -} - - -- (void)clearCountryCodeSource -{ - [self setCountryCodeSource:nil]; -} - - -- (NBECountryCodeSource)getCountryCodeSourceOrDefault -{ - if (!self.countryCodeSource) { - return NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN; - } - - return [self.countryCodeSource intValue]; -} - - -- (BOOL)isEqualToObject:(NBPhoneNumber*)otherObj -{ - return [self isEqual:otherObj]; -} - - -- (NSUInteger)hash -{ - NSData *selfObject = [NSKeyedArchiver archivedDataWithRootObject:self]; - return [selfObject hash]; -} - - -- (BOOL)isEqual:(id)object -{ - if (![object isKindOfClass:[NBPhoneNumber class]]) { - return NO; - } - - NBPhoneNumber *other = object; - return ([self.countryCode isEqualToNumber:other.countryCode]) && ([self.nationalNumber isEqualToNumber:other.nationalNumber]) && - (self.italianLeadingZero == other.italianLeadingZero) && - ((self.extension == nil && other.extension == nil) || [self.extension isEqualToString:other.extension]); -} - - -- (id)copyWithZone:(NSZone *)zone -{ - NBPhoneNumber *phoneNumberCopy = [[NBPhoneNumber allocWithZone:zone] init]; - - phoneNumberCopy.countryCode = [self.countryCode copy]; - phoneNumberCopy.nationalNumber = [self.nationalNumber copy]; - phoneNumberCopy.extension = [self.extension copy]; - phoneNumberCopy.italianLeadingZero = self.italianLeadingZero; - phoneNumberCopy.rawInput = [self.rawInput copy]; - phoneNumberCopy.countryCodeSource = [self.countryCodeSource copy]; - phoneNumberCopy.preferredDomesticCarrierCode = [self.preferredDomesticCarrierCode copy]; - - return phoneNumberCopy; -} - - -- (id)initWithCoder:(NSCoder*)coder -{ - if (self = [super init]) { - self.countryCode = [coder decodeObjectForKey:@"countryCode"]; - self.nationalNumber = [coder decodeObjectForKey:@"nationalNumber"]; - self.extension = [coder decodeObjectForKey:@"extension"]; - self.italianLeadingZero = [[coder decodeObjectForKey:@"italianLeadingZero"] boolValue]; - self.rawInput = [coder decodeObjectForKey:@"rawInput"]; - self.countryCodeSource = [coder decodeObjectForKey:@"countryCodeSource"]; - self.preferredDomesticCarrierCode = [coder decodeObjectForKey:@"preferredDomesticCarrierCode"]; - } - return self; -} - - -- (void)encodeWithCoder:(NSCoder*)coder -{ - [coder encodeObject:self.countryCode forKey:@"countryCode"]; - [coder encodeObject:self.nationalNumber forKey:@"nationalNumber"]; - [coder encodeObject:self.extension forKey:@"extension"]; - [coder encodeObject:[NSNumber numberWithBool:self.italianLeadingZero] forKey:@"italianLeadingZero"]; - [coder encodeObject:self.rawInput forKey:@"rawInput"]; - [coder encodeObject:self.countryCodeSource forKey:@"countryCodeSource"]; - [coder encodeObject:self.preferredDomesticCarrierCode forKey:@"preferredDomesticCarrierCode"]; -} - - - -- (NSString *)description -{ - return [NSString stringWithFormat:@" - countryCode[%@], nationalNumber[%@], extension[%@], italianLeadingZero[%@], rawInput[%@] countryCodeSource[%d] preferredDomesticCarrierCode[%@]", self.countryCode, self.nationalNumber, self.extension, self.italianLeadingZero?@"Y":@"N", self.rawInput, [self.countryCodeSource intValue], self.preferredDomesticCarrierCode]; -} - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h deleted file mode 100755 index 5154959..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDefines.h +++ /dev/null @@ -1,85 +0,0 @@ -// -// NBPhoneNumberDefines.h -// libPhoneNumber -// -// - -#ifndef libPhoneNumber_NBPhoneNumberDefines_h -#define libPhoneNumber_NBPhoneNumberDefines_h - -#define NB_YES [NSNumber numberWithBool:YES] -#define NB_NO [NSNumber numberWithBool:NO] - -#pragma mark - Enum - - -typedef enum { - NBEPhoneNumberFormatE164 = 0, - NBEPhoneNumberFormatINTERNATIONAL = 1, - NBEPhoneNumberFormatNATIONAL = 2, - NBEPhoneNumberFormatRFC3966 = 3 -} NBEPhoneNumberFormat; - - -typedef enum { - NBEPhoneNumberTypeFIXED_LINE = 0, - NBEPhoneNumberTypeMOBILE = 1, - // In some regions (e.g. the USA), it is impossible to distinguish between - // fixed-line and mobile numbers by looking at the phone number itself. - NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE = 2, - // Freephone lines - NBEPhoneNumberTypeTOLL_FREE = 3, - NBEPhoneNumberTypePREMIUM_RATE = 4, - // The cost of this call is shared between the caller and the recipient, and - // is hence typically less than PREMIUM_RATE calls. See - // http://en.wikipedia.org/wiki/Shared_Cost_Service for more information. - NBEPhoneNumberTypeSHARED_COST = 5, - // Voice over IP numbers. This includes TSoIP (Telephony Service over IP). - NBEPhoneNumberTypeVOIP = 6, - // A personal number is associated with a particular person, and may be routed - // to either a MOBILE or FIXED_LINE number. Some more information can be found - // here = http://en.wikipedia.org/wiki/Personal_Numbers - NBEPhoneNumberTypePERSONAL_NUMBER = 7, - NBEPhoneNumberTypePAGER = 8, - // Used for 'Universal Access Numbers' or 'Company Numbers'. They may be - // further routed to specific offices, but allow one number to be used for a - // company. - NBEPhoneNumberTypeUAN = 9, - // Used for 'Voice Mail Access Numbers'. - NBEPhoneNumberTypeVOICEMAIL = 10, - // A phone number is of type UNKNOWN when it does not fit any of the known - // patterns for a specific region. - NBEPhoneNumberTypeUNKNOWN = -1 -} NBEPhoneNumberType; - - -typedef enum { - NBEMatchTypeNOT_A_NUMBER = 0, - NBEMatchTypeNO_MATCH = 1, - NBEMatchTypeSHORT_NSN_MATCH = 2, - NBEMatchTypeNSN_MATCH = 3, - NBEMatchTypeEXACT_MATCH = 4 -} NBEMatchType; - - -typedef enum { - NBEValidationResultUNKNOWN = 0, - NBEValidationResultIS_POSSIBLE = 1, - NBEValidationResultINVALID_COUNTRY_CODE = 2, - NBEValidationResultTOO_SHORT = 3, - NBEValidationResultTOO_LONG = 4 -} NBEValidationResult; - - -typedef enum { - NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN = 1, - NBECountryCodeSourceFROM_NUMBER_WITH_IDD = 5, - NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN = 10, - NBECountryCodeSourceFROM_DEFAULT_COUNTRY = 20 -} NBECountryCodeSource; - -static NSString *NB_NON_BREAKING_SPACE = @"\u00a0"; -static NSString *NB_PLUS_CHARS = @"++"; -static NSString *NB_VALID_DIGITS_STRING = @"0-90-9٠-٩۰-۹"; -static NSString *NB_REGION_CODE_FOR_NON_GEO_ENTITY = @"001"; - -#endif diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h deleted file mode 100755 index 37111a7..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// NBPhoneNumberDesc.h -// libPhoneNumber -// -// - -#import - - -@interface NBPhoneNumberDesc : NSObject - -// from phonemetadata.pb.js -/* 2 */ @property (nonatomic, strong, readwrite) NSString *nationalNumberPattern; -/* 3 */ @property (nonatomic, strong, readwrite) NSString *possibleNumberPattern; -/* 6 */ @property (nonatomic, strong, readwrite) NSString *exampleNumber; - -- (id)initWithNationalNumberPattern:(NSString *)nnp withPossibleNumberPattern:(NSString *)pnp withExample:(NSString *)exp; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m deleted file mode 100755 index 058e543..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberDesc.m +++ /dev/null @@ -1,105 +0,0 @@ -// -// NBPhoneNumberDesc.m -// libPhoneNumber -// -// - -#import "NBPhoneNumberDesc.h" -#import "NSArray+NBAdditions.h" - - -@implementation NBPhoneNumberDesc - -- (id)initWithData:(id)data -{ - NSString *nnp = nil; - NSString *pnp = nil; - NSString *exp = nil; - - if (data != nil && [data isKindOfClass:[NSArray class]]) { - /* 2 */ nnp = [data safeObjectAtIndex:2]; - /* 3 */ pnp = [data safeObjectAtIndex:3]; - /* 6 */ exp = [data safeObjectAtIndex:6]; - } - - return [self initWithNationalNumberPattern:nnp withPossibleNumberPattern:pnp withExample:exp]; -} - - -- (id)initWithNationalNumberPattern:(NSString *)nnp withPossibleNumberPattern:(NSString *)pnp withExample:(NSString *)exp -{ - self = [self init]; - - if (self) { - self.nationalNumberPattern = nnp; - self.possibleNumberPattern = pnp; - self.exampleNumber = exp; - } - - return self; - -} - - -- (id)init -{ - self = [super init]; - - if (self) { - } - - return self; -} - - -- (id)initWithCoder:(NSCoder*)coder -{ - if (self = [super init]) { - self.nationalNumberPattern = [coder decodeObjectForKey:@"nationalNumberPattern"]; - self.possibleNumberPattern = [coder decodeObjectForKey:@"possibleNumberPattern"]; - self.exampleNumber = [coder decodeObjectForKey:@"exampleNumber"]; - } - return self; -} - - -- (void)encodeWithCoder:(NSCoder*)coder -{ - [coder encodeObject:self.nationalNumberPattern forKey:@"nationalNumberPattern"]; - [coder encodeObject:self.possibleNumberPattern forKey:@"possibleNumberPattern"]; - [coder encodeObject:self.exampleNumber forKey:@"exampleNumber"]; -} - - -- (NSString *)description -{ - return [NSString stringWithFormat:@"nationalNumberPattern[%@] possibleNumberPattern[%@] exampleNumber[%@]", - self.nationalNumberPattern, self.possibleNumberPattern, self.exampleNumber]; -} - - -- (id)copyWithZone:(NSZone *)zone -{ - NBPhoneNumberDesc *phoneDescCopy = [[NBPhoneNumberDesc allocWithZone:zone] init]; - - phoneDescCopy.nationalNumberPattern = [self.nationalNumberPattern copy]; - phoneDescCopy.possibleNumberPattern = [self.possibleNumberPattern copy]; - phoneDescCopy.exampleNumber = [self.exampleNumber copy]; - - return phoneDescCopy; -} - - -- (BOOL)isEqual:(id)object -{ - if ([object isKindOfClass:[NBPhoneNumberDesc class]] == NO) { - return NO; - } - - NBPhoneNumberDesc *other = object; - return [self.nationalNumberPattern isEqual:other.nationalNumberPattern] && - [self.possibleNumberPattern isEqual:other.possibleNumberPattern] && - [self.exampleNumber isEqual:other.exampleNumber]; -} - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h deleted file mode 100755 index a0ea1d6..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.h +++ /dev/null @@ -1,98 +0,0 @@ -// -// NBPhoneNumberUtil.h -// libPhoneNumber -// -// Created by tabby on 2015. 2. 8.. -// Copyright (c) 2015년 ohtalk.me. All rights reserved. -// - -#import -#import "NBPhoneNumberDefines.h" - - -@class NBPhoneMetaData, NBPhoneNumber; - -@interface NBPhoneNumberUtil : NSObject - -// regular expressions -- (NSArray*)matchesByRegex:(NSString*)sourceString regex:(NSString*)pattern; -- (NSArray*)matchedStringByRegex:(NSString*)sourceString regex:(NSString*)pattern; -- (NSString*)replaceStringByRegex:(NSString*)sourceString regex:(NSString*)pattern withTemplate:(NSString*)templateString; -- (int)stringPositionByRegex:(NSString*)sourceString regex:(NSString*)pattern; - -// libPhoneNumber Util functions -- (NSString*)convertAlphaCharactersInNumber:(NSString*)number; - -- (NSString*)normalizePhoneNumber:(NSString*)phoneNumber; -- (NSString*)normalizeDigitsOnly:(NSString*)number; - -- (BOOL)isNumberGeographical:(NBPhoneNumber*)phoneNumber; - -- (NSString*)extractPossibleNumber:(NSString*)phoneNumber; -- (NSNumber*)extractCountryCode:(NSString*)fullNumber nationalNumber:(NSString**)nationalNumber; -#if TARGET_OS_IPHONE -- (NSString *)countryCodeByCarrier; -#endif - -- (NSString*)getNddPrefixForRegion:(NSString*)regionCode stripNonDigits:(BOOL)stripNonDigits; -- (NSString*)getNationalSignificantNumber:(NBPhoneNumber*)phoneNumber; - -- (NBEPhoneNumberType)getNumberType:(NBPhoneNumber*)phoneNumber; - -- (NSNumber*)getCountryCodeForRegion:(NSString*)regionCode; - -- (NSString*)getRegionCodeForCountryCode:(NSNumber*)countryCallingCode; -- (NSArray*)getRegionCodesForCountryCode:(NSNumber*)countryCallingCode; -- (NSString*)getRegionCodeForNumber:(NBPhoneNumber*)phoneNumber; - -- (NBPhoneNumber*)getExampleNumber:(NSString*)regionCode error:(NSError**)error; -- (NBPhoneNumber*)getExampleNumberForType:(NSString*)regionCode type:(NBEPhoneNumberType)type error:(NSError**)error; -- (NBPhoneNumber*)getExampleNumberForNonGeoEntity:(NSNumber*)countryCallingCode error:(NSError**)error; - -- (BOOL)canBeInternationallyDialled:(NBPhoneNumber*)number error:(NSError**)error; - -- (BOOL)truncateTooLongNumber:(NBPhoneNumber*)number; - -- (BOOL)isValidNumber:(NBPhoneNumber*)number; -- (BOOL)isViablePhoneNumber:(NSString*)phoneNumber; -- (BOOL)isAlphaNumber:(NSString*)number; -- (BOOL)isValidNumberForRegion:(NBPhoneNumber*)number regionCode:(NSString*)regionCode; -- (BOOL)isNANPACountry:(NSString*)regionCode; -- (BOOL)isLeadingZeroPossible:(NSNumber*)countryCallingCode; - -- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber*)number error:(NSError**)error; - -- (BOOL)isPossibleNumber:(NBPhoneNumber*)number error:(NSError**)error; -- (BOOL)isPossibleNumberString:(NSString*)number regionDialingFrom:(NSString*)regionDialingFrom error:(NSError**)error; - -- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn error:(NSError**)error; - -- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber*)phoneNumber error:(NSError**)error; -- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber*)phoneNumber error:(NSError**)error; - -- (BOOL)maybeStripNationalPrefixAndCarrierCode:(NSString**)numberStr metadata:(NBPhoneMetaData*)metadata carrierCode:(NSString**)carrierCode; -- (NBECountryCodeSource)maybeStripInternationalPrefixAndNormalize:(NSString**)numberStr possibleIddPrefix:(NSString*)possibleIddPrefix; - -- (NSNumber*)maybeExtractCountryCode:(NSString*)number metadata:(NBPhoneMetaData*)defaultRegionMetadata - nationalNumber:(NSString**)nationalNumber keepRawInput:(BOOL)keepRawInput - phoneNumber:(NBPhoneNumber**)phoneNumber error:(NSError**)error; - -- (NBPhoneNumber*)parse:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error; -- (NBPhoneNumber*)parseAndKeepRawInput:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error; -- (NBPhoneNumber*)parseWithPhoneCarrierRegion:(NSString*)numberToParse error:(NSError**)error; - -- (NSString*)format:(NBPhoneNumber*)phoneNumber numberFormat:(NBEPhoneNumberFormat)numberFormat error:(NSError**)error; -- (NSString*)formatByPattern:(NBPhoneNumber*)number numberFormat:(NBEPhoneNumberFormat)numberFormat userDefinedFormats:(NSArray*)userDefinedFormats error:(NSError**)error; -- (NSString*)formatNumberForMobileDialing:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom withFormatting:(BOOL)withFormatting error:(NSError**)error; -- (NSString*)formatOutOfCountryCallingNumber:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error; -- (NSString*)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error; -- (NSString*)formatNationalNumberWithCarrierCode:(NBPhoneNumber*)number carrierCode:(NSString*)carrierCode error:(NSError**)error; -- (NSString*)formatInOriginalFormat:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error; -- (NSString*)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber*)number fallbackCarrierCode:(NSString*)fallbackCarrierCode error:(NSError**)error; - -- (BOOL)formattingRuleHasFirstGroupOnly:(NSString*)nationalPrefixFormattingRule; - -@property (nonatomic, strong, readonly) NSDictionary *DIGIT_MAPPINGS; -@property (nonatomic, strong, readonly) NSBundle *libPhoneBundle; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m deleted file mode 100755 index 5586916..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NBPhoneNumberUtil.m +++ /dev/null @@ -1,3829 +0,0 @@ -// -// NBPhoneNumberUtil.m -// libPhoneNumber -// -// Created by tabby on 2015. 2. 8.. -// Copyright (c) 2015년 ohtalk.me. All rights reserved. -// - -#import "NBPhoneNumberUtil.h" -#import "NBPhoneNumber.h" -#import "NBNumberFormat.h" -#import "NBPhoneNumberDesc.h" -#import "NBPhoneMetaData.h" -#import "NBMetadataHelper.h" -#import - -#if TARGET_OS_IPHONE - #import - #import -#endif - - -#pragma mark - NBPhoneNumberUtil interface - - -@interface NBPhoneNumberUtil () -{ - NSMutableDictionary *entireStringRegexCache; - NSLock *entireStringCacheLock; - NSMutableDictionary *regexPatternCache; - NSLock *lockPatternCache; -} - -@property (nonatomic, strong, readwrite) NSMutableDictionary *i18nNumberFormat; -@property (nonatomic, strong, readwrite) NSMutableDictionary *i18nPhoneNumberDesc; -@property (nonatomic, strong, readwrite) NSMutableDictionary *i18nPhoneMetadata; - -#if TARGET_OS_IPHONE -@property (nonatomic, strong) CTTelephonyNetworkInfo *telephonyNetworkInfo; -#endif - -@end - - -@implementation NBPhoneNumberUtil - -#pragma mark - Static Int variables - -const static NSUInteger NANPA_COUNTRY_CODE_ = 1; -const static int MIN_LENGTH_FOR_NSN_ = 2; -const static int MAX_LENGTH_FOR_NSN_ = 16; -const static int MAX_LENGTH_COUNTRY_CODE_ = 3; -const static int MAX_INPUT_STRING_LENGTH_ = 250; - -#pragma mark - Static String variables - -static NSString *VALID_PUNCTUATION = @"-x‐-―−ー--/ ­​⁠ ()()[].\\[\\]/~⁓∼~"; - -static NSString *INVALID_COUNTRY_CODE_STR = @"Invalid country calling code"; -static NSString *NOT_A_NUMBER_STR = @"The string supplied did not seem to be a phone number"; -static NSString *TOO_SHORT_AFTER_IDD_STR = @"Phone number too short after IDD"; -static NSString *TOO_SHORT_NSN_STR = @"The string supplied is too short to be a phone number"; -static NSString *TOO_LONG_STR = @"The string supplied is too long to be a phone number"; - -static NSString *UNKNOWN_REGION_ = @"ZZ"; -static NSString *COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX = @"3"; -static NSString *PLUS_SIGN = @"+"; -static NSString *STAR_SIGN = @"*"; -static NSString *RFC3966_EXTN_PREFIX = @";ext="; -static NSString *RFC3966_PREFIX = @"tel:"; -static NSString *RFC3966_PHONE_CONTEXT = @";phone-context="; -static NSString *RFC3966_ISDN_SUBADDRESS = @";isub="; -static NSString *DEFAULT_EXTN_PREFIX = @" ext. "; -static NSString *VALID_ALPHA = @"A-Za-z"; - -#pragma mark - Static regular expression strings - -static NSString *NON_DIGITS_PATTERN = @"\\D+"; -static NSString *CC_PATTERN = @"\\$CC"; -static NSString *FIRST_GROUP_PATTERN = @"(\\$\\d)"; -static NSString *FIRST_GROUP_ONLY_PREFIX_PATTERN = @"^\\(?\\$1\\)?"; -static NSString *NP_PATTERN = @"\\$NP"; -static NSString *FG_PATTERN = @"\\$FG"; -static NSString *VALID_ALPHA_PHONE_PATTERN_STRING = @"(?:.*?[A-Za-z]){3}.*"; - -static NSString *UNIQUE_INTERNATIONAL_PREFIX = @"[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?"; - -static NSString *LEADING_PLUS_CHARS_PATTERN; -static NSString *EXTN_PATTERN; -static NSString *SEPARATOR_PATTERN; -static NSString *VALID_PHONE_NUMBER_PATTERN; -static NSString *VALID_START_CHAR_PATTERN; -static NSString *UNWANTED_END_CHAR_PATTERN; -static NSString *SECOND_NUMBER_START_PATTERN; - -static NSDictionary *ALPHA_MAPPINGS; -static NSDictionary *ALL_NORMALIZATION_MAPPINGS; -static NSDictionary *DIALLABLE_CHAR_MAPPINGS; -static NSDictionary *ALL_PLUS_NUMBER_GROUPING_SYMBOLS; - -static NSRegularExpression *PLUS_CHARS_PATTERN; -static NSRegularExpression *CAPTURING_DIGIT_PATTERN; -static NSRegularExpression *VALID_ALPHA_PHONE_PATTERN; - -static NSDictionary *DIGIT_MAPPINGS; - - -#pragma mark - NSError - -- (NSError*)errorWithObject:(id)obj withDomain:(NSString *)domain -{ - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:obj forKey:NSLocalizedDescriptionKey]; - NSError *error = [NSError errorWithDomain:domain code:0 userInfo:userInfo]; - return error; -} - - -- (NSRegularExpression *)entireRegularExpressionWithPattern:(NSString *)regexPattern - options:(NSRegularExpressionOptions)options - error:(NSError **)error -{ - [entireStringCacheLock lock]; - - @try { - if (! entireStringRegexCache) { - entireStringRegexCache = [[NSMutableDictionary alloc] init]; - } - - NSRegularExpression *regex = [entireStringRegexCache objectForKey:regexPattern]; - if (! regex) - { - NSString *finalRegexString = regexPattern; - if ([regexPattern rangeOfString:@"^"].location == NSNotFound) { - finalRegexString = [NSString stringWithFormat:@"^(?:%@)$", regexPattern]; - } - - regex = [self regularExpressionWithPattern:finalRegexString options:0 error:error]; - [entireStringRegexCache setObject:regex forKey:regexPattern]; - } - - return regex; - } - @finally { - [entireStringCacheLock unlock]; - } -} - - -- (NSRegularExpression *)regularExpressionWithPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options error:(NSError **)error -{ - [lockPatternCache lock]; - - @try { - if (!regexPatternCache) { - regexPatternCache = [[NSMutableDictionary alloc] init]; - } - - NSRegularExpression *regex = [regexPatternCache objectForKey:pattern]; - if (!regex) { - regex = [NSRegularExpression regularExpressionWithPattern:pattern options:options error:error]; - [regexPatternCache setObject:regex forKey:pattern]; - } - return regex; - } - @finally { - [lockPatternCache unlock]; - } -} - - -- (NSMutableArray*)componentsSeparatedByRegex:(NSString*)sourceString regex:(NSString*)pattern -{ - NSString *replacedString = [self replaceStringByRegex:sourceString regex:pattern withTemplate:@""]; - NSMutableArray *resArray = [[replacedString componentsSeparatedByString:@""] mutableCopy]; - [resArray removeObject:@""]; - return resArray; -} - - -- (int)stringPositionByRegex:(NSString*)sourceString regex:(NSString*)pattern -{ - if (sourceString == nil || sourceString.length <= 0 || pattern == nil || pattern.length <= 0) { - return -1; - } - - NSError *error = nil; - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; - NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - - int foundPosition = -1; - - if (matches.count > 0) { - NSTextCheckingResult *match = [matches objectAtIndex:0]; - return (int)match.range.location; - } - - return foundPosition; -} - - -- (int)indexOfStringByString:(NSString*)sourceString target:(NSString*)targetString -{ - NSRange finded = [sourceString rangeOfString:targetString]; - if (finded.location != NSNotFound) { - return (int)finded.location; - } - - return -1; -} - - -- (NSString*)replaceFirstStringByRegex:(NSString*)sourceString regex:(NSString*)pattern withTemplate:(NSString*)templateString -{ - NSString *replacementResult = [sourceString copy]; - NSError *error = nil; - - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; - NSRange replaceRange = [currentPattern rangeOfFirstMatchInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - - if (replaceRange.location != NSNotFound) { - replacementResult = [currentPattern stringByReplacingMatchesInString:[sourceString mutableCopy] options:0 - range:replaceRange - withTemplate:templateString]; - } - - return replacementResult; -} - - -- (NSString*)replaceStringByRegex:(NSString*)sourceString regex:(NSString*)pattern withTemplate:(NSString*)templateString -{ - NSString *replacementResult = [sourceString copy]; - NSError *error = nil; - - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; - NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - - if ([matches count] == 1) { - NSRange replaceRange = [currentPattern rangeOfFirstMatchInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - - if (replaceRange.location != NSNotFound) { - replacementResult = [currentPattern stringByReplacingMatchesInString:[sourceString mutableCopy] options:0 - range:replaceRange - withTemplate:templateString]; - } - return replacementResult; - } - - if ([matches count] > 1) { - replacementResult = [currentPattern stringByReplacingMatchesInString:[replacementResult mutableCopy] options:0 - range:NSMakeRange(0, sourceString.length) withTemplate:templateString]; - return replacementResult; - } - - return replacementResult; -} - - -- (NSTextCheckingResult*)matcheFirstByRegex:(NSString*)sourceString regex:(NSString*)pattern -{ - NSError *error = nil; - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; - NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - if ([matches count] > 0) - return [matches objectAtIndex:0]; - return nil; -} - - -- (NSArray*)matchesByRegex:(NSString*)sourceString regex:(NSString*)pattern -{ - NSError *error = nil; - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; - NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - return matches; -} - - -- (NSArray*)matchedStringByRegex:(NSString*)sourceString regex:(NSString*)pattern -{ - NSArray *matches = [self matchesByRegex:sourceString regex:pattern]; - NSMutableArray *matchString = [[NSMutableArray alloc] init]; - - for (NSTextCheckingResult *match in matches) { - NSString *curString = [sourceString substringWithRange:match.range]; - [matchString addObject:curString]; - } - - return matchString; -} - - -- (BOOL)isStartingStringByRegex:(NSString*)sourceString regex:(NSString*)pattern -{ - NSError *error = nil; - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:pattern options:0 error:&error]; - NSArray *matches = [currentPattern matchesInString:sourceString options:0 range:NSMakeRange(0, sourceString.length)]; - - for (NSTextCheckingResult *match in matches) { - if (match.range.location == 0) { - return YES; - } - } - - return NO; -} - - -- (NSString*)stringByReplacingOccurrencesString:(NSString *)sourceString withMap:(NSDictionary *)dicMap removeNonMatches:(BOOL)bRemove -{ - NSMutableString *targetString = [[NSMutableString alloc] initWithString:@""]; - - for(unsigned int i=0; i= 0) - { - possibleNumber = [number substringFromIndex:start]; - // Remove trailing non-alpha non-numerical characters. - possibleNumber = [self replaceStringByRegex:possibleNumber regex:UNWANTED_END_CHAR_PATTERN withTemplate:@""]; - - // Check for extra numbers at the end. - int secondNumberStart = [self stringPositionByRegex:number regex:SECOND_NUMBER_START_PATTERN]; - if (secondNumberStart > 0) - { - possibleNumber = [possibleNumber substringWithRange:NSMakeRange(0, secondNumberStart - 1)]; - } - } - else - { - possibleNumber = @""; - } - - return possibleNumber; -} - - -/** - * Checks to see if the string of characters could possibly be a phone number at - * all. At the moment, checks to see that the string begins with at least 2 - * digits, ignoring any punctuation commonly found in phone numbers. This method - * does not require the number to be normalized in advance - but does assume - * that leading non-number symbols have been removed, such as by the method - * extractPossibleNumber. - * - * @param {string} number string to be checked for viability as a phone number. - * @return {boolean} NO if the number could be a phone number of some sort, - * otherwise NO. - */ -- (BOOL)isViablePhoneNumber:(NSString*)phoneNumber -{ - phoneNumber = [NBMetadataHelper normalizeNonBreakingSpace:phoneNumber]; - - if (phoneNumber.length < MIN_LENGTH_FOR_NSN_) - { - return NO; - } - - return [self matchesEntirely:VALID_PHONE_NUMBER_PATTERN string:phoneNumber]; -} - - -/** - * Normalizes a string of characters representing a phone number. This performs - * the following conversions: - * Punctuation is stripped. - * For ALPHA/VANITY numbers: - * Letters are converted to their numeric representation on a telephone - * keypad. The keypad used here is the one defined in ITU Recommendation - * E.161. This is only done if there are 3 or more letters in the number, - * to lessen the risk that such letters are typos. - * For other numbers: - * Wide-ascii digits are converted to normal ASCII (European) digits. - * Arabic-Indic numerals are converted to European numerals. - * Spurious alpha characters are stripped. - * - * @param {string} number a string of characters representing a phone number. - * @return {string} the normalized string version of the phone number. - */ -- (NSString*)normalizePhoneNumber:(NSString*)number -{ - number = [NBMetadataHelper normalizeNonBreakingSpace:number]; - - if ([self matchesEntirely:VALID_ALPHA_PHONE_PATTERN_STRING string:number]) - { - return [self normalizeHelper:number normalizationReplacements:ALL_NORMALIZATION_MAPPINGS removeNonMatches:true]; - } - else - { - return [self normalizeDigitsOnly:number]; - } - - return nil; -} - - -/** - * Normalizes a string of characters representing a phone number. This is a - * wrapper for normalize(String number) but does in-place normalization of the - * StringBuffer provided. - * - * @param {!goog.string.StringBuffer} number a StringBuffer of characters - * representing a phone number that will be normalized in place. - * @private - */ - -- (void)normalizeSB:(NSString**)number -{ - if (number == NULL) - { - return; - } - - (*number) = [self normalizePhoneNumber:(*number)]; -} - - -/** - * Normalizes a string of characters representing a phone number. This converts - * wide-ascii and arabic-indic numerals to European numerals, and strips - * punctuation and alpha characters. - * - * @param {string} number a string of characters representing a phone number. - * @return {string} the normalized string version of the phone number. - */ -- (NSString*)normalizeDigitsOnly:(NSString*)number -{ - number = [NBMetadataHelper normalizeNonBreakingSpace:number]; - - return [self stringByReplacingOccurrencesString:number - withMap:self.DIGIT_MAPPINGS removeNonMatches:YES]; -} - - -/** - * Converts all alpha characters in a number to their respective digits on a - * keypad, but retains existing formatting. Also converts wide-ascii digits to - * normal ascii digits, and converts Arabic-Indic numerals to European numerals. - * - * @param {string} number a string of characters representing a phone number. - * @return {string} the normalized string version of the phone number. - */ -- (NSString*)convertAlphaCharactersInNumber:(NSString*)number -{ - number = [NBMetadataHelper normalizeNonBreakingSpace:number]; - return [self stringByReplacingOccurrencesString:number - withMap:ALL_NORMALIZATION_MAPPINGS removeNonMatches:NO]; -} - - -/** - * Gets the length of the geographical area code from the - * {@code national_number} field of the PhoneNumber object passed in, so that - * clients could use it to split a national significant number into geographical - * area code and subscriber number. It works in such a way that the resultant - * subscriber number should be diallable, at least on some devices. An example - * of how this could be used: - * - *

- * var phoneUtil = getInstance();
- * var number = phoneUtil.parse('16502530000', 'US');
- * var nationalSignificantNumber =
- *     phoneUtil.getNationalSignificantNumber(number);
- * var areaCode;
- * var subscriberNumber;
- *
- * var areaCodeLength = phoneUtil.getLengthOfGeographicalAreaCode(number);
- * if (areaCodeLength > 0) {
- *   areaCode = nationalSignificantNumber.substring(0, areaCodeLength);
- *   subscriberNumber = nationalSignificantNumber.substring(areaCodeLength);
- * } else {
- *   areaCode = '';
- *   subscriberNumber = nationalSignificantNumber;
- * }
- * 
- * - * N.B.: area code is a very ambiguous concept, so the I18N team generally - * recommends against using it for most purposes, but recommends using the more - * general {@code national_number} instead. Read the following carefully before - * deciding to use this method: - *
    - *
  • geographical area codes change over time, and this method honors those - * changes; therefore, it doesn't guarantee the stability of the result it - * produces. - *
  • subscriber numbers may not be diallable from all devices (notably - * mobile devices, which typically requires the full national_number to be - * dialled in most regions). - *
  • most non-geographical numbers have no area codes, including numbers - * from non-geographical entities. - *
  • some geographical numbers have no area codes. - *
- * - * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber object for - * which clients want to know the length of the area code. - * @return {number} the length of area code of the PhoneNumber object passed in. - */ -- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber*)phoneNumber error:(NSError **)error -{ - int res = 0; - @try { - res = [self getLengthOfGeographicalAreaCode:phoneNumber]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) { - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - } - return res; -} - - -- (int)getLengthOfGeographicalAreaCode:(NBPhoneNumber*)phoneNumber -{ - NSString *regionCode = [self getRegionCodeForNumber:phoneNumber]; - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; - - if (metadata == nil) { - return 0; - } - // If a country doesn't use a national prefix, and this number doesn't have - // an Italian leading zero, we assume it is a closed dialling plan with no - // area codes. - if (metadata.nationalPrefix == nil && phoneNumber.italianLeadingZero == NO) { - return 0; - } - - if ([self isNumberGeographical:phoneNumber] == NO) { - return 0; - } - - return [self getLengthOfNationalDestinationCode:phoneNumber]; -} - - -/** - * Gets the length of the national destination code (NDC) from the PhoneNumber - * object passed in, so that clients could use it to split a national - * significant number into NDC and subscriber number. The NDC of a phone number - * is normally the first group of digit(s) right after the country calling code - * when the number is formatted in the international format, if there is a - * subscriber number part that follows. An example of how this could be used: - * - *
- * var phoneUtil = getInstance();
- * var number = phoneUtil.parse('18002530000', 'US');
- * var nationalSignificantNumber =
- *     phoneUtil.getNationalSignificantNumber(number);
- * var nationalDestinationCode;
- * var subscriberNumber;
- *
- * var nationalDestinationCodeLength =
- *     phoneUtil.getLengthOfNationalDestinationCode(number);
- * if (nationalDestinationCodeLength > 0) {
- *   nationalDestinationCode =
- *       nationalSignificantNumber.substring(0, nationalDestinationCodeLength);
- *   subscriberNumber =
- *       nationalSignificantNumber.substring(nationalDestinationCodeLength);
- * } else {
- *   nationalDestinationCode = '';
- *   subscriberNumber = nationalSignificantNumber;
- * }
- * 
- * - * Refer to the unittests to see the difference between this function and - * {@link #getLengthOfGeographicalAreaCode}. - * - * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber object for - * which clients want to know the length of the NDC. - * @return {number} the length of NDC of the PhoneNumber object passed in. - */ -- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber*)phoneNumber error:(NSError **)error -{ - int res = 0; - - @try { - res = [self getLengthOfNationalDestinationCode:phoneNumber]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) { - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - } - - return res; -} - - -- (int)getLengthOfNationalDestinationCode:(NBPhoneNumber*)phoneNumber -{ - NBPhoneNumber *copiedProto = nil; - if ([NBMetadataHelper hasValue:phoneNumber.extension]) - { - copiedProto = [phoneNumber copy]; - copiedProto.extension = nil; - } else { - copiedProto = phoneNumber; - } - - NSString *nationalSignificantNumber = [self format:copiedProto numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; - NSMutableArray *numberGroups = [[self componentsSeparatedByRegex:nationalSignificantNumber regex:NON_DIGITS_PATTERN] mutableCopy]; - - // The pattern will start with '+COUNTRY_CODE ' so the first group will always - // be the empty string (before the + symbol) and the second group will be the - // country calling code. The third group will be area code if it is not the - // last group. - // NOTE: On IE the first group that is supposed to be the empty string does - // not appear in the array of number groups... so make the result on non-IE - // browsers to be that of IE. - if ([numberGroups count] > 0 && ((NSString*)[numberGroups objectAtIndex:0]).length <= 0) { - [numberGroups removeObjectAtIndex:0]; - } - - if ([numberGroups count] <= 2) { - return 0; - } - - NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:phoneNumber.countryCode]; - BOOL isExists = NO; - - for (NSString *regCode in regionCodes) - { - if ([regCode isEqualToString:@"AR"]) - { - isExists = YES; - break; - } - } - - if (isExists && [self getNumberType:phoneNumber] == NBEPhoneNumberTypeMOBILE) - { - // Argentinian mobile numbers, when formatted in the international format, - // are in the form of +54 9 NDC XXXX.... As a result, we take the length of - // the third group (NDC) and add 1 for the digit 9, which also forms part of - // the national significant number. - // - // TODO: Investigate the possibility of better modeling the metadata to make - // it easier to obtain the NDC. - return (int)((NSString*)[numberGroups objectAtIndex:2]).length + 1; - } - - return (int)((NSString*)[numberGroups objectAtIndex:1]).length; -} - - -/** - * Normalizes a string of characters representing a phone number by replacing - * all characters found in the accompanying map with the values therein, and - * stripping all other characters if removeNonMatches is NO. - * - * @param {string} number a string of characters representing a phone number. - * @param {!Object.} normalizationReplacements a mapping of - * characters to what they should be replaced by in the normalized version - * of the phone number. - * @param {boolean} removeNonMatches indicates whether characters that are not - * able to be replaced should be stripped from the number. If this is NO, - * they will be left unchanged in the number. - * @return {string} the normalized string version of the phone number. - * @private - */ -- (NSString*)normalizeHelper:(NSString*)sourceString normalizationReplacements:(NSDictionary*)normalizationReplacements - removeNonMatches:(BOOL)removeNonMatches -{ - NSMutableString *normalizedNumber = [[NSMutableString alloc] init]; - unichar character = 0; - NSString *newDigit = @""; - unsigned int numberLength = (unsigned int)sourceString.length; - - for (unsigned int i = 0; i= 0) - { - hasFound = YES; - } - - return (([nationalPrefixFormattingRule length] == 0) || hasFound); -} - - -/** - * Tests whether a phone number has a geographical association. It checks if - * the number is associated to a certain region in the country where it belongs - * to. Note that this doesn't verify if the number is actually in use. - * - * @param {i18n.phonenumbers.PhoneNumber} phoneNumber The phone number to test. - * @return {boolean} NO if the phone number has a geographical association. - * @private - */ -- (BOOL)isNumberGeographical:(NBPhoneNumber*)phoneNumber -{ - NBEPhoneNumberType numberType = [self getNumberType:phoneNumber]; - // TODO: Include mobile phone numbers from countries like Indonesia, which - // has some mobile numbers that are geographical. - return numberType == NBEPhoneNumberTypeFIXED_LINE || numberType == NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE; -} - - -/** - * Helper function to check region code is not unknown or nil. - * - * @param {?string} regionCode the ISO 3166-1 two-letter region code. - * @return {boolean} NO if region code is valid. - * @private - */ -- (BOOL)isValidRegionCode:(NSString*)regionCode -{ - // In Java we check whether the regionCode is contained in supportedRegions - // that is built out of all the values of countryCallingCodeToRegionCodeMap - // (countryCodeToRegionCodeMap in JS) minus REGION_CODE_FOR_NON_GEO_ENTITY. - // In JS we check whether the regionCode is contained in the keys of - // countryToMetadata but since for non-geographical country calling codes - // (e.g. +800) we use the country calling codes instead of the region code as - // key in the map we have to make sure regionCode is not a number to prevent - // returning NO for non-geographical country calling codes. - return [NBMetadataHelper hasValue:regionCode] && [self isNaN:regionCode] && [NBMetadataHelper getMetadataForRegion:regionCode.uppercaseString] != nil; -} - - -/** - * Helper function to check the country calling code is valid. - * - * @param {number} countryCallingCode the country calling code. - * @return {boolean} NO if country calling code code is valid. - * @private - */ -- (BOOL)hasValidCountryCallingCode:(NSNumber*)countryCallingCode -{ - id res = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; - if (res != nil) - { - return YES; - } - - return NO; -} - - -/** - * Formats a phone number in the specified format using default rules. Note that - * this does not promise to produce a phone number that the user can dial from - * where they are - although we do format in either 'national' or - * 'international' format depending on what the client asks for, we do not - * currently support a more abbreviated format, such as for users in the same - * 'area' who could potentially dial the number without area code. Note that if - * the phone number has a country calling code of 0 or an otherwise invalid - * country calling code, we cannot work out which formatting rules to apply so - * we return the national significant number with no formatting applied. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be - * formatted. - * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the - * phone number should be formatted into. - * @return {string} the formatted phone number. - */ -- (NSString*)format:(NBPhoneNumber*)phoneNumber numberFormat:(NBEPhoneNumberFormat)numberFormat error:(NSError**)error -{ - NSString *res = nil; - @try { - res = [self format:phoneNumber numberFormat:numberFormat]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - -- (NSString*)format:(NBPhoneNumber*)phoneNumber numberFormat:(NBEPhoneNumberFormat)numberFormat -{ - if ([phoneNumber.nationalNumber isEqualToNumber:@0] && [NBMetadataHelper hasValue:phoneNumber.rawInput]) - { - // Unparseable numbers that kept their raw input just use that. - // This is the only case where a number can be formatted as E164 without a - // leading '+' symbol (but the original number wasn't parseable anyway). - // TODO: Consider removing the 'if' above so that unparseable strings - // without raw input format to the empty string instead of "+00" - /** @type {string} */ - NSString *rawInput = phoneNumber.rawInput; - if ([NBMetadataHelper hasValue:rawInput]) { - return rawInput; - } - } - - NSNumber *countryCallingCode = phoneNumber.countryCode; - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:phoneNumber]; - - if (numberFormat == NBEPhoneNumberFormatE164) - { - // Early exit for E164 case (even if the country calling code is invalid) - // since no formatting of the national number needs to be applied. - // Extensions are not formatted. - return [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:NBEPhoneNumberFormatE164 - formattedNationalNumber:nationalSignificantNumber formattedExtension:@""]; - } - - if ([self hasValidCountryCallingCode:countryCallingCode] == NO) - { - return nationalSignificantNumber; - } - - // Note getRegionCodeForCountryCode() is used because formatting information - // for regions which share a country calling code is contained by only one - // region for performance reasons. For example, for NANPA regions it will be - // contained in the metadata for US. - NSArray *regionCodeArray = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; - NSString *regionCode = [regionCodeArray objectAtIndex:0]; - - // Metadata cannot be nil because the country calling code is valid (which - // means that the region code cannot be ZZ and must be one of our supported - // region codes). - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; - NSString *formattedExtension = [self maybeGetFormattedExtension:phoneNumber metadata:metadata numberFormat:numberFormat]; - NSString *formattedNationalNumber = [self formatNsn:nationalSignificantNumber metadata:metadata phoneNumberFormat:numberFormat carrierCode:nil]; - - return [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:numberFormat - formattedNationalNumber:formattedNationalNumber formattedExtension:formattedExtension]; -} - - -/** - * Formats a phone number in the specified format using client-defined - * formatting rules. Note that if the phone number has a country calling code of - * zero or an otherwise invalid country calling code, we cannot work out things - * like whether there should be a national prefix applied, or how to format - * extensions, so we return the national significant number with no formatting - * applied. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be - * formatted. - * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the - * phone number should be formatted into. - * @param {Array.} userDefinedFormats formatting - * rules specified by clients. - * @return {string} the formatted phone number. - */ -- (NSString*)formatByPattern:(NBPhoneNumber*)number numberFormat:(NBEPhoneNumberFormat)numberFormat userDefinedFormats:(NSArray*)userDefinedFormats error:(NSError**)error -{ - NSString *res = nil; - @try { - res = [self formatByPattern:number numberFormat:numberFormat userDefinedFormats:userDefinedFormats]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - - -- (NSString*)formatByPattern:(NBPhoneNumber*)number numberFormat:(NBEPhoneNumberFormat)numberFormat userDefinedFormats:(NSArray*)userDefinedFormats -{ - NSNumber *countryCallingCode = number.countryCode; - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; - - if ([self hasValidCountryCallingCode:countryCallingCode] == NO) { - return nationalSignificantNumber; - } - - // Note getRegionCodeForCountryCode() is used because formatting information - // for regions which share a country calling code is contained by only one - // region for performance reasons. For example, for NANPA regions it will be - // contained in the metadata for US. - NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; - NSString *regionCode = nil; - if (regionCodes != nil && regionCodes.count > 0) { - regionCode = [regionCodes objectAtIndex:0]; - } - - // Metadata cannot be nil because the country calling code is valid - /** @type {i18n.phonenumbers.PhoneMetadata} */ - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; - - NSString *formattedNumber = @""; - NBNumberFormat *formattingPattern = [self chooseFormattingPatternForNumber:userDefinedFormats nationalNumber:nationalSignificantNumber]; - if (formattingPattern == nil) - { - // If no pattern above is matched, we format the number as a whole. - formattedNumber = nationalSignificantNumber; - } else { - // Before we do a replacement of the national prefix pattern $NP with the - // national prefix, we need to copy the rule so that subsequent replacements - // for different numbers have the appropriate national prefix. - NBNumberFormat *numFormatCopy = [formattingPattern copy]; - NSString *nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule; - - if (nationalPrefixFormattingRule.length > 0) - { - NSString *nationalPrefix = metadata.nationalPrefix; - if (nationalPrefix.length > 0) - { - // Replace $NP with national prefix and $FG with the first group ($1). - nationalPrefixFormattingRule = [self replaceStringByRegex:nationalPrefixFormattingRule regex:NP_PATTERN withTemplate:nationalPrefix]; - nationalPrefixFormattingRule = [self replaceStringByRegex:nationalPrefixFormattingRule regex:FG_PATTERN withTemplate:@"\\$1"]; - numFormatCopy.nationalPrefixFormattingRule = nationalPrefixFormattingRule; - } else { - // We don't want to have a rule for how to format the national prefix if - // there isn't one. - numFormatCopy.nationalPrefixFormattingRule = @""; - } - } - - formattedNumber = [self formatNsnUsingPattern:nationalSignificantNumber - formattingPattern:numFormatCopy numberFormat:numberFormat carrierCode:nil]; - } - - NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadata numberFormat:numberFormat]; - - //NSLog(@"!@# prefixNumberWithCountryCallingCode called [%@]", formattedExtension); - return [self prefixNumberWithCountryCallingCode:countryCallingCode - phoneNumberFormat:numberFormat - formattedNationalNumber:formattedNumber - formattedExtension:formattedExtension]; -} - - -/** - * Formats a phone number in national format for dialing using the carrier as - * specified in the {@code carrierCode}. The {@code carrierCode} will always be - * used regardless of whether the phone number already has a preferred domestic - * carrier code stored. If {@code carrierCode} contains an empty string, returns - * the number in national format without any carrier code. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be - * formatted. - * @param {string} carrierCode the carrier selection code to be used. - * @return {string} the formatted phone number in national format for dialing - * using the carrier as specified in the {@code carrierCode}. - */ -- (NSString*)formatNationalNumberWithCarrierCode:(NBPhoneNumber*)number carrierCode:(NSString*)carrierCode error:(NSError **)error -{ - NSString *res = nil; - @try { - res = [self formatNationalNumberWithCarrierCode:number carrierCode:carrierCode]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - - -- (NSString*)formatNationalNumberWithCarrierCode:(NBPhoneNumber*)number carrierCode:(NSString*)carrierCode -{ - NSNumber *countryCallingCode = number.countryCode; - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; - if ([self hasValidCountryCallingCode:countryCallingCode] == NO) - { - return nationalSignificantNumber; - } - - // Note getRegionCodeForCountryCode() is used because formatting information - // for regions which share a country calling code is contained by only one - // region for performance reasons. For example, for NANPA regions it will be - // contained in the metadata for US. - NSString *regionCode = [self getRegionCodeForCountryCode:countryCallingCode]; - // Metadata cannot be nil because the country calling code is valid. - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; - NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadata numberFormat:NBEPhoneNumberFormatNATIONAL]; - NSString *formattedNationalNumber = [self formatNsn:nationalSignificantNumber metadata:metadata phoneNumberFormat:NBEPhoneNumberFormatNATIONAL carrierCode:carrierCode]; - return [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:NBEPhoneNumberFormatNATIONAL formattedNationalNumber:formattedNationalNumber formattedExtension:formattedExtension]; -} - - -/** - * @param {number} countryCallingCode - * @param {?string} regionCode - * @return {i18n.phonenumbers.PhoneMetadata} - * @private - */ -- (NBPhoneMetaData*)getMetadataForRegionOrCallingCode:(NSNumber*)countryCallingCode regionCode:(NSString*)regionCode -{ - return [NB_REGION_CODE_FOR_NON_GEO_ENTITY isEqualToString:regionCode] ? - [NBMetadataHelper getMetadataForNonGeographicalRegion:countryCallingCode] : [NBMetadataHelper getMetadataForRegion:regionCode]; -} - - -/** - * Formats a phone number in national format for dialing using the carrier as - * specified in the preferred_domestic_carrier_code field of the PhoneNumber - * object passed in. If that is missing, use the {@code fallbackCarrierCode} - * passed in instead. If there is no {@code preferred_domestic_carrier_code}, - * and the {@code fallbackCarrierCode} contains an empty string, return the - * number in national format without any carrier code. - * - *

Use {@link #formatNationalNumberWithCarrierCode} instead if the carrier - * code passed in should take precedence over the number's - * {@code preferred_domestic_carrier_code} when formatting. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be - * formatted. - * @param {string} fallbackCarrierCode the carrier selection code to be used, if - * none is found in the phone number itself. - * @return {string} the formatted phone number in national format for dialing - * using the number's preferred_domestic_carrier_code, or the - * {@code fallbackCarrierCode} passed in if none is found. - */ -- (NSString*)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber*)number - fallbackCarrierCode:(NSString*)fallbackCarrierCode error:(NSError **)error -{ - NSString *res = nil; - @try { - res = [self formatNationalNumberWithCarrierCode:number carrierCode:fallbackCarrierCode]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - - return res; -} - - -- (NSString*)formatNationalNumberWithPreferredCarrierCode:(NBPhoneNumber*)number fallbackCarrierCode:(NSString*)fallbackCarrierCode -{ - NSString *domesticCarrierCode = number.preferredDomesticCarrierCode != nil ? number.preferredDomesticCarrierCode : fallbackCarrierCode; - return [self formatNationalNumberWithCarrierCode:number carrierCode:domesticCarrierCode]; -} - - -/** - * Returns a number formatted in such a way that it can be dialed from a mobile - * phone in a specific region. If the number cannot be reached from the region - * (e.g. some countries block toll-free numbers from being called outside of the - * country), the method returns an empty string. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be - * formatted. - * @param {string} regionCallingFrom the region where the call is being placed. - * @param {boolean} withFormatting whether the number should be returned with - * formatting symbols, such as spaces and dashes. - * @return {string} the formatted phone number. - */ -- (NSString*)formatNumberForMobileDialing:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom withFormatting:(BOOL)withFormatting - error:(NSError**)error -{ - NSString *res = nil; - @try { - res = [self formatNumberForMobileDialing:number regionCallingFrom:regionCallingFrom withFormatting:withFormatting]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - - -- (NSString*)formatNumberForMobileDialing:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom withFormatting:(BOOL)withFormatting -{ - NSNumber *countryCallingCode = number.countryCode; - if ([self hasValidCountryCallingCode:countryCallingCode] == NO) - { - return [NBMetadataHelper hasValue:number.rawInput] ? number.rawInput : @""; - } - - NSString *formattedNumber = @""; - // Clear the extension, as that part cannot normally be dialed together with - // the main number. - NBPhoneNumber *numberNoExt = [number copy]; - numberNoExt.extension = @""; - - NSString *regionCode = [self getRegionCodeForCountryCode:countryCallingCode]; - if ([regionCallingFrom isEqualToString:regionCode]) - { - NBEPhoneNumberType numberType = [self getNumberType:numberNoExt]; - BOOL isFixedLineOrMobile = (numberType == NBEPhoneNumberTypeFIXED_LINE) || (numberType == NBEPhoneNumberTypeMOBILE) || (numberType == NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE); - // Carrier codes may be needed in some countries. We handle this here. - if ([regionCode isEqualToString:@"CO"] && numberType == NBEPhoneNumberTypeFIXED_LINE) - { - formattedNumber = [self formatNationalNumberWithCarrierCode:numberNoExt - carrierCode:COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX]; - } - else if ([regionCode isEqualToString:@"BR"] && isFixedLineOrMobile) - { - formattedNumber = [NBMetadataHelper hasValue:numberNoExt.preferredDomesticCarrierCode] ? - [self formatNationalNumberWithPreferredCarrierCode:numberNoExt fallbackCarrierCode:@""] : @""; - // Brazilian fixed line and mobile numbers need to be dialed with a - // carrier code when called within Brazil. Without that, most of the - // carriers won't connect the call. Because of that, we return an - // empty string here. - } - else - { - // For NANPA countries, non-geographical countries, and Mexican fixed - // line and mobile numbers, we output international format for numbersi - // that can be dialed internationally as that always works. - if ((countryCallingCode.unsignedIntegerValue == NANPA_COUNTRY_CODE_ || - [regionCode isEqualToString:NB_REGION_CODE_FOR_NON_GEO_ENTITY] || - // MX fixed line and mobile numbers should always be formatted in - // international format, even when dialed within MX. For national - // format to work, a carrier code needs to be used, and the correct - // carrier code depends on if the caller and callee are from the - // same local area. It is trickier to get that to work correctly than - // using international format, which is tested to work fine on all - // carriers. - ([regionCode isEqualToString:@"MX"] && isFixedLineOrMobile)) && [self canBeInternationallyDialled:numberNoExt]) - { - formattedNumber = [self format:numberNoExt numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; - } - else - { - formattedNumber = [self format:numberNoExt numberFormat:NBEPhoneNumberFormatNATIONAL]; - } - } - } - else if ([self canBeInternationallyDialled:numberNoExt]) - { - return withFormatting ? [self format:numberNoExt numberFormat:NBEPhoneNumberFormatINTERNATIONAL] : - [self format:numberNoExt numberFormat:NBEPhoneNumberFormatE164]; - } - - return withFormatting ? - formattedNumber : [self normalizeHelper:formattedNumber normalizationReplacements:DIALLABLE_CHAR_MAPPINGS removeNonMatches:YES]; -} - - -/** - * Formats a phone number for out-of-country dialing purposes. If no - * regionCallingFrom is supplied, we format the number in its INTERNATIONAL - * format. If the country calling code is the same as that of the region where - * the number is from, then NATIONAL formatting will be applied. - * - *

If the number itself has a country calling code of zero or an otherwise - * invalid country calling code, then we return the number with no formatting - * applied. - * - *

Note this function takes care of the case for calling inside of NANPA and - * between Russia and Kazakhstan (who share the same country calling code). In - * those cases, no international prefix is used. For regions which have multiple - * international prefixes, the number in its INTERNATIONAL format will be - * returned instead. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number to be - * formatted. - * @param {string} regionCallingFrom the region where the call is being placed. - * @return {string} the formatted phone number. - */ -- (NSString*)formatOutOfCountryCallingNumber:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError**)error -{ - NSString *res = nil; - @try { - res = [self formatOutOfCountryCallingNumber:number regionCallingFrom:regionCallingFrom]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - - return res; -} - -- (NSString*)formatOutOfCountryCallingNumber:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom -{ - if ([self isValidRegionCode:regionCallingFrom] == NO) - { - return [self format:number numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; - } - - NSNumber *countryCallingCode = [number.countryCode copy]; - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; - if ([self hasValidCountryCallingCode:countryCallingCode] == NO) - { - return nationalSignificantNumber; - } - - if (countryCallingCode.unsignedIntegerValue == NANPA_COUNTRY_CODE_) - { - if ([self isNANPACountry:regionCallingFrom]) - { - // For NANPA regions, return the national format for these regions but - // prefix it with the country calling code. - return [NSString stringWithFormat:@"%@ %@", countryCallingCode, [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]]; - } - } - else if ([countryCallingCode isEqualToNumber:[self getCountryCodeForValidRegion:regionCallingFrom error:nil]]) - { - // If regions share a country calling code, the country calling code need - // not be dialled. This also applies when dialling within a region, so this - // if clause covers both these cases. Technically this is the case for - // dialling from La Reunion to other overseas departments of France (French - // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover - // this edge case for now and for those cases return the version including - // country calling code. Details here: - // http://www.petitfute.com/voyage/225-info-pratiques-reunion - return [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]; - } - // Metadata cannot be nil because we checked 'isValidRegionCode()' above. - NBPhoneMetaData *metadataForRegionCallingFrom = [NBMetadataHelper getMetadataForRegion:regionCallingFrom]; - NSString *internationalPrefix = metadataForRegionCallingFrom.internationalPrefix; - - // For regions that have multiple international prefixes, the international - // format of the number is returned, unless there is a preferred international - // prefix. - NSString *internationalPrefixForFormatting = @""; - - if ([self matchesEntirely:UNIQUE_INTERNATIONAL_PREFIX string:internationalPrefix]) { - internationalPrefixForFormatting = internationalPrefix; - } else if ([NBMetadataHelper hasValue:metadataForRegionCallingFrom.preferredInternationalPrefix]) { - internationalPrefixForFormatting = metadataForRegionCallingFrom.preferredInternationalPrefix; - } - - NSString *regionCode = [self getRegionCodeForCountryCode:countryCallingCode]; - // Metadata cannot be nil because the country calling code is valid. - NBPhoneMetaData *metadataForRegion = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:regionCode]; - NSString *formattedNationalNumber = [self formatNsn:nationalSignificantNumber metadata:metadataForRegion - phoneNumberFormat:NBEPhoneNumberFormatINTERNATIONAL carrierCode:nil]; - NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadataForRegion numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; - - NSString *hasLenth = [NSString stringWithFormat:@"%@ %@ %@%@", internationalPrefixForFormatting, countryCallingCode, formattedNationalNumber, formattedExtension]; - NSString *hasNotLength = [self prefixNumberWithCountryCallingCode:countryCallingCode phoneNumberFormat:NBEPhoneNumberFormatINTERNATIONAL - formattedNationalNumber:formattedNationalNumber formattedExtension:formattedExtension]; - - return internationalPrefixForFormatting.length > 0 ? hasLenth:hasNotLength; -} - - -/** - * A helper function that is used by format and formatByPattern. - * - * @param {number} countryCallingCode the country calling code. - * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the - * phone number should be formatted into. - * @param {string} formattedNationalNumber - * @param {string} formattedExtension - * @return {string} the formatted phone number. - * @private - */ -- (NSString*)prefixNumberWithCountryCallingCode:(NSNumber*)countryCallingCode phoneNumberFormat:(NBEPhoneNumberFormat)numberFormat - formattedNationalNumber:(NSString*)formattedNationalNumber - formattedExtension:(NSString*)formattedExtension -{ - switch (numberFormat) - { - case NBEPhoneNumberFormatE164: - return [NSString stringWithFormat:@"+%@%@%@", countryCallingCode, formattedNationalNumber, formattedExtension]; - case NBEPhoneNumberFormatINTERNATIONAL: - return [NSString stringWithFormat:@"+%@ %@%@", countryCallingCode, formattedNationalNumber, formattedExtension]; - case NBEPhoneNumberFormatRFC3966: - return [NSString stringWithFormat:@"%@+%@-%@%@", RFC3966_PREFIX, countryCallingCode, formattedNationalNumber, formattedExtension]; - case NBEPhoneNumberFormatNATIONAL: - default: - return [NSString stringWithFormat:@"%@%@", formattedNationalNumber, formattedExtension]; - } -} - - -/** - * Formats a phone number using the original phone number format that the number - * is parsed from. The original format is embedded in the country_code_source - * field of the PhoneNumber object passed in. If such information is missing, - * the number will be formatted into the NATIONAL format by default. When the - * number contains a leading zero and this is unexpected for this country, or we - * don't have a formatting pattern for the number, the method returns the raw - * input when it is available. - * - * Note this method guarantees no digit will be inserted, removed or modified as - * a result of formatting. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number that needs to - * be formatted in its original number format. - * @param {string} regionCallingFrom the region whose IDD needs to be prefixed - * if the original number has one. - * @return {string} the formatted phone number in its original number format. - */ -- (NSString*)formatInOriginalFormat:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError **)error -{ - NSString *res = nil; - @try { - res = [self formatInOriginalFormat:number regionCallingFrom:regionCallingFrom]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - - return res; -} - - -- (NSString*)formatInOriginalFormat:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom -{ - if ([NBMetadataHelper hasValue:number.rawInput] && ([self hasUnexpectedItalianLeadingZero:number] || [self hasFormattingPatternForNumber:number] == NO)) - { - // We check if we have the formatting pattern because without that, we might - // format the number as a group without national prefix. - return number.rawInput; - } - - if (number.countryCodeSource == nil) - { - return [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]; - } - - NSString *formattedNumber = @""; - - switch ([number.countryCodeSource intValue]) - { - case NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN: - formattedNumber = [self format:number numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; - break; - case NBECountryCodeSourceFROM_NUMBER_WITH_IDD: - formattedNumber = [self formatOutOfCountryCallingNumber:number regionCallingFrom:regionCallingFrom]; - break; - case NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN: - formattedNumber = [[self format:number numberFormat:NBEPhoneNumberFormatINTERNATIONAL] substringFromIndex:1]; - break; - case NBECountryCodeSourceFROM_DEFAULT_COUNTRY: - // Fall-through to default case. - default: - { - NSString *regionCode = [self getRegionCodeForCountryCode:number.countryCode]; - // We strip non-digits from the NDD here, and from the raw input later, - // so that we can compare them easily. - NSString *nationalPrefix = [self getNddPrefixForRegion:regionCode stripNonDigits:YES]; - NSString *nationalFormat = [self format:number numberFormat:NBEPhoneNumberFormatNATIONAL]; - if (nationalPrefix == nil || nationalPrefix.length == 0) - { - // If the region doesn't have a national prefix at all, we can safely - // return the national format without worrying about a national prefix - // being added. - formattedNumber = nationalFormat; - break; - } - // Otherwise, we check if the original number was entered with a national - // prefix. - if ([self rawInputContainsNationalPrefix:number.rawInput nationalPrefix:nationalPrefix regionCode:regionCode]) - { - // If so, we can safely return the national format. - formattedNumber = nationalFormat; - break; - } - // Metadata cannot be nil here because getNddPrefixForRegion() (above) - // returns nil if there is no metadata for the region. - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; - NSString *nationalNumber = [self getNationalSignificantNumber:number]; - NBNumberFormat *formatRule = [self chooseFormattingPatternForNumber:metadata.numberFormats nationalNumber:nationalNumber]; - // The format rule could still be nil here if the national number was 0 - // and there was no raw input (this should not be possible for numbers - // generated by the phonenumber library as they would also not have a - // country calling code and we would have exited earlier). - if (formatRule == nil) - { - formattedNumber = nationalFormat; - break; - } - // When the format we apply to this number doesn't contain national - // prefix, we can just return the national format. - // TODO: Refactor the code below with the code in - // isNationalPrefixPresentIfRequired. - NSString *candidateNationalPrefixRule = formatRule.nationalPrefixFormattingRule; - // We assume that the first-group symbol will never be _before_ the - // national prefix. - NSRange firstGroupRange = [candidateNationalPrefixRule rangeOfString:@"$1"]; - if (firstGroupRange.location == NSNotFound) - { - formattedNumber = nationalFormat; - break; - } - - if (firstGroupRange.location <= 0) - { - formattedNumber = nationalFormat; - break; - } - candidateNationalPrefixRule = [candidateNationalPrefixRule substringWithRange:NSMakeRange(0, firstGroupRange.location)]; - candidateNationalPrefixRule = [self normalizeDigitsOnly:candidateNationalPrefixRule]; - if (candidateNationalPrefixRule.length == 0) - { - // National prefix not used when formatting this number. - formattedNumber = nationalFormat; - break; - } - // Otherwise, we need to remove the national prefix from our output. - NBNumberFormat *numFormatCopy = [formatRule copy]; - numFormatCopy.nationalPrefixFormattingRule = nil; - formattedNumber = [self formatByPattern:number numberFormat:NBEPhoneNumberFormatNATIONAL userDefinedFormats:@[numFormatCopy]]; - break; - } - } - - NSString *rawInput = number.rawInput; - // If no digit is inserted/removed/modified as a result of our formatting, we - // return the formatted phone number; otherwise we return the raw input the - // user entered. - if (formattedNumber != nil && rawInput.length > 0) - { - NSString *normalizedFormattedNumber = [self normalizeHelper:formattedNumber normalizationReplacements:DIALLABLE_CHAR_MAPPINGS removeNonMatches:YES]; - /** @type {string} */ - NSString *normalizedRawInput = [self normalizeHelper:rawInput normalizationReplacements:DIALLABLE_CHAR_MAPPINGS removeNonMatches:YES]; - - if ([normalizedFormattedNumber isEqualToString:normalizedRawInput] == NO) - { - formattedNumber = rawInput; - } - } - return formattedNumber; -} - - -/** - * Check if rawInput, which is assumed to be in the national format, has a - * national prefix. The national prefix is assumed to be in digits-only form. - * @param {string} rawInput - * @param {string} nationalPrefix - * @param {string} regionCode - * @return {boolean} - * @private - */ -- (BOOL)rawInputContainsNationalPrefix:(NSString*)rawInput nationalPrefix:(NSString*)nationalPrefix regionCode:(NSString*)regionCode -{ - BOOL isValid = NO; - NSString *normalizedNationalNumber = [self normalizeDigitsOnly:rawInput]; - if ([self isStartingStringByRegex:normalizedNationalNumber regex:nationalPrefix]) - { - // Some Japanese numbers (e.g. 00777123) might be mistaken to contain the - // national prefix when written without it (e.g. 0777123) if we just do - // prefix matching. To tackle that, we check the validity of the number if - // the assumed national prefix is removed (777123 won't be valid in - // Japan). - NSString *subString = [normalizedNationalNumber substringFromIndex:nationalPrefix.length]; - NSError *anError = nil; - isValid = [self isValidNumber:[self parse:subString defaultRegion:regionCode error:&anError]]; - - if (anError != nil) - return NO; - } - return isValid; -} - - -/** - * Returns NO if a number is from a region whose national significant number - * couldn't contain a leading zero, but has the italian_leading_zero field set - * to NO. - * @param {i18n.phonenumbers.PhoneNumber} number - * @return {boolean} - * @private - */ -- (BOOL)hasUnexpectedItalianLeadingZero:(NBPhoneNumber*)number -{ - return number.italianLeadingZero && [self isLeadingZeroPossible:number.countryCode] == NO; -} - - -/** - * @param {i18n.phonenumbers.PhoneNumber} number - * @return {boolean} - * @private - */ -- (BOOL)hasFormattingPatternForNumber:(NBPhoneNumber*)number -{ - NSNumber *countryCallingCode = number.countryCode; - NSString *phoneNumberRegion = [self getRegionCodeForCountryCode:countryCallingCode]; - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCallingCode regionCode:phoneNumberRegion]; - - if (metadata == nil) - { - return NO; - } - - NSString *nationalNumber = [self getNationalSignificantNumber:number]; - NBNumberFormat *formatRule = [self chooseFormattingPatternForNumber:metadata.numberFormats nationalNumber:nationalNumber]; - return formatRule != nil; -} - - -/** - * Formats a phone number for out-of-country dialing purposes. - * - * Note that in this version, if the number was entered originally using alpha - * characters and this version of the number is stored in raw_input, this - * representation of the number will be used rather than the digit - * representation. Grouping information, as specified by characters such as '-' - * and ' ', will be retained. - * - *

Caveats:

- *
    - *
  • This will not produce good results if the country calling code is both - * present in the raw input _and_ is the start of the national number. This is - * not a problem in the regions which typically use alpha numbers. - *
  • This will also not produce good results if the raw input has any grouping - * information within the first three digits of the national number, and if the - * function needs to strip preceding digits/words in the raw input before these - * digits. Normally people group the first three digits together so this is not - * a huge problem - and will be fixed if it proves to be so. - *
- * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number that needs to - * be formatted. - * @param {string} regionCallingFrom the region where the call is being placed. - * @return {string} the formatted phone number. - */ -- (NSString*)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom error:(NSError **)error -{ - NSString *res = nil; - @try { - res = [self formatOutOfCountryKeepingAlphaChars:number regionCallingFrom:regionCallingFrom]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - - -- (NSString*)formatOutOfCountryKeepingAlphaChars:(NBPhoneNumber*)number regionCallingFrom:(NSString*)regionCallingFrom -{ - NSString *rawInput = number.rawInput; - // If there is no raw input, then we can't keep alpha characters because there - // aren't any. In this case, we return formatOutOfCountryCallingNumber. - if (rawInput == nil || rawInput.length == 0) - { - return [self formatOutOfCountryCallingNumber:number regionCallingFrom:regionCallingFrom]; - } - - NSNumber *countryCode = number.countryCode; - if ([self hasValidCountryCallingCode:countryCode] == NO) - { - return rawInput; - } - // Strip any prefix such as country calling code, IDD, that was present. We do - // this by comparing the number in raw_input with the parsed number. To do - // this, first we normalize punctuation. We retain number grouping symbols - // such as ' ' only. - rawInput = [self normalizeHelper:rawInput normalizationReplacements:ALL_PLUS_NUMBER_GROUPING_SYMBOLS removeNonMatches:NO]; - //NSLog(@"---- formatOutOfCountryKeepingAlphaChars normalizeHelper rawInput [%@]", rawInput); - // Now we trim everything before the first three digits in the parsed number. - // We choose three because all valid alpha numbers have 3 digits at the start - // - if it does not, then we don't trim anything at all. Similarly, if the - // national number was less than three digits, we don't trim anything at all. - NSString *nationalNumber = [self getNationalSignificantNumber:number]; - if (nationalNumber.length > 3) - { - int firstNationalNumberDigit = [self indexOfStringByString:rawInput target:[nationalNumber substringWithRange:NSMakeRange(0, 3)]]; - if (firstNationalNumberDigit != -1) - { - rawInput = [rawInput substringFromIndex:firstNationalNumberDigit]; - } - } - - NBPhoneMetaData *metadataForRegionCallingFrom = [NBMetadataHelper getMetadataForRegion:regionCallingFrom]; - if (countryCode.unsignedIntegerValue == NANPA_COUNTRY_CODE_) - { - if ([self isNANPACountry:regionCallingFrom]) - { - return [NSString stringWithFormat:@"%@ %@", countryCode, rawInput]; - } - } - else if (metadataForRegionCallingFrom != nil && [countryCode isEqualToNumber:[self getCountryCodeForValidRegion:regionCallingFrom error:nil]]) - { - NBNumberFormat *formattingPattern = [self chooseFormattingPatternForNumber:metadataForRegionCallingFrom.numberFormats - nationalNumber:nationalNumber]; - if (formattingPattern == nil) - { - // If no pattern above is matched, we format the original input. - return rawInput; - } - - NBNumberFormat *newFormat = [formattingPattern copy]; - // The first group is the first group of digits that the user wrote - // together. - newFormat.pattern = @"(\\d+)(.*)"; - // Here we just concatenate them back together after the national prefix - // has been fixed. - newFormat.format = @"$1$2"; - // Now we format using this pattern instead of the default pattern, but - // with the national prefix prefixed if necessary. - // This will not work in the cases where the pattern (and not the leading - // digits) decide whether a national prefix needs to be used, since we have - // overridden the pattern to match anything, but that is not the case in the - // metadata to date. - - return [self formatNsnUsingPattern:rawInput formattingPattern:newFormat numberFormat:NBEPhoneNumberFormatNATIONAL carrierCode:nil]; - } - - NSString *internationalPrefixForFormatting = @""; - // If an unsupported region-calling-from is entered, or a country with - // multiple international prefixes, the international format of the number is - // returned, unless there is a preferred international prefix. - if (metadataForRegionCallingFrom != nil) - { - NSString *internationalPrefix = metadataForRegionCallingFrom.internationalPrefix; - internationalPrefixForFormatting = - [self matchesEntirely:UNIQUE_INTERNATIONAL_PREFIX string:internationalPrefix] ? internationalPrefix : metadataForRegionCallingFrom.preferredInternationalPrefix; - } - - NSString *regionCode = [self getRegionCodeForCountryCode:countryCode]; - // Metadata cannot be nil because the country calling code is valid. - NBPhoneMetaData *metadataForRegion = [self getMetadataForRegionOrCallingCode:countryCode regionCode:regionCode]; - NSString *formattedExtension = [self maybeGetFormattedExtension:number metadata:metadataForRegion numberFormat:NBEPhoneNumberFormatINTERNATIONAL]; - if (internationalPrefixForFormatting.length > 0) - { - return [NSString stringWithFormat:@"%@ %@ %@%@", internationalPrefixForFormatting, countryCode, rawInput, formattedExtension]; - } - else - { - // Invalid region entered as country-calling-from (so no metadata was found - // for it) or the region chosen has multiple international dialling - // prefixes. - return [self prefixNumberWithCountryCallingCode:countryCode phoneNumberFormat:NBEPhoneNumberFormatINTERNATIONAL formattedNationalNumber:rawInput formattedExtension:formattedExtension]; - } -} - - -/** - * Note in some regions, the national number can be written in two completely - * different ways depending on whether it forms part of the NATIONAL format or - * INTERNATIONAL format. The numberFormat parameter here is used to specify - * which format to use for those cases. If a carrierCode is specified, this will - * be inserted into the formatted string to replace $CC. - * - * @param {string} number a string of characters representing a phone number. - * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the - * region that we think this number is from. - * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the - * phone number should be formatted into. - * @param {string=} opt_carrierCode - * @return {string} the formatted phone number. - * @private - */ -- (NSString*)formatNsn:(NSString*)phoneNumber metadata:(NBPhoneMetaData*)metadata phoneNumberFormat:(NBEPhoneNumberFormat)numberFormat carrierCode:(NSString*)opt_carrierCode -{ - NSMutableArray *intlNumberFormats = metadata.intlNumberFormats; - // When the intlNumberFormats exists, we use that to format national number - // for the INTERNATIONAL format instead of using the numberDesc.numberFormats. - NSArray *availableFormats = ([intlNumberFormats count] <= 0 || numberFormat == NBEPhoneNumberFormatNATIONAL) ? metadata.numberFormats : intlNumberFormats; - NBNumberFormat *formattingPattern = [self chooseFormattingPatternForNumber:availableFormats nationalNumber:phoneNumber]; - - if (formattingPattern == nil) - { - return phoneNumber; - } - - return [self formatNsnUsingPattern:phoneNumber formattingPattern:formattingPattern numberFormat:numberFormat carrierCode:opt_carrierCode]; -} - - -/** - * @param {Array.} availableFormats the - * available formats the phone number could be formatted into. - * @param {string} nationalNumber a string of characters representing a phone - * number. - * @return {i18n.phonenumbers.NumberFormat} - * @private - */ -- (NBNumberFormat*)chooseFormattingPatternForNumber:(NSArray*)availableFormats nationalNumber:(NSString*)nationalNumber -{ - for (NBNumberFormat *numFormat in availableFormats) - { - unsigned int size = (unsigned int)[numFormat.leadingDigitsPatterns count]; - // We always use the last leading_digits_pattern, as it is the most detailed. - if (size == 0 || [self stringPositionByRegex:nationalNumber regex:[numFormat.leadingDigitsPatterns lastObject]] == 0) - { - if ([self matchesEntirely:numFormat.pattern string:nationalNumber]) - { - return numFormat; - } - } - } - - return nil; -} - - -/** - * Note that carrierCode is optional - if nil or an empty string, no carrier - * code replacement will take place. - * - * @param {string} nationalNumber a string of characters representing a phone - * number. - * @param {i18n.phonenumbers.NumberFormat} formattingPattern the formatting rule - * the phone number should be formatted into. - * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the - * phone number should be formatted into. - * @param {string=} opt_carrierCode - * @return {string} the formatted phone number. - * @private - */ -- (NSString*)formatNsnUsingPattern:(NSString*)nationalNumber formattingPattern:(NBNumberFormat*)formattingPattern numberFormat:(NBEPhoneNumberFormat)numberFormat carrierCode:(NSString*)opt_carrierCode -{ - NSString *numberFormatRule = formattingPattern.format; - NSString *domesticCarrierCodeFormattingRule = formattingPattern.domesticCarrierCodeFormattingRule; - NSString *formattedNationalNumber = @""; - - if (numberFormat == NBEPhoneNumberFormatNATIONAL && [NBMetadataHelper hasValue:opt_carrierCode] && domesticCarrierCodeFormattingRule.length > 0) - { - // Replace the $CC in the formatting rule with the desired carrier code. - NSString *carrierCodeFormattingRule = [self replaceStringByRegex:domesticCarrierCodeFormattingRule regex:CC_PATTERN withTemplate:opt_carrierCode]; - // Now replace the $FG in the formatting rule with the first group and - // the carrier code combined in the appropriate way. - numberFormatRule = [self replaceFirstStringByRegex:numberFormatRule regex:FIRST_GROUP_PATTERN - withTemplate:carrierCodeFormattingRule]; - formattedNationalNumber = [self replaceStringByRegex:nationalNumber regex:formattingPattern.pattern withTemplate:numberFormatRule]; - } - else - { - // Use the national prefix formatting rule instead. - NSString *nationalPrefixFormattingRule = formattingPattern.nationalPrefixFormattingRule; - if (numberFormat == NBEPhoneNumberFormatNATIONAL && [NBMetadataHelper hasValue:nationalPrefixFormattingRule]) - { - NSString *replacePattern = [self replaceFirstStringByRegex:numberFormatRule regex:FIRST_GROUP_PATTERN withTemplate:nationalPrefixFormattingRule]; - formattedNationalNumber = [self replaceStringByRegex:nationalNumber regex:formattingPattern.pattern withTemplate:replacePattern]; - } - else - { - formattedNationalNumber = [self replaceStringByRegex:nationalNumber regex:formattingPattern.pattern withTemplate:numberFormatRule]; - } - } - - if (numberFormat == NBEPhoneNumberFormatRFC3966) - { - // Strip any leading punctuation. - formattedNationalNumber = [self replaceStringByRegex:formattedNationalNumber regex:[NSString stringWithFormat:@"^%@", SEPARATOR_PATTERN] withTemplate:@""]; - - // Replace the rest with a dash between each number group. - formattedNationalNumber = [self replaceStringByRegex:formattedNationalNumber regex:SEPARATOR_PATTERN withTemplate:@"-"]; - } - return formattedNationalNumber; -} - - -/** - * Gets a valid number for the specified region. - * - * @param {string} regionCode the region for which an example number is needed. - * @return {i18n.phonenumbers.PhoneNumber} a valid fixed-line number for the - * specified region. Returns nil when the metadata does not contain such - * information, or the region 001 is passed in. For 001 (representing non- - * geographical numbers), call {@link #getExampleNumberForNonGeoEntity} - * instead. - */ -- (NBPhoneNumber*)getExampleNumber:(NSString*)regionCode error:(NSError *__autoreleasing *)error -{ - NBPhoneNumber *res = [self getExampleNumberForType:regionCode type:NBEPhoneNumberTypeFIXED_LINE error:error]; - return res; -} - - -/** - * Gets a valid number for the specified region and number type. - * - * @param {string} regionCode the region for which an example number is needed. - * @param {i18n.phonenumbers.PhoneNumberType} type the type of number that is - * needed. - * @return {i18n.phonenumbers.PhoneNumber} a valid number for the specified - * region and type. Returns nil when the metadata does not contain such - * information or if an invalid region or region 001 was entered. - * For 001 (representing non-geographical numbers), call - * {@link #getExampleNumberForNonGeoEntity} instead. - */ -- (NBPhoneNumber*)getExampleNumberForType:(NSString*)regionCode type:(NBEPhoneNumberType)type error:(NSError *__autoreleasing *)error -{ - NBPhoneNumber *res = nil; - - if ([self isValidRegionCode:regionCode] == NO) - { - return nil; - } - - NBPhoneNumberDesc *desc = [self getNumberDescByType:[NBMetadataHelper getMetadataForRegion:regionCode] type:type]; - if ([NBMetadataHelper hasValue:desc.exampleNumber ]) - { - return [self parse:desc.exampleNumber defaultRegion:regionCode error:error]; - } - - return res; -} - - -/** - * Gets a valid number for the specified country calling code for a - * non-geographical entity. - * - * @param {number} countryCallingCode the country calling code for a - * non-geographical entity. - * @return {i18n.phonenumbers.PhoneNumber} a valid number for the - * non-geographical entity. Returns nil when the metadata does not contain - * such information, or the country calling code passed in does not belong - * to a non-geographical entity. - */ -- (NBPhoneNumber*)getExampleNumberForNonGeoEntity:(NSNumber *)countryCallingCode error:(NSError *__autoreleasing *)error -{ - NBPhoneNumber *res = nil; - - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForNonGeographicalRegion:countryCallingCode]; - - if (metadata != nil) - { - NBPhoneNumberDesc *desc = metadata.generalDesc; - if ([NBMetadataHelper hasValue:desc.exampleNumber]) - { - NSString *callCode = [NSString stringWithFormat:@"+%@%@", countryCallingCode, desc.exampleNumber]; - return [self parse:callCode defaultRegion:UNKNOWN_REGION_ error:error]; - } - } - - return res; -} - - -/** - * Gets the formatted extension of a phone number, if the phone number had an - * extension specified. If not, it returns an empty string. - * - * @param {i18n.phonenumbers.PhoneNumber} number the PhoneNumber that might have - * an extension. - * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the - * region that we think this number is from. - * @param {i18n.phonenumbers.PhoneNumberFormat} numberFormat the format the - * phone number should be formatted into. - * @return {string} the formatted extension if any. - * @private - */ -- (NSString*)maybeGetFormattedExtension:(NBPhoneNumber*)number metadata:(NBPhoneMetaData*)metadata numberFormat:(NBEPhoneNumberFormat)numberFormat -{ - if ([NBMetadataHelper hasValue:number.extension] == NO) { - return @""; - } else { - if (numberFormat == NBEPhoneNumberFormatRFC3966) - { - return [NSString stringWithFormat:@"%@%@", RFC3966_EXTN_PREFIX, number.extension]; - } - else - { - if ([NBMetadataHelper hasValue:metadata.preferredExtnPrefix]) - { - return [NSString stringWithFormat:@"%@%@", metadata.preferredExtnPrefix, number.extension]; - } - else - { - return [NSString stringWithFormat:@"%@%@", DEFAULT_EXTN_PREFIX, number.extension]; - } - } - } -} - - -/** - * @param {i18n.phonenumbers.PhoneMetadata} metadata - * @param {i18n.phonenumbers.PhoneNumberType} type - * @return {i18n.phonenumbers.PhoneNumberDesc} - * @private - */ -- (NBPhoneNumberDesc*)getNumberDescByType:(NBPhoneMetaData*)metadata type:(NBEPhoneNumberType)type -{ - switch (type) - { - case NBEPhoneNumberTypePREMIUM_RATE: - return metadata.premiumRate; - case NBEPhoneNumberTypeTOLL_FREE: - return metadata.tollFree; - case NBEPhoneNumberTypeMOBILE: - if (metadata.mobile == nil) return metadata.generalDesc; - return metadata.mobile; - case NBEPhoneNumberTypeFIXED_LINE: - case NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE: - if (metadata.fixedLine == nil) return metadata.generalDesc; - return metadata.fixedLine; - case NBEPhoneNumberTypeSHARED_COST: - return metadata.sharedCost; - case NBEPhoneNumberTypeVOIP: - return metadata.voip; - case NBEPhoneNumberTypePERSONAL_NUMBER: - return metadata.personalNumber; - case NBEPhoneNumberTypePAGER: - return metadata.pager; - case NBEPhoneNumberTypeUAN: - return metadata.uan; - case NBEPhoneNumberTypeVOICEMAIL: - return metadata.voicemail; - default: - return metadata.generalDesc; - } -} - -/** - * Gets the type of a phone number. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want - * to know the type. - * @return {i18n.phonenumbers.PhoneNumberType} the type of the phone number. - */ -- (NBEPhoneNumberType)getNumberType:(NBPhoneNumber*)phoneNumber -{ - NSString *regionCode = [self getRegionCodeForNumber:phoneNumber]; - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:phoneNumber.countryCode regionCode:regionCode]; - if (metadata == nil) - { - return NBEPhoneNumberTypeUNKNOWN; - } - - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:phoneNumber]; - return [self getNumberTypeHelper:nationalSignificantNumber metadata:metadata]; -} - - -/** - * @param {string} nationalNumber - * @param {i18n.phonenumbers.PhoneMetadata} metadata - * @return {i18n.phonenumbers.PhoneNumberType} - * @private - */ -- (NBEPhoneNumberType)getNumberTypeHelper:(NSString*)nationalNumber metadata:(NBPhoneMetaData*)metadata -{ - NBPhoneNumberDesc *generalNumberDesc = metadata.generalDesc; - - //NSLog(@"getNumberTypeHelper - UNKNOWN 1"); - if ([NBMetadataHelper hasValue:generalNumberDesc.nationalNumberPattern] == NO || - [self isNumberMatchingDesc:nationalNumber numberDesc:generalNumberDesc] == NO) - { - //NSLog(@"getNumberTypeHelper - UNKNOWN 2"); - return NBEPhoneNumberTypeUNKNOWN; - } - - //NSLog(@"getNumberTypeHelper - PREMIUM_RATE 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.premiumRate]) - { - //NSLog(@"getNumberTypeHelper - PREMIUM_RATE 2"); - return NBEPhoneNumberTypePREMIUM_RATE; - } - - //NSLog(@"getNumberTypeHelper - TOLL_FREE 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.tollFree]) - { - //NSLog(@"getNumberTypeHelper - TOLL_FREE 2"); - return NBEPhoneNumberTypeTOLL_FREE; - } - - //NSLog(@"getNumberTypeHelper - SHARED_COST 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.sharedCost]) - { - //NSLog(@"getNumberTypeHelper - SHARED_COST 2"); - return NBEPhoneNumberTypeSHARED_COST; - } - - //NSLog(@"getNumberTypeHelper - VOIP 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.voip]) - { - //NSLog(@"getNumberTypeHelper - VOIP 2"); - return NBEPhoneNumberTypeVOIP; - } - - //NSLog(@"getNumberTypeHelper - PERSONAL_NUMBER 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.personalNumber]) - { - //NSLog(@"getNumberTypeHelper - PERSONAL_NUMBER 2"); - return NBEPhoneNumberTypePERSONAL_NUMBER; - } - - //NSLog(@"getNumberTypeHelper - PAGER 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.pager]) - { - //NSLog(@"getNumberTypeHelper - PAGER 2"); - return NBEPhoneNumberTypePAGER; - } - - //NSLog(@"getNumberTypeHelper - UAN 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.uan]) - { - //NSLog(@"getNumberTypeHelper - UAN 2"); - return NBEPhoneNumberTypeUAN; - } - - //NSLog(@"getNumberTypeHelper - VOICEMAIL 1"); - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.voicemail]) - { - //NSLog(@"getNumberTypeHelper - VOICEMAIL 2"); - return NBEPhoneNumberTypeVOICEMAIL; - } - - if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.fixedLine]) - { - if (metadata.sameMobileAndFixedLinePattern) - { - //NSLog(@"getNumberTypeHelper - FIXED_LINE_OR_MOBILE"); - return NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE; - } - else if ([self isNumberMatchingDesc:nationalNumber numberDesc:metadata.mobile]) - { - //NSLog(@"getNumberTypeHelper - FIXED_LINE_OR_MOBILE"); - return NBEPhoneNumberTypeFIXED_LINE_OR_MOBILE; - } - //NSLog(@"getNumberTypeHelper - FIXED_LINE"); - return NBEPhoneNumberTypeFIXED_LINE; - } - - // Otherwise, test to see if the number is mobile. Only do this if certain - // that the patterns for mobile and fixed line aren't the same. - if ([metadata sameMobileAndFixedLinePattern] == NO && [self isNumberMatchingDesc:nationalNumber numberDesc:metadata.mobile]) - { - return NBEPhoneNumberTypeMOBILE; - } - - return NBEPhoneNumberTypeUNKNOWN; -} - - -/** - * @param {string} nationalNumber - * @param {i18n.phonenumbers.PhoneNumberDesc} numberDesc - * @return {boolean} - * @private - */ -- (BOOL)isNumberMatchingDesc:(NSString*)nationalNumber numberDesc:(NBPhoneNumberDesc*)numberDesc -{ - if (numberDesc == nil) - return NO; - - if ([NBMetadataHelper hasValue:numberDesc.possibleNumberPattern] == NO || [numberDesc.possibleNumberPattern isEqual:@"NA"]) - return [self matchesEntirely:numberDesc.nationalNumberPattern string:nationalNumber]; - - if ([NBMetadataHelper hasValue:numberDesc.nationalNumberPattern] == NO || [numberDesc.nationalNumberPattern isEqual:@"NA"]) - return [self matchesEntirely:numberDesc.possibleNumberPattern string:nationalNumber]; - - return [self matchesEntirely:numberDesc.possibleNumberPattern string:nationalNumber] && - [self matchesEntirely:numberDesc.nationalNumberPattern string:nationalNumber]; -} - - -/** - * Tests whether a phone number matches a valid pattern. Note this doesn't - * verify the number is actually in use, which is impossible to tell by just - * looking at a number itself. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want - * to validate. - * @return {boolean} a boolean that indicates whether the number is of a valid - * pattern. - */ -- (BOOL)isValidNumber:(NBPhoneNumber*)number -{ - NSString *regionCode = [self getRegionCodeForNumber:number]; - return [self isValidNumberForRegion:number regionCode:regionCode]; -} - - -/** - * Tests whether a phone number is valid for a certain region. Note this doesn't - * verify the number is actually in use, which is impossible to tell by just - * looking at a number itself. If the country calling code is not the same as - * the country calling code for the region, this immediately exits with NO. - * After this, the specific number pattern rules for the region are examined. - * This is useful for determining for example whether a particular number is - * valid for Canada, rather than just a valid NANPA number. - * Warning: In most cases, you want to use {@link #isValidNumber} instead. For - * example, this method will mark numbers from British Crown dependencies such - * as the Isle of Man as invalid for the region "GB" (United Kingdom), since it - * has its own region code, "IM", which may be undesirable. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number that we want - * to validate. - * @param {?string} regionCode the region that we want to validate the phone - * number for. - * @return {boolean} a boolean that indicates whether the number is of a valid - * pattern. - */ -- (BOOL)isValidNumberForRegion:(NBPhoneNumber*)number regionCode:(NSString*)regionCode -{ - NSNumber *countryCode = [number.countryCode copy]; - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCode regionCode:regionCode]; - if (metadata == nil || - ([NB_REGION_CODE_FOR_NON_GEO_ENTITY isEqualToString:regionCode] == NO && - ![countryCode isEqualToNumber:[self getCountryCodeForValidRegion:regionCode error:nil]])) - { - // Either the region code was invalid, or the country calling code for this - // number does not match that of the region code. - return NO; - } - - NBPhoneNumberDesc *generalNumDesc = metadata.generalDesc; - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; - - // For regions where we don't have metadata for PhoneNumberDesc, we treat any - // number passed in as a valid number if its national significant number is - // between the minimum and maximum lengths defined by ITU for a national - // significant number. - if ([NBMetadataHelper hasValue:generalNumDesc.nationalNumberPattern] == NO) - { - unsigned int numberLength = (unsigned int)nationalSignificantNumber.length; - return numberLength > MIN_LENGTH_FOR_NSN_ && numberLength <= MAX_LENGTH_FOR_NSN_; - } - - return [self getNumberTypeHelper:nationalSignificantNumber metadata:metadata] != NBEPhoneNumberTypeUNKNOWN; -} - - -/** - * Returns the region where a phone number is from. This could be used for - * geocoding at the region level. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone number whose origin - * we want to know. - * @return {?string} the region where the phone number is from, or nil - * if no region matches this calling code. - */ -- (NSString*)getRegionCodeForNumber:(NBPhoneNumber*)phoneNumber -{ - if (phoneNumber == nil) - { - return nil; - } - - NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:phoneNumber.countryCode]; - if (regionCodes == nil || [regionCodes count] <= 0) - { - return nil; - } - - if ([regionCodes count] == 1) - { - return [regionCodes objectAtIndex:0]; - } - else - { - return [self getRegionCodeForNumberFromRegionList:phoneNumber regionCodes:regionCodes]; - } -} - - -/** - * @param {i18n.phonenumbers.PhoneNumber} number - * @param {Array.} regionCodes - * @return {?string} - * @private - - */ -- (NSString*)getRegionCodeForNumberFromRegionList:(NBPhoneNumber*)phoneNumber regionCodes:(NSArray*)regionCodes -{ - NSString *nationalNumber = [self getNationalSignificantNumber:phoneNumber]; - unsigned int regionCodesCount = (unsigned int)[regionCodes count]; - - for (unsigned int i = 0; i} - */ -- (NSArray*)getRegionCodesForCountryCode:(NSNumber *)countryCallingCode -{ - NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:countryCallingCode]; - return regionCodes == nil ? nil : regionCodes; -} - - -/** - * Returns the country calling code for a specific region. For example, this - * would be 1 for the United States, and 64 for New Zealand. - * - * @param {?string} regionCode the region that we want to get the country - * calling code for. - * @return {number} the country calling code for the region denoted by - * regionCode. - */ -- (NSNumber*)getCountryCodeForRegion:(NSString*)regionCode -{ - if ([self isValidRegionCode:regionCode] == NO) - { - return @0; - } - - NSError *error = nil; - NSNumber *res = [self getCountryCodeForValidRegion:regionCode error:&error]; - if (error != nil) - return @0; - return res; -} - - -/** - * Returns the country calling code for a specific region. For example, this - * would be 1 for the United States, and 64 for New Zealand. Assumes the region - * is already valid. - * - * @param {?string} regionCode the region that we want to get the country - * calling code for. - * @return {number} the country calling code for the region denoted by - * regionCode. - * @throws {string} if the region is invalid - * @private - */ -- (NSNumber*)getCountryCodeForValidRegion:(NSString*)regionCode error:(NSError**)error -{ - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; - - if (metadata == nil) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Invalid region code:%@", regionCode] - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) { - (*error) = [NSError errorWithDomain:@"INVALID_REGION_CODE" code:0 userInfo:userInfo]; - } - - return @-1; - } - - return metadata.countryCode; -} - - -/** - * Returns the national dialling prefix for a specific region. For example, this - * would be 1 for the United States, and 0 for New Zealand. Set stripNonDigits - * to NO to strip symbols like '~' (which indicates a wait for a dialling - * tone) from the prefix returned. If no national prefix is present, we return - * nil. - * - *

Warning: Do not use this method for do-your-own formatting - for some - * regions, the national dialling prefix is used only for certain types of - * numbers. Use the library's formatting functions to prefix the national prefix - * when required. - * - * @param {?string} regionCode the region that we want to get the dialling - * prefix for. - * @param {boolean} stripNonDigits NO to strip non-digits from the national - * dialling prefix. - * @return {?string} the dialling prefix for the region denoted by - * regionCode. - */ -- (NSString*)getNddPrefixForRegion:(NSString*)regionCode stripNonDigits:(BOOL)stripNonDigits -{ - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:regionCode]; - if (metadata == nil) { - return nil; - } - - NSString *nationalPrefix = metadata.nationalPrefix; - // If no national prefix was found, we return nil. - if (nationalPrefix.length == 0) { - return nil; - } - - if (stripNonDigits) { - // Note: if any other non-numeric symbols are ever used in national - // prefixes, these would have to be removed here as well. - nationalPrefix = [nationalPrefix stringByReplacingOccurrencesOfString:@"~" withString:@""]; - } - return nationalPrefix; -} - - -/** - * Checks if this is a region under the North American Numbering Plan - * Administration (NANPA). - * - * @param {?string} regionCode the ISO 3166-1 two-letter region code. - * @return {boolean} NO if regionCode is one of the regions under NANPA. - */ -- (BOOL)isNANPACountry:(NSString*)regionCode -{ - BOOL isExists = NO; - - NSArray *res = [NBMetadataHelper regionCodeFromCountryCode:[NSNumber numberWithUnsignedInteger:NANPA_COUNTRY_CODE_]]; - for (NSString *inRegionCode in res) - { - if ([inRegionCode isEqualToString:regionCode.uppercaseString]) { - isExists = YES; - } - } - - return regionCode != nil && isExists; -} - - -/** - * Checks whether countryCode represents the country calling code from a region - * whose national significant number could contain a leading zero. An example of - * such a region is Italy. Returns NO if no metadata for the country is - * found. - * - * @param {number} countryCallingCode the country calling code. - * @return {boolean} - */ -- (BOOL)isLeadingZeroPossible:(NSNumber *)countryCallingCode -{ - NBPhoneMetaData *mainMetadataForCallingCode = [self getMetadataForRegionOrCallingCode:countryCallingCode - regionCode:[self getRegionCodeForCountryCode:countryCallingCode]]; - - return mainMetadataForCallingCode != nil && mainMetadataForCallingCode.leadingZeroPossible; -} - - -/** - * Checks if the number is a valid vanity (alpha) number such as 800 MICROSOFT. - * A valid vanity number will start with at least 3 digits and will have three - * or more alpha characters. This does not do region-specific checks - to work - * out if this number is actually valid for a region, it should be parsed and - * methods such as {@link #isPossibleNumberWithReason} and - * {@link #isValidNumber} should be used. - * - * @param {string} number the number that needs to be checked. - * @return {boolean} NO if the number is a valid vanity number. - */ -- (BOOL)isAlphaNumber:(NSString*)number -{ - if ([self isViablePhoneNumber:number] == NO) { - // Number is too short, or doesn't match the basic phone number pattern. - return NO; - } - - number = [NBMetadataHelper normalizeNonBreakingSpace:number]; - - /** @type {!goog.string.StringBuffer} */ - NSString *strippedNumber = [number copy]; - [self maybeStripExtension:&strippedNumber]; - - return [self matchesEntirely:VALID_ALPHA_PHONE_PATTERN_STRING string:strippedNumber]; -} - - -/** - * Convenience wrapper around {@link #isPossibleNumberWithReason}. Instead of - * returning the reason for failure, this method returns a boolean value. - * - * @param {i18n.phonenumbers.PhoneNumber} number the number that needs to be - * checked. - * @return {boolean} NO if the number is possible. - */ -- (BOOL)isPossibleNumber:(NBPhoneNumber*)number error:(NSError**)error -{ - BOOL res = NO; - @try { - res = [self isPossibleNumber:number]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - - -- (BOOL)isPossibleNumber:(NBPhoneNumber*)number -{ - return [self isPossibleNumberWithReason:number] == NBEValidationResultIS_POSSIBLE; -} - - -/** - * Helper method to check a number against a particular pattern and determine - * whether it matches, or is too short or too long. Currently, if a number - * pattern suggests that numbers of length 7 and 10 are possible, and a number - * in between these possible lengths is entered, such as of length 8, this will - * return TOO_LONG. - * - * @param {string} numberPattern - * @param {string} number - * @return {ValidationResult} - * @private - */ -- (NBEValidationResult)testNumberLengthAgainstPattern:(NSString*)numberPattern number:(NSString*)number -{ - if ([self matchesEntirely:numberPattern string:number]) { - return NBEValidationResultIS_POSSIBLE; - } - - if ([self stringPositionByRegex:number regex:numberPattern] == 0) { - return NBEValidationResultTOO_LONG; - } else { - return NBEValidationResultTOO_SHORT; - } -} - - -/** - * Check whether a phone number is a possible number. It provides a more lenient - * check than {@link #isValidNumber} in the following sense: - *

    - *
  1. It only checks the length of phone numbers. In particular, it doesn't - * check starting digits of the number. - *
  2. It doesn't attempt to figure out the type of the number, but uses general - * rules which applies to all types of phone numbers in a region. Therefore, it - * is much faster than isValidNumber. - *
  3. For fixed line numbers, many regions have the concept of area code, which - * together with subscriber number constitute the national significant number. - * It is sometimes okay to dial the subscriber number only when dialing in the - * same area. This function will return NO if the subscriber-number-only - * version is passed in. On the other hand, because isValidNumber validates - * using information on both starting digits (for fixed line numbers, that would - * most likely be area codes) and length (obviously includes the length of area - * codes for fixed line numbers), it will return NO for the - * subscriber-number-only version. - *
- * - * @param {i18n.phonenumbers.PhoneNumber} number the number that needs to be - * checked. - * @return {ValidationResult} a - * ValidationResult object which indicates whether the number is possible. - */ -- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber*)number error:(NSError *__autoreleasing *)error -{ - NBEValidationResult res = NBEValidationResultUNKNOWN; - @try { - res = [self isPossibleNumberWithReason:number]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - - return res; -} - - -- (NBEValidationResult)isPossibleNumberWithReason:(NBPhoneNumber*)number -{ - NSString *nationalNumber = [self getNationalSignificantNumber:number]; - NSNumber *countryCode = number.countryCode; - // Note: For Russian Fed and NANPA numbers, we just use the rules from the - // default region (US or Russia) since the getRegionCodeForNumber will not - // work if the number is possible but not valid. This would need to be - // revisited if the possible number pattern ever differed between various - // regions within those plans. - if ([self hasValidCountryCallingCode:countryCode] == NO) { - return NBEValidationResultINVALID_COUNTRY_CODE; - } - - NSString *regionCode = [self getRegionCodeForCountryCode:countryCode]; - // Metadata cannot be nil because the country calling code is valid. - NBPhoneMetaData *metadata = [self getMetadataForRegionOrCallingCode:countryCode regionCode:regionCode]; - NBPhoneNumberDesc *generalNumDesc = metadata.generalDesc; - - // Handling case of numbers with no metadata. - if ([NBMetadataHelper hasValue:generalNumDesc.nationalNumberPattern] == NO) { - unsigned int numberLength = (unsigned int)nationalNumber.length; - - if (numberLength < MIN_LENGTH_FOR_NSN_) { - return NBEValidationResultTOO_SHORT; - } else if (numberLength > MAX_LENGTH_FOR_NSN_) { - return NBEValidationResultTOO_LONG; - } else { - return NBEValidationResultIS_POSSIBLE; - } - } - - NSString *possibleNumberPattern = generalNumDesc.possibleNumberPattern; - return [self testNumberLengthAgainstPattern:possibleNumberPattern number:nationalNumber]; -} - - -/** - * Check whether a phone number is a possible number given a number in the form - * of a string, and the region where the number could be dialed from. It - * provides a more lenient check than {@link #isValidNumber}. See - * {@link #isPossibleNumber} for details. - * - *

This method first parses the number, then invokes - * {@link #isPossibleNumber} with the resultant PhoneNumber object. - * - * @param {string} number the number that needs to be checked, in the form of a - * string. - * @param {string} regionDialingFrom the region that we are expecting the number - * to be dialed from. - * Note this is different from the region where the number belongs. - * For example, the number +1 650 253 0000 is a number that belongs to US. - * When written in this form, it can be dialed from any region. When it is - * written as 00 1 650 253 0000, it can be dialed from any region which uses - * an international dialling prefix of 00. When it is written as - * 650 253 0000, it can only be dialed from within the US, and when written - * as 253 0000, it can only be dialed from within a smaller area in the US - * (Mountain View, CA, to be more specific). - * @return {boolean} NO if the number is possible. - */ -- (BOOL)isPossibleNumberString:(NSString*)number regionDialingFrom:(NSString*)regionDialingFrom error:(NSError**)error -{ - number = [NBMetadataHelper normalizeNonBreakingSpace:number]; - - BOOL res = [self isPossibleNumber:[self parse:number defaultRegion:regionDialingFrom error:error]]; - return res; -} - -/** - * Attempts to extract a valid number from a phone number that is too long to be - * valid, and resets the PhoneNumber object passed in to that valid version. If - * no valid number could be extracted, the PhoneNumber object passed in will not - * be modified. - * @param {i18n.phonenumbers.PhoneNumber} number a PhoneNumber object which - * contains a number that is too long to be valid. - * @return {boolean} NO if a valid phone number can be successfully extracted. - */ - -- (BOOL)truncateTooLongNumber:(NBPhoneNumber*)number -{ - if ([self isValidNumber:number]) { - return YES; - } - - NBPhoneNumber *numberCopy = [number copy]; - NSNumber *nationalNumber = number.nationalNumber; - do { - nationalNumber = [NSNumber numberWithLongLong:(long long)floor(nationalNumber.unsignedLongLongValue / 10)]; - numberCopy.nationalNumber = [nationalNumber copy]; - if ([nationalNumber isEqualToNumber:@0] || [self isPossibleNumberWithReason:numberCopy] == NBEValidationResultTOO_SHORT) { - return NO; - } - } - while ([self isValidNumber:numberCopy] == NO); - - number.nationalNumber = nationalNumber; - return YES; -} - - -/** - * Extracts country calling code from fullNumber, returns it and places the - * remaining number in nationalNumber. It assumes that the leading plus sign or - * IDD has already been removed. Returns 0 if fullNumber doesn't start with a - * valid country calling code, and leaves nationalNumber unmodified. - * - * @param {!goog.string.StringBuffer} fullNumber - * @param {!goog.string.StringBuffer} nationalNumber - * @return {number} - */ -- (NSNumber *)extractCountryCode:(NSString *)fullNumber nationalNumber:(NSString **)nationalNumber -{ - fullNumber = [NBMetadataHelper normalizeNonBreakingSpace:fullNumber]; - - if ((fullNumber.length == 0) || ([[fullNumber substringToIndex:1] isEqualToString:@"0"])) { - // Country codes do not begin with a '0'. - return @0; - } - - unsigned int numberLength = (unsigned int)fullNumber.length; - - for (unsigned int i = 1; i <= MAX_LENGTH_COUNTRY_CODE_ && i <= numberLength; ++i) { - NSString *subNumber = [fullNumber substringWithRange:NSMakeRange(0, i)]; - NSNumber *potentialCountryCode = [NSNumber numberWithInteger:[subNumber integerValue]]; - - NSArray *regionCodes = [NBMetadataHelper regionCodeFromCountryCode:potentialCountryCode]; - if (regionCodes != nil && regionCodes.count > 0) { - if (nationalNumber != NULL) { - if ((*nationalNumber) == nil) { - (*nationalNumber) = [NSString stringWithFormat:@"%@", [fullNumber substringFromIndex:i]]; - } else { - (*nationalNumber) = [NSString stringWithFormat:@"%@%@", (*nationalNumber), [fullNumber substringFromIndex:i]]; - } - } - return potentialCountryCode; - } - } - - return @0; -} - - -/** - * Tries to extract a country calling code from a number. This method will - * return zero if no country calling code is considered to be present. Country - * calling codes are extracted in the following ways: - *

    - *
  • by stripping the international dialing prefix of the region the person is - * dialing from, if this is present in the number, and looking at the next - * digits - *
  • by stripping the '+' sign if present and then looking at the next digits - *
  • by comparing the start of the number and the country calling code of the - * default region. If the number is not considered possible for the numbering - * plan of the default region initially, but starts with the country calling - * code of this region, validation will be reattempted after stripping this - * country calling code. If this number is considered a possible number, then - * the first digits will be considered the country calling code and removed as - * such. - *
- * - * It will throw a i18n.phonenumbers.Error if the number starts with a '+' but - * the country calling code supplied after this does not match that of any known - * region. - * - * @param {string} number non-normalized telephone number that we wish to - * extract a country calling code from - may begin with '+'. - * @param {i18n.phonenumbers.PhoneMetadata} defaultRegionMetadata metadata - * about the region this number may be from. - * @param {!goog.string.StringBuffer} nationalNumber a string buffer to store - * the national significant number in, in the case that a country calling - * code was extracted. The number is appended to any existing contents. If - * no country calling code was extracted, this will be left unchanged. - * @param {boolean} keepRawInput NO if the country_code_source and - * preferred_carrier_code fields of phoneNumber should be populated. - * @param {i18n.phonenumbers.PhoneNumber} phoneNumber the PhoneNumber object - * where the country_code and country_code_source need to be populated. - * Note the country_code is always populated, whereas country_code_source is - * only populated when keepCountryCodeSource is NO. - * @return {number} the country calling code extracted or 0 if none could be - * extracted. - * @throws {i18n.phonenumbers.Error} - */ -- (NSNumber *)maybeExtractCountryCode:(NSString*)number metadata:(NBPhoneMetaData*)defaultRegionMetadata - nationalNumber:(NSString**)nationalNumber keepRawInput:(BOOL)keepRawInput - phoneNumber:(NBPhoneNumber**)phoneNumber error:(NSError**)error -{ - if (nationalNumber == NULL || phoneNumber == NULL || number.length <= 0) { - return @0; - } - - NSString *fullNumber = [number copy]; - // Set the default prefix to be something that will never match. - NSString *possibleCountryIddPrefix = @""; - if (defaultRegionMetadata != nil) { - possibleCountryIddPrefix = defaultRegionMetadata.internationalPrefix; - } - - if (possibleCountryIddPrefix == nil) { - possibleCountryIddPrefix = @"NonMatch"; - } - - /** @type {i18n.phonenumbers.PhoneNumber.CountryCodeSource} */ - NBECountryCodeSource countryCodeSource = [self maybeStripInternationalPrefixAndNormalize:&fullNumber - possibleIddPrefix:possibleCountryIddPrefix]; - if (keepRawInput) { - (*phoneNumber).countryCodeSource = [NSNumber numberWithInt:countryCodeSource]; - } - - if (countryCodeSource != NBECountryCodeSourceFROM_DEFAULT_COUNTRY) { - if (fullNumber.length <= MIN_LENGTH_FOR_NSN_) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"TOO_SHORT_AFTER_IDD:%@", fullNumber] - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) { - (*error) = [NSError errorWithDomain:@"TOO_SHORT_AFTER_IDD" code:0 userInfo:userInfo]; - } - return @0; - } - - NSNumber *potentialCountryCode = [self extractCountryCode:fullNumber nationalNumber:nationalNumber]; - - if (![potentialCountryCode isEqualToNumber:@0]) { - (*phoneNumber).countryCode = potentialCountryCode; - return potentialCountryCode; - } - - // If this fails, they must be using a strange country calling code that we - // don't recognize, or that doesn't exist. - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"INVALID_COUNTRY_CODE:%@", potentialCountryCode] - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) { - (*error) = [NSError errorWithDomain:@"INVALID_COUNTRY_CODE" code:0 userInfo:userInfo]; - } - - return @0; - } else if (defaultRegionMetadata != nil) { - // Check to see if the number starts with the country calling code for the - // default region. If so, we remove the country calling code, and do some - // checks on the validity of the number before and after. - NSNumber *defaultCountryCode = defaultRegionMetadata.countryCode; - NSString *defaultCountryCodeString = [NSString stringWithFormat:@"%@", defaultCountryCode]; - NSString *normalizedNumber = [fullNumber copy]; - - if ([normalizedNumber hasPrefix:defaultCountryCodeString]) { - NSString *potentialNationalNumber = [normalizedNumber substringFromIndex:defaultCountryCodeString.length]; - NBPhoneNumberDesc *generalDesc = defaultRegionMetadata.generalDesc; - - NSString *validNumberPattern = generalDesc.nationalNumberPattern; - // Passing null since we don't need the carrier code. - [self maybeStripNationalPrefixAndCarrierCode:&potentialNationalNumber metadata:defaultRegionMetadata carrierCode:nil]; - - NSString *potentialNationalNumberStr = [potentialNationalNumber copy]; - NSString *possibleNumberPattern = generalDesc.possibleNumberPattern; - // If the number was not valid before but is valid now, or if it was too - // long before, we consider the number with the country calling code - // stripped to be a better result and keep that instead. - if ((![self matchesEntirely:validNumberPattern string:fullNumber] && - [self matchesEntirely:validNumberPattern string:potentialNationalNumberStr]) || - [self testNumberLengthAgainstPattern:possibleNumberPattern number:fullNumber] == NBEValidationResultTOO_LONG) { - (*nationalNumber) = [(*nationalNumber) stringByAppendingString:potentialNationalNumberStr]; - if (keepRawInput) { - (*phoneNumber).countryCodeSource = [NSNumber numberWithInt:NBECountryCodeSourceFROM_NUMBER_WITHOUT_PLUS_SIGN]; - } - (*phoneNumber).countryCode = defaultCountryCode; - return defaultCountryCode; - } - } - } - // No country calling code present. - (*phoneNumber).countryCode = @0; - return @0; -} - - -/** - * Strips the IDD from the start of the number if present. Helper function used - * by maybeStripInternationalPrefixAndNormalize. - * - * @param {!RegExp} iddPattern the regular expression for the international - * prefix. - * @param {!goog.string.StringBuffer} number the phone number that we wish to - * strip any international dialing prefix from. - * @return {boolean} NO if an international prefix was present. - * @private - */ -- (BOOL)parsePrefixAsIdd:(NSString*)iddPattern sourceString:(NSString**)number -{ - if (number == NULL) { - return NO; - } - - NSString *numberStr = [(*number) copy]; - - if ([self stringPositionByRegex:numberStr regex:iddPattern] == 0) { - NSTextCheckingResult *matched = [[self matchesByRegex:numberStr regex:iddPattern] objectAtIndex:0]; - NSString *matchedString = [numberStr substringWithRange:matched.range]; - unsigned int matchEnd = (unsigned int)matchedString.length; - NSString *remainString = [numberStr substringFromIndex:matchEnd]; - - NSRegularExpression *currentPattern = CAPTURING_DIGIT_PATTERN; - NSArray *matchedGroups = [currentPattern matchesInString:remainString options:0 range:NSMakeRange(0, remainString.length)]; - - if (matchedGroups && [matchedGroups count] > 0 && [matchedGroups objectAtIndex:0] != nil) { - NSString *digitMatched = [remainString substringWithRange:((NSTextCheckingResult*)[matchedGroups objectAtIndex:0]).range]; - if (digitMatched.length > 0) { - NSString *normalizedGroup = [self normalizeDigitsOnly:digitMatched]; - if ([normalizedGroup isEqualToString:@"0"]) { - return NO; - } - } - } - - (*number) = [remainString copy]; - return YES; - } - - return NO; -} - - -/** - * Strips any international prefix (such as +, 00, 011) present in the number - * provided, normalizes the resulting number, and indicates if an international - * prefix was present. - * - * @param {!goog.string.StringBuffer} number the non-normalized telephone number - * that we wish to strip any international dialing prefix from. - * @param {string} possibleIddPrefix the international direct dialing prefix - * from the region we think this number may be dialed in. - * @return {CountryCodeSource} the corresponding - * CountryCodeSource if an international dialing prefix could be removed - * from the number, otherwise CountryCodeSource.FROM_DEFAULT_COUNTRY if - * the number did not seem to be in international format. - */ -- (NBECountryCodeSource)maybeStripInternationalPrefixAndNormalize:(NSString**)numberStr possibleIddPrefix:(NSString*)possibleIddPrefix -{ - if (numberStr == NULL || (*numberStr).length == 0) { - return NBECountryCodeSourceFROM_DEFAULT_COUNTRY; - } - - // Check to see if the number begins with one or more plus signs. - if ([self isStartingStringByRegex:(*numberStr) regex:LEADING_PLUS_CHARS_PATTERN]) { - (*numberStr) = [self replaceStringByRegex:(*numberStr) regex:LEADING_PLUS_CHARS_PATTERN withTemplate:@""]; - // Can now normalize the rest of the number since we've consumed the '+' - // sign at the start. - (*numberStr) = [self normalizePhoneNumber:(*numberStr)]; - return NBECountryCodeSourceFROM_NUMBER_WITH_PLUS_SIGN; - } - - // Attempt to parse the first digits as an international prefix. - NSString *iddPattern = [possibleIddPrefix copy]; - [self normalizeSB:numberStr]; - - return [self parsePrefixAsIdd:iddPattern sourceString:numberStr] ? NBECountryCodeSourceFROM_NUMBER_WITH_IDD : NBECountryCodeSourceFROM_DEFAULT_COUNTRY; -} - - -/** - * Strips any national prefix (such as 0, 1) present in the number provided. - * - * @param {!goog.string.StringBuffer} number the normalized telephone number - * that we wish to strip any national dialing prefix from. - * @param {i18n.phonenumbers.PhoneMetadata} metadata the metadata for the - * region that we think this number is from. - * @param {goog.string.StringBuffer} carrierCode a place to insert the carrier - * code if one is extracted. - * @return {boolean} NO if a national prefix or carrier code (or both) could - * be extracted. - */ -- (BOOL)maybeStripNationalPrefixAndCarrierCode:(NSString**)number metadata:(NBPhoneMetaData*)metadata carrierCode:(NSString**)carrierCode -{ - if (number == NULL) { - return NO; - } - - NSString *numberStr = [(*number) copy]; - unsigned int numberLength = (unsigned int)numberStr.length; - NSString *possibleNationalPrefix = metadata.nationalPrefixForParsing; - - if (numberLength == 0 || [NBMetadataHelper hasValue:possibleNationalPrefix] == NO) { - // Early return for numbers of zero length. - return NO; - } - - // Attempt to parse the first digits as a national prefix. - NSString *prefixPattern = [NSString stringWithFormat:@"^(?:%@)", possibleNationalPrefix]; - NSError *error = nil; - NSRegularExpression *currentPattern = [self regularExpressionWithPattern:prefixPattern options:0 error:&error]; - - NSArray *prefixMatcher = [currentPattern matchesInString:numberStr options:0 range:NSMakeRange(0, numberLength)]; - if (prefixMatcher && [prefixMatcher count] > 0) - { - NSString *nationalNumberRule = metadata.generalDesc.nationalNumberPattern; - NSTextCheckingResult *firstMatch = [prefixMatcher objectAtIndex:0]; - NSString *firstMatchString = [numberStr substringWithRange:firstMatch.range]; - - // prefixMatcher[numOfGroups] == null implies nothing was captured by the - // capturing groups in possibleNationalPrefix; therefore, no transformation - // is necessary, and we just remove the national prefix. - unsigned int numOfGroups = (unsigned int)firstMatch.numberOfRanges - 1; - NSString *transformRule = metadata.nationalPrefixTransformRule; - NSString *transformedNumber = @""; - NSRange firstRange = [firstMatch rangeAtIndex:numOfGroups]; - NSString *firstMatchStringWithGroup = (firstRange.location != NSNotFound && firstRange.location < numberStr.length) ? [numberStr substringWithRange:firstRange] : nil; - BOOL noTransform = (transformRule == nil || transformRule.length == 0 || [NBMetadataHelper hasValue:firstMatchStringWithGroup] == NO); - - if (noTransform) { - transformedNumber = [numberStr substringFromIndex:firstMatchString.length]; - } else { - transformedNumber = [self replaceFirstStringByRegex:numberStr regex:prefixPattern withTemplate:transformRule]; - } - // If the original number was viable, and the resultant number is not, - // we return. - if ([NBMetadataHelper hasValue:nationalNumberRule ] && [self matchesEntirely:nationalNumberRule string:numberStr] && - [self matchesEntirely:nationalNumberRule string:transformedNumber] == NO) { - return NO; - } - - if ((noTransform && numOfGroups > 0 && [NBMetadataHelper hasValue:firstMatchStringWithGroup]) || (!noTransform && numOfGroups > 1)) { - if (carrierCode != NULL && (*carrierCode) != nil) { - (*carrierCode) = [(*carrierCode) stringByAppendingString:firstMatchStringWithGroup]; - } - } - else if ((noTransform && numOfGroups > 0 && [NBMetadataHelper hasValue:firstMatchString]) || (!noTransform && numOfGroups > 1)) { - if (carrierCode != NULL && (*carrierCode) != nil) { - (*carrierCode) = [(*carrierCode) stringByAppendingString:firstMatchString]; - } - } - - (*number) = transformedNumber; - return YES; - } - return NO; -} - - -/** - * Strips any extension (as in, the part of the number dialled after the call is - * connected, usually indicated with extn, ext, x or similar) from the end of - * the number, and returns it. - * - * @param {!goog.string.StringBuffer} number the non-normalized telephone number - * that we wish to strip the extension from. - * @return {string} the phone extension. - */ -- (NSString*)maybeStripExtension:(NSString**)number -{ - if (number == NULL) { - return @""; - } - - NSString *numberStr = [(*number) copy]; - int mStart = [self stringPositionByRegex:numberStr regex:EXTN_PATTERN]; - - // If we find a potential extension, and the number preceding this is a viable - // number, we assume it is an extension. - if (mStart >= 0 && [self isViablePhoneNumber:[numberStr substringWithRange:NSMakeRange(0, mStart)]]) { - // The numbers are captured into groups in the regular expression. - NSTextCheckingResult *firstMatch = [self matcheFirstByRegex:numberStr regex:EXTN_PATTERN]; - unsigned int matchedGroupsLength = (unsigned int)[firstMatch numberOfRanges]; - for (unsigned int i=1; i 0 && [self isStartingStringByRegex:numberToParse regex:LEADING_PLUS_CHARS_PATTERN]); -} - - -/** - * Parses a string and returns it in proto buffer format. This method will throw - * a {@link i18n.phonenumbers.Error} if the number is not considered to be a - * possible number. Note that validation of whether the number is actually a - * valid number for a particular region is not performed. This can be done - * separately with {@link #isValidNumber}. - * - * @param {?string} numberToParse number that we are attempting to parse. This - * can contain formatting such as +, ( and -, as well as a phone number - * extension. It can also be provided in RFC3966 format. - * @param {?string} defaultRegion region that we are expecting the number to be - * from. This is only used if the number being parsed is not written in - * international format. The country_code for the number in this case would - * be stored as that of the default region supplied. If the number is - * guaranteed to start with a '+' followed by the country calling code, then - * 'ZZ' or nil can be supplied. - * @return {i18n.phonenumbers.PhoneNumber} a phone number proto buffer filled - * with the parsed number. - * @throws {i18n.phonenumbers.Error} if the string is not considered to be a - * viable phone number or if no default region was supplied and the number - * is not in international format (does not start with +). - */ -- (NBPhoneNumber*)parse:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error -{ - NSError *anError = nil; - NBPhoneNumber *phoneNumber = [self parseHelper:numberToParse defaultRegion:defaultRegion keepRawInput:NO checkRegion:YES error:&anError]; - - if (anError != nil) { - if (error != NULL) { - (*error) = [self errorWithObject:anError.description withDomain:anError.domain]; - } - } - return phoneNumber; -} - -/** - * Parses a string using the phone's carrier region (when available, ZZ otherwise). - * This uses the country the sim card in the phone is registered with. - * For example if you have an AT&T sim card but are in Europe, this will parse the - * number using +1 (AT&T is a US Carrier) as the default country code. - * This also works for CDMA phones which don't have a sim card. - */ -- (NBPhoneNumber*)parseWithPhoneCarrierRegion:(NSString*)numberToParse error:(NSError**)error -{ - numberToParse = [NBMetadataHelper normalizeNonBreakingSpace:numberToParse]; - - NSString *defaultRegion = nil; -#if TARGET_OS_IPHONE - defaultRegion = [self countryCodeByCarrier]; -#else - defaultRegion = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]; -#endif - if ([UNKNOWN_REGION_ isEqualToString:defaultRegion]) { - // get region from device as a failover (e.g. iPad) - NSLocale *currentLocale = [NSLocale currentLocale]; - defaultRegion = [currentLocale objectForKey:NSLocaleCountryCode]; - } - - return [self parse:numberToParse defaultRegion:defaultRegion error:error]; -} - -#if TARGET_OS_IPHONE - -- (NSString *)countryCodeByCarrier -{ - // cache telephony network info; - // CTTelephonyNetworkInfo objects are unnecessarily created for every call to parseWithPhoneCarrierRegion:error: - // when in reality this information not change while an app lives in memory - // real-world performance test while parsing 93 phone numbers: - // before change: 126ms - // after change: 32ms - if (!self.telephonyNetworkInfo) { - self.telephonyNetworkInfo = [[CTTelephonyNetworkInfo alloc] init]; - } - - NSString *isoCode = [[self.telephonyNetworkInfo subscriberCellularProvider] isoCountryCode]; - - // The 2nd part of the if is working around an iOS 7 bug - // If the SIM card is missing, iOS 7 returns an empty string instead of nil - if (!isoCode || [isoCode isEqualToString:@""]) { - isoCode = UNKNOWN_REGION_; - } - - return isoCode; -} - -#endif - - -/** - * Parses a string and returns it in proto buffer format. This method differs - * from {@link #parse} in that it always populates the raw_input field of the - * protocol buffer with numberToParse as well as the country_code_source field. - * - * @param {string} numberToParse number that we are attempting to parse. This - * can contain formatting such as +, ( and -, as well as a phone number - * extension. - * @param {?string} defaultRegion region that we are expecting the number to be - * from. This is only used if the number being parsed is not written in - * international format. The country calling code for the number in this - * case would be stored as that of the default region supplied. - * @return {i18n.phonenumbers.PhoneNumber} a phone number proto buffer filled - * with the parsed number. - * @throws {i18n.phonenumbers.Error} if the string is not considered to be a - * viable phone number or if no default region was supplied. - */ -- (NBPhoneNumber*)parseAndKeepRawInput:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion error:(NSError**)error -{ - if ([self isValidRegionCode:defaultRegion] == NO) { - if (numberToParse.length > 0 && [numberToParse hasPrefix:@"+"] == NO) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"Invalid country code:%@", numberToParse] - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) { - (*error) = [NSError errorWithDomain:@"INVALID_COUNTRY_CODE" code:0 userInfo:userInfo]; - } - } - } - return [self parseHelper:numberToParse defaultRegion:defaultRegion keepRawInput:YES checkRegion:YES error:error]; -} - - -/** - * Parses a string and returns it in proto buffer format. This method is the - * same as the public {@link #parse} method, with the exception that it allows - * the default region to be nil, for use by {@link #isNumberMatch}. - * - * @param {?string} numberToParse number that we are attempting to parse. This - * can contain formatting such as +, ( and -, as well as a phone number - * extension. - * @param {?string} defaultRegion region that we are expecting the number to be - * from. This is only used if the number being parsed is not written in - * international format. The country calling code for the number in this - * case would be stored as that of the default region supplied. - * @param {boolean} keepRawInput whether to populate the raw_input field of the - * phoneNumber with numberToParse. - * @param {boolean} checkRegion should be set to NO if it is permitted for - * the default coregion to be nil or unknown ('ZZ'). - * @return {i18n.phonenumbers.PhoneNumber} a phone number proto buffer filled - * with the parsed number. - * @throws {i18n.phonenumbers.Error} - * @private - */ -- (NBPhoneNumber*)parseHelper:(NSString*)numberToParse defaultRegion:(NSString*)defaultRegion - keepRawInput:(BOOL)keepRawInput checkRegion:(BOOL)checkRegion error:(NSError**)error -{ - numberToParse = [NBMetadataHelper normalizeNonBreakingSpace:numberToParse]; - - if (numberToParse == nil) { - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"NOT_A_NUMBER:%@", numberToParse] withDomain:@"NOT_A_NUMBER"]; - } - - return nil; - } else if (numberToParse.length > MAX_INPUT_STRING_LENGTH_) { - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_LONG:%@", numberToParse] withDomain:@"TOO_LONG"]; - } - - return nil; - } - - NSString *nationalNumber = @""; - [self buildNationalNumberForParsing:numberToParse nationalNumber:&nationalNumber]; - - if ([self isViablePhoneNumber:nationalNumber] == NO) { - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"NOT_A_NUMBER:%@", nationalNumber] withDomain:@"NOT_A_NUMBER"]; - } - - return nil; - } - - // Check the region supplied is valid, or that the extracted number starts - // with some sort of + sign so the number's region can be determined. - if (checkRegion && [self checkRegionForParsing:nationalNumber defaultRegion:defaultRegion] == NO) { - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"INVALID_COUNTRY_CODE:%@", defaultRegion] - withDomain:@"INVALID_COUNTRY_CODE"]; - } - - return nil; - } - - NBPhoneNumber *phoneNumber = [[NBPhoneNumber alloc] init]; - if (keepRawInput) { - phoneNumber.rawInput = [numberToParse copy]; - } - - // Attempt to parse extension first, since it doesn't require region-specific - // data and we want to have the non-normalised number here. - NSString *extension = [self maybeStripExtension:&nationalNumber]; - if (extension.length > 0) { - phoneNumber.extension = [extension copy]; - } - - NBPhoneMetaData *regionMetadata = [NBMetadataHelper getMetadataForRegion:defaultRegion]; - // Check to see if the number is given in international format so we know - // whether this number is from the default region or not. - NSString *normalizedNationalNumber = @""; - NSNumber *countryCode = nil; - NSString *nationalNumberStr = [nationalNumber copy]; - - { - NSError *anError = nil; - countryCode = [self maybeExtractCountryCode:nationalNumberStr - metadata:regionMetadata - nationalNumber:&normalizedNationalNumber - keepRawInput:keepRawInput - phoneNumber:&phoneNumber error:&anError]; - - if (anError != nil) { - if ([anError.domain isEqualToString:@"INVALID_COUNTRY_CODE"] && [self stringPositionByRegex:nationalNumberStr - regex:LEADING_PLUS_CHARS_PATTERN] >= 0) - { - // Strip the plus-char, and try again. - NSError *aNestedError = nil; - nationalNumberStr = [self replaceStringByRegex:nationalNumberStr regex:LEADING_PLUS_CHARS_PATTERN withTemplate:@""]; - countryCode = [self maybeExtractCountryCode:nationalNumberStr - metadata:regionMetadata - nationalNumber:&normalizedNationalNumber - keepRawInput:keepRawInput - phoneNumber:&phoneNumber error:&aNestedError]; - if ([countryCode isEqualToNumber:@0]) { - if (error != NULL) - (*error) = [self errorWithObject:anError.description withDomain:anError.domain]; - - return nil; - } - } else { - if (error != NULL) - (*error) = [self errorWithObject:anError.description withDomain:anError.domain]; - - return nil; - } - } - } - - if (![countryCode isEqualToNumber:@0]) { - NSString *phoneNumberRegion = [self getRegionCodeForCountryCode:countryCode]; - if (phoneNumberRegion != defaultRegion) { - // Metadata cannot be nil because the country calling code is valid. - regionMetadata = [self getMetadataForRegionOrCallingCode:countryCode regionCode:phoneNumberRegion]; - } - } else { - // If no extracted country calling code, use the region supplied instead. - // The national number is just the normalized version of the number we were - // given to parse. - [self normalizeSB:&nationalNumber]; - normalizedNationalNumber = [normalizedNationalNumber stringByAppendingString:nationalNumber]; - - if (defaultRegion != nil) { - countryCode = regionMetadata.countryCode; - phoneNumber.countryCode = countryCode; - } else if (keepRawInput) { - [phoneNumber clearCountryCodeSource]; - } - } - - if (normalizedNationalNumber.length < MIN_LENGTH_FOR_NSN_){ - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_SHORT_NSN:%@", normalizedNationalNumber] withDomain:@"TOO_SHORT_NSN"]; - } - - return nil; - } - - if (regionMetadata != nil) { - NSString *carrierCode = @""; - [self maybeStripNationalPrefixAndCarrierCode:&normalizedNationalNumber metadata:regionMetadata carrierCode:&carrierCode]; - - if (keepRawInput) { - phoneNumber.PreferredDomesticCarrierCode = [carrierCode copy]; - } - } - - NSString *normalizedNationalNumberStr = [normalizedNationalNumber copy]; - - unsigned int lengthOfNationalNumber = (unsigned int)normalizedNationalNumberStr.length; - if (lengthOfNationalNumber < MIN_LENGTH_FOR_NSN_) { - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_SHORT_NSN:%@", normalizedNationalNumber] withDomain:@"TOO_SHORT_NSN"]; - } - - return nil; - } - - if (lengthOfNationalNumber > MAX_LENGTH_FOR_NSN_) { - if (error != NULL) { - (*error) = [self errorWithObject:[NSString stringWithFormat:@"TOO_LONG:%@", normalizedNationalNumber] withDomain:@"TOO_LONG"]; - } - - return nil; - } - - if ([normalizedNationalNumberStr hasPrefix:@"0"]) { - phoneNumber.italianLeadingZero = YES; - } - - phoneNumber.nationalNumber = [NSNumber numberWithLongLong:[normalizedNationalNumberStr longLongValue]]; - return phoneNumber; -} - - -/** - * Converts numberToParse to a form that we can parse and write it to - * nationalNumber if it is written in RFC3966; otherwise extract a possible - * number out of it and write to nationalNumber. - * - * @param {?string} numberToParse number that we are attempting to parse. This - * can contain formatting such as +, ( and -, as well as a phone number - * extension. - * @param {!goog.string.StringBuffer} nationalNumber a string buffer for storing - * the national significant number. - * @private - */ -- (void)buildNationalNumberForParsing:(NSString*)numberToParse nationalNumber:(NSString**)nationalNumber -{ - if (nationalNumber == NULL) - return; - - int indexOfPhoneContext = [self indexOfStringByString:numberToParse target:RFC3966_PHONE_CONTEXT]; - if (indexOfPhoneContext > 0) - { - unsigned int phoneContextStart = indexOfPhoneContext + (unsigned int)RFC3966_PHONE_CONTEXT.length; - // If the phone context contains a phone number prefix, we need to capture - // it, whereas domains will be ignored. - if ([numberToParse characterAtIndex:phoneContextStart] == '+') - { - // Additional parameters might follow the phone context. If so, we will - // remove them here because the parameters after phone context are not - // important for parsing the phone number. - NSRange foundRange = [numberToParse rangeOfString:@";" options:NSLiteralSearch range:NSMakeRange(phoneContextStart, numberToParse.length - phoneContextStart)]; - if (foundRange.location != NSNotFound) - { - NSRange subRange = NSMakeRange(phoneContextStart, foundRange.location - phoneContextStart); - (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[numberToParse substringWithRange:subRange]]; - } - else - { - (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[numberToParse substringFromIndex:phoneContextStart]]; - } - } - - // Now append everything between the "tel:" prefix and the phone-context. - // This should include the national number, an optional extension or - // isdn-subaddress component. - unsigned int rfc3966Start = [self indexOfStringByString:numberToParse target:RFC3966_PREFIX] + (unsigned int)RFC3966_PREFIX.length; - NSString *subString = [numberToParse substringWithRange:NSMakeRange(rfc3966Start, indexOfPhoneContext - rfc3966Start)]; - (*nationalNumber) = [(*nationalNumber) stringByAppendingString:subString]; - } - else - { - // Extract a possible number from the string passed in (this strips leading - // characters that could not be the start of a phone number.) - (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[self extractPossibleNumber:numberToParse]]; - } - - // Delete the isdn-subaddress and everything after it if it is present. - // Note extension won't appear at the same time with isdn-subaddress - // according to paragraph 5.3 of the RFC3966 spec, - NSString *nationalNumberStr = [(*nationalNumber) copy]; - int indexOfIsdn = [self indexOfStringByString:nationalNumberStr target:RFC3966_ISDN_SUBADDRESS]; - if (indexOfIsdn > 0) - { - (*nationalNumber) = @""; - (*nationalNumber) = [(*nationalNumber) stringByAppendingString:[nationalNumberStr substringWithRange:NSMakeRange(0, indexOfIsdn)]]; - } - // If both phone context and isdn-subaddress are absent but other - // parameters are present, the parameters are left in nationalNumber. This - // is because we are concerned about deleting content from a potential - // number string when there is no strong evidence that the number is - // actually written in RFC3966. -} - - -/** - * Takes two phone numbers and compares them for equality. - * - *

Returns EXACT_MATCH if the country_code, NSN, presence of a leading zero - * for Italian numbers and any extension present are the same. Returns NSN_MATCH - * if either or both has no region specified, and the NSNs and extensions are - * the same. Returns SHORT_NSN_MATCH if either or both has no region specified, - * or the region specified is the same, and one NSN could be a shorter version - * of the other number. This includes the case where one has an extension - * specified, and the other does not. Returns NO_MATCH otherwise. For example, - * the numbers +1 345 657 1234 and 657 1234 are a SHORT_NSN_MATCH. The numbers - * +1 345 657 1234 and 345 657 are a NO_MATCH. - * - * @param {i18n.phonenumbers.PhoneNumber|string} firstNumberIn first number to - * compare. If it is a string it can contain formatting, and can have - * country calling code specified with + at the start. - * @param {i18n.phonenumbers.PhoneNumber|string} secondNumberIn second number to - * compare. If it is a string it can contain formatting, and can have - * country calling code specified with + at the start. - * @return {MatchType} NOT_A_NUMBER, NO_MATCH, - * SHORT_NSN_MATCH, NSN_MATCH or EXACT_MATCH depending on the level of - * equality of the two numbers, described in the method definition. - */ -- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn error:(NSError**)error -{ - NBEMatchType res = 0; - @try { - res = [self isNumberMatch:firstNumberIn second:secondNumberIn]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - -- (NBEMatchType)isNumberMatch:(id)firstNumberIn second:(id)secondNumberIn -{ - // If the input arguements are strings parse them to a proto buffer format. - // Else make copies of the phone numbers so that the numbers passed in are not - // edited. - /** @type {i18n.phonenumbers.PhoneNumber} */ - NBPhoneNumber *firstNumber = nil, *secondNumber = nil; - if ([firstNumberIn isKindOfClass:[NSString class]]) - { - // First see if the first number has an implicit country calling code, by - // attempting to parse it. - NSError *anError; - firstNumber = [self parse:firstNumberIn defaultRegion:UNKNOWN_REGION_ error:&anError]; - if (anError != nil) { - if ([anError.domain isEqualToString:@"INVALID_COUNTRY_CODE"] == NO) - { - return NBEMatchTypeNOT_A_NUMBER; - } - // The first number has no country calling code. EXACT_MATCH is no longer - // possible. We parse it as if the region was the same as that for the - // second number, and if EXACT_MATCH is returned, we replace this with - // NSN_MATCH. - if ([secondNumberIn isKindOfClass:[NSString class]] == NO) - { - NSString *secondNumberRegion = [self getRegionCodeForCountryCode:((NBPhoneNumber*)secondNumberIn).countryCode]; - if (secondNumberRegion != UNKNOWN_REGION_) - { - NSError *aNestedError; - firstNumber = [self parse:firstNumberIn defaultRegion:secondNumberRegion error:&aNestedError]; - if (aNestedError != nil) - return NBEMatchTypeNOT_A_NUMBER; - - NBEMatchType match = [self isNumberMatch:firstNumber second:secondNumberIn]; - if (match == NBEMatchTypeEXACT_MATCH) - { - return NBEMatchTypeNSN_MATCH; - } - return match; - } - } - // If the second number is a string or doesn't have a valid country - // calling code, we parse the first number without country calling code. - NSError *aNestedError; - firstNumber = [self parseHelper:firstNumberIn defaultRegion:nil keepRawInput:NO checkRegion:NO error:&aNestedError]; - if (aNestedError != nil) { - return NBEMatchTypeNOT_A_NUMBER; - } - } - } else { - firstNumber = [firstNumberIn copy]; - } - - if ([secondNumberIn isKindOfClass:[NSString class]]) { - NSError *parseError; - secondNumber = [self parse:secondNumberIn defaultRegion:UNKNOWN_REGION_ error:&parseError]; - if (parseError != nil) { - if ([parseError.domain isEqualToString:@"INVALID_COUNTRY_CODE"] == NO) { - return NBEMatchTypeNOT_A_NUMBER; - } - return [self isNumberMatch:secondNumberIn second:firstNumber]; - } else { - return [self isNumberMatch:firstNumberIn second:secondNumber]; - } - } - else { - secondNumber = [secondNumberIn copy]; - } - - // First clear raw_input, country_code_source and - // preferred_domestic_carrier_code fields and any empty-string extensions so - // that we can use the proto-buffer equality method. - firstNumber.rawInput = @""; - [firstNumber clearCountryCodeSource]; - firstNumber.PreferredDomesticCarrierCode = @""; - - secondNumber.rawInput = @""; - [secondNumber clearCountryCodeSource]; - secondNumber.PreferredDomesticCarrierCode = @""; - - if (firstNumber.extension != nil && firstNumber.extension.length == 0) { - firstNumber.extension = nil; - } - - if (secondNumber.extension != nil && secondNumber.extension.length == 0) { - secondNumber.extension = nil; - } - - // Early exit if both had extensions and these are different. - if ([NBMetadataHelper hasValue:firstNumber.extension] && [NBMetadataHelper hasValue:secondNumber.extension] && - [firstNumber.extension isEqualToString:secondNumber.extension] == NO) { - return NBEMatchTypeNO_MATCH; - } - - NSNumber *firstNumberCountryCode = firstNumber.countryCode; - NSNumber *secondNumberCountryCode = secondNumber.countryCode; - - // Both had country_code specified. - if (![firstNumberCountryCode isEqualToNumber:@0] && ![secondNumberCountryCode isEqualToNumber:@0]) { - if ([firstNumber isEqual:secondNumber]) { - return NBEMatchTypeEXACT_MATCH; - } - else if ([firstNumberCountryCode isEqualToNumber:secondNumberCountryCode] && [self isNationalNumberSuffixOfTheOther:firstNumber second:secondNumber]) - { - // A SHORT_NSN_MATCH occurs if there is a difference because of the - // presence or absence of an 'Italian leading zero', the presence or - // absence of an extension, or one NSN being a shorter variant of the - // other. - return NBEMatchTypeSHORT_NSN_MATCH; - } - // This is not a match. - return NBEMatchTypeNO_MATCH; - } - // Checks cases where one or both country_code fields were not specified. To - // make equality checks easier, we first set the country_code fields to be - // equal. - firstNumber.countryCode = @0; - secondNumber.countryCode = @0; - // If all else was the same, then this is an NSN_MATCH. - if ([firstNumber isEqual:secondNumber]) { - return NBEMatchTypeNSN_MATCH; - } - - if ([self isNationalNumberSuffixOfTheOther:firstNumber second:secondNumber]) { - return NBEMatchTypeSHORT_NSN_MATCH; - } - return NBEMatchTypeNO_MATCH; -} - - -/** - * Returns NO when one national number is the suffix of the other or both are - * the same. - * - * @param {i18n.phonenumbers.PhoneNumber} firstNumber the first PhoneNumber - * object. - * @param {i18n.phonenumbers.PhoneNumber} secondNumber the second PhoneNumber - * object. - * @return {boolean} NO if one PhoneNumber is the suffix of the other one. - * @private - */ -- (BOOL)isNationalNumberSuffixOfTheOther:(NBPhoneNumber*)firstNumber second:(NBPhoneNumber*)secondNumber -{ - NSString *firstNumberNationalNumber = [NSString stringWithFormat:@"%@", firstNumber.nationalNumber]; - NSString *secondNumberNationalNumber = [NSString stringWithFormat:@"%@", secondNumber.nationalNumber]; - - // Note that endsWith returns NO if the numbers are equal. - return [firstNumberNationalNumber hasSuffix:secondNumberNationalNumber] || - [secondNumberNationalNumber hasSuffix:firstNumberNationalNumber]; -} - - -/** - * Returns NO if the number can be dialled from outside the region, or - * unknown. If the number can only be dialled from within the region, returns - * NO. Does not check the number is a valid number. - * TODO: Make this method public when we have enough metadata to make it - * worthwhile. Currently visible for testing purposes only. - * - * @param {i18n.phonenumbers.PhoneNumber} number the phone-number for which we - * want to know whether it is diallable from outside the region. - * @return {boolean} NO if the number can only be dialled from within the - * country. - */ -- (BOOL)canBeInternationallyDialled:(NBPhoneNumber*)number error:(NSError**)error -{ - BOOL res = NO; - @try { - res = [self canBeInternationallyDialled:number]; - } - @catch (NSException *exception) { - NSDictionary *userInfo = [NSDictionary dictionaryWithObject:exception.reason - forKey:NSLocalizedDescriptionKey]; - if (error != NULL) - (*error) = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo]; - } - return res; -} - -- (BOOL)canBeInternationallyDialled:(NBPhoneNumber*)number -{ - NBPhoneMetaData *metadata = [NBMetadataHelper getMetadataForRegion:[self getRegionCodeForNumber:number]]; - if (metadata == nil) { - // Note numbers belonging to non-geographical entities (e.g. +800 numbers) - // are always internationally diallable, and will be caught here. - return YES; - } - NSString *nationalSignificantNumber = [self getNationalSignificantNumber:number]; - return [self isNumberMatchingDesc:nationalSignificantNumber numberDesc:metadata.noInternationalDialling] == NO; -} - - -/** - * Check whether the entire input sequence can be matched against the regular - * expression. - * - * @param {!RegExp|string} regex the regular expression to match against. - * @param {string} str the string to test. - * @return {boolean} NO if str can be matched entirely against regex. - * @private - */ -- (BOOL)matchesEntirely:(NSString*)regex string:(NSString*)str -{ - if ([regex isEqualToString:@"NA"]) - { - return NO; - } - - NSError *error = nil; - NSRegularExpression *currentPattern = [self entireRegularExpressionWithPattern:regex options:0 error:&error]; - NSRange stringRange = NSMakeRange(0, str.length); - NSTextCheckingResult *matchResult = [currentPattern firstMatchInString:str options:NSMatchingAnchored range:stringRange]; - - if (matchResult != nil) { - BOOL matchIsEntireString = NSEqualRanges(matchResult.range, stringRange); - if (matchIsEntireString) - { - return YES; - } - } - - return NO; -} - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h deleted file mode 100755 index cf286ee..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// NSArray+NBAdditions.h -// libPhoneNumber -// -// Created by Frane Bandov on 04.10.13. -// - -#import - - -@interface NSArray (NBAdditions) - -- (id)safeObjectAtIndex:(NSUInteger)index; - -@end diff --git a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m b/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m deleted file mode 100755 index 3332973..0000000 --- a/iosApp/Pods/libPhoneNumber-iOS/libPhoneNumber/NSArray+NBAdditions.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// NSArray+NBAdditions.m -// libPhoneNumber -// -// Created by Frane Bandov on 04.10.13. -// - -#import "NSArray+NBAdditions.h" - - -@implementation NSArray (NBAdditions) - -- (id)safeObjectAtIndex:(NSUInteger)index -{ - @synchronized(self) - { - if(index >= [self count]) return nil; - - id res = [self objectAtIndex:index]; - - if (res == nil || (NSNull*)res == [NSNull null]) - return nil; - - return res; - } -} - -@end diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index c521942..54a6af1 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -10,20 +10,20 @@ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; + 3BC64D771718E107DD1E735E /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CAA88294B80F3B29D92584 /* Pods_iosApp.framework */; }; 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; - 94DCDBA55F2E29FD12EDA3EF /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 771DFA73C620997C79BB711C /* Pods_iosApp.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 00CAA88294B80F3B29D92584 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 39F6ECA13CFBE6E4AB5D6D7A /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - 58B9A344308011FB9CD22BC5 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 25B405ABF374A15F8E5B4AB9 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + 68D6FAFB1EF17F55108A395D /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 7555FF7B242A565900829871 /* MultiplatformContacts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultiplatformContacts.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 771DFA73C620997C79BB711C /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; /* End PBXFileReference section */ @@ -32,7 +32,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 94DCDBA55F2E29FD12EDA3EF /* Pods_iosApp.framework in Frameworks */, + 3BC64D771718E107DD1E735E /* Pods_iosApp.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -47,21 +47,12 @@ path = "Preview Content"; sourceTree = ""; }; - 3174111F6710204F57BA6A98 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 771DFA73C620997C79BB711C /* Pods_iosApp.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 752B2644E372C606A66E1C63 /* Pods */ = { isa = PBXGroup; children = ( - 39F6ECA13CFBE6E4AB5D6D7A /* Pods-iosApp.debug.xcconfig */, - 58B9A344308011FB9CD22BC5 /* Pods-iosApp.release.xcconfig */, + 25B405ABF374A15F8E5B4AB9 /* Pods-iosApp.debug.xcconfig */, + 68D6FAFB1EF17F55108A395D /* Pods-iosApp.release.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -72,7 +63,7 @@ 7555FF7D242A565900829871 /* iosApp */, 7555FF7C242A565900829871 /* Products */, 752B2644E372C606A66E1C63 /* Pods */, - 3174111F6710204F57BA6A98 /* Frameworks */, + 7E26B6E3184EEC13FCC396CF /* Frameworks */, ); sourceTree = ""; }; @@ -96,6 +87,14 @@ path = iosApp; sourceTree = ""; }; + 7E26B6E3184EEC13FCC396CF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 00CAA88294B80F3B29D92584 /* Pods_iosApp.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; AB1DB47929225F7C00F7AF9C /* Configuration */ = { isa = PBXGroup; children = ( @@ -111,13 +110,12 @@ isa = PBXNativeTarget; buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; buildPhases = ( - DC563CEBAF260E6AF97BBFAD /* [CP] Check Pods Manifest.lock */, + CA9BC957D94B7CFEA119161D /* [CP] Check Pods Manifest.lock */, F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, - 21716FF7C9338C9E399F7EBB /* [CP] Embed Pods Frameworks */, - 76573713339202C195B8CBCC /* [CP] Copy Pods Resources */, + BD288948CCDD4E6F88229AEA /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -174,24 +172,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 21716FF7C9338C9E399F7EBB /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 76573713339202C195B8CBCC /* [CP] Copy Pods Resources */ = { + BD288948CCDD4E6F88229AEA /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -208,7 +189,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; showEnvVarsInLog = 0; }; - DC563CEBAF260E6AF97BBFAD /* [CP] Check Pods Manifest.lock */ = { + CA9BC957D94B7CFEA119161D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -315,7 +296,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.3; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -371,7 +352,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.3; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -383,7 +364,7 @@ }; 7555FFA6242A565B00829871 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 39F6ECA13CFBE6E4AB5D6D7A /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = 25B405ABF374A15F8E5B4AB9 /* Pods-iosApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -391,9 +372,11 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = 9Z5F72MRRD; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.3; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -413,7 +396,7 @@ }; 7555FFA7242A565B00829871 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 58B9A344308011FB9CD22BC5 /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = 68D6FAFB1EF17F55108A395D /* Pods-iosApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -421,9 +404,11 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = "${TEAM_ID}"; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); INFOPLIST_FILE = iosApp/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.3; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index b9bc81e..801d8ee 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -32,14 +32,14 @@ kotlin { isStatic = true } // Must define the pods that are in the Podfile (Is this just the way it works?) - pod("PhoneNumberKit") { - version ="3.7" - extraOpts += listOf("-compiler-option", "-fmodules") - } - pod("libPhoneNumber-iOS") { - version ="0.8" - extraOpts += listOf("-compiler-option", "-fmodules") - } +// pod("PhoneNumberKit") { +// version ="3.7" +// extraOpts += listOf("-compiler-option", "-fmodules") +// } +// pod("libPhoneNumber-iOS") { +// version ="0.8" +// extraOpts += listOf("-compiler-option", "-fmodules") +// } } sourceSets { diff --git a/multiplatformContact/multiplatformContact.podspec b/multiplatformContact/multiplatformContact.podspec index c39cc21..f3500a4 100644 --- a/multiplatformContact/multiplatformContact.podspec +++ b/multiplatformContact/multiplatformContact.podspec @@ -9,8 +9,7 @@ Pod::Spec.new do |spec| spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework' spec.libraries = 'c++' spec.ios.deployment_target = '14.0' - spec.dependency 'PhoneNumberKit', '3.7' - spec.dependency 'libPhoneNumber-iOS', '0.8' + if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') raise " diff --git a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt index 47d89c5..787ee56 100644 --- a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt @@ -2,9 +2,6 @@ package multiContacts import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import cocoapods.libPhoneNumber_iOS.NBEPhoneNumberFormatE164 -import cocoapods.libPhoneNumber_iOS.NBPhoneNumber -import cocoapods.libPhoneNumber_iOS.NBPhoneNumberUtil import kotlinx.cinterop.ExperimentalForeignApi import platform.Contacts.CNContact import platform.ContactsUI.CNContactPickerDelegateProtocol @@ -27,20 +24,20 @@ actual fun pickMultiplatformContacts( countryISOCode: String, onResult: ContactPickedCallback ): Launcher { - val phoneUtil = NBPhoneNumberUtil() - try { - val parsedNumber: NBPhoneNumber? = phoneUtil.parse("0003455", "KE",null) - // Check if parsedNumber is null before formatting - if (parsedNumber != null) { - val formattedString: String? = phoneUtil.format(parsedNumber, NBEPhoneNumberFormatE164,null) - println("Formatted phone number: $formattedString") - } else { - println("Parsed number is null.") - } - - } catch (e: Exception) { - println("Exception occurred: $e") - } +// val phoneUtil = NBPhoneNumberUtil() +// try { +// val parsedNumber: NBPhoneNumber? = phoneUtil.parse("0003455", "KE",null) +// // Check if parsedNumber is null before formatting +// if (parsedNumber != null) { +// val formattedString: String? = phoneUtil.format(parsedNumber, NBEPhoneNumberFormatE164,null) +// println("Formatted phone number: $formattedString") +// } else { +// println("Parsed number is null.") +// } +// +// } catch (e: Exception) { +// println("Exception occurred: $e") +// } val launcherCustom = remember { Launcher(onLaunch = { diff --git a/sample/ios/iosApp.xcodeproj/project.pbxproj b/sample/ios/iosApp.xcodeproj/project.pbxproj index cb67973..628dee4 100644 --- a/sample/ios/iosApp.xcodeproj/project.pbxproj +++ b/sample/ios/iosApp.xcodeproj/project.pbxproj @@ -174,7 +174,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :sample:common:embedAndSignAppleFrameworkForXcode\n"; + shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :sample:common:embedAndSignAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ From afdb731bd114dae70e29f5d30cb45e38d6b9fa34 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Wed, 5 Mar 2025 16:40:54 +0300 Subject: [PATCH 5/7] kotlin version bump --- ...rmContact-appleMain.cinteropLibraries.json | 12 ++ ...rmContact-appleTest.cinteropLibraries.json | 12 ++ ...formContact-iosMain.cinteropLibraries.json | 12 ++ ...formContact-iosTest.cinteropLibraries.json | 12 ++ ...mContact-nativeMain.cinteropLibraries.json | 12 ++ ...mContact-nativeTest.cinteropLibraries.json | 12 ++ ...le.common-appleMain.cinteropLibraries.json | 12 ++ ...le.common-appleTest.cinteropLibraries.json | 12 ++ ...mple.common-iosMain.cinteropLibraries.json | 12 ++ ...mple.common-iosTest.cinteropLibraries.json | 12 ++ ...e.common-nativeMain.cinteropLibraries.json | 12 ++ ...e.common-nativeTest.cinteropLibraries.json | 12 ++ ...ose.ui_ui-uikit-cinterop-utils-aNVDjg.klib | Bin 0 -> 7825 bytes ...linx_atomicfu-cinterop-interop-yBS35w.klib | Bin 0 -> 2561 bytes ...ecycle-common-2.8.3-commonMain-FPlmfg.klib | Bin 0 -> 4056 bytes ...ecycle-common-2.8.3-nonJvmMain-FPlmfg.klib | Bin 0 -> 2647 bytes ...cycle-runtime-2.8.3-commonMain-P_jWsA.klib | Bin 0 -> 3416 bytes ...cycle-runtime-2.8.3-nativeMain-P_jWsA.klib | Bin 0 -> 3808 bytes ...cycle-runtime-2.8.3-nonJvmMain-P_jWsA.klib | Bin 0 -> 3587 bytes ...ntime-compose-2.8.3-commonMain-eB6IaQ.klib | Bin 0 -> 4432 bytes ...e-compose-2.8.3-nonAndroidMain-eB6IaQ.klib | Bin 0 -> 2800 bytes ...cle-viewmodel-2.8.3-commonMain-I44vqw.klib | Bin 0 -> 8384 bytes ...cle-viewmodel-2.8.3-nativeMain-I44vqw.klib | Bin 0 -> 5158 bytes ...cle-viewmodel-2.8.3-nonJvmMain-I44vqw.klib | Bin 0 -> 5232 bytes ...ion-animation-1.7.0-commonMain-TojQLQ.klib | Bin 0 -> 17265 bytes ...n-animation-1.7.0-jsNativeMain-TojQLQ.klib | Bin 0 -> 3340 bytes ...ion-animation-1.7.0-nativeMain-RuOUtg.klib | Bin 0 -> 3858 bytes ...nimation-core-1.7.0-commonMain-KAIxIA.klib | Bin 0 -> 26464 bytes ...on-animation-core-1.7.0-jbMain-KAIxIA.klib | Bin 0 -> 3429 bytes ...mation-core-1.7.0-jsNativeMain-KAIxIA.klib | Bin 0 -> 4021 bytes ...animation-core-1.7.0-uikitMain-uWuQcA.klib | Bin 0 -> 4986 bytes ...al-annotation-1.7.0-commonMain-BD0V2w.klib | Bin 0 -> 4020 bytes ...al-annotation-1.7.0-nonJvmMain-BD0V2w.klib | Bin 0 -> 2678 bytes ...al-collection-1.7.0-commonMain-5apXgA.klib | Bin 0 -> 27272 bytes ...ternal-collection-1.7.0-jbMain-5apXgA.klib | Bin 0 -> 4585 bytes ...-collection-1.7.0-jsNativeMain-5apXgA.klib | Bin 0 -> 2815 bytes ...s-resources-1.7.0-blockingMain-Tn2Qyw.klib | Bin 0 -> 3410 bytes ...nts-resources-1.7.0-commonMain-Tn2Qyw.klib | Bin 0 -> 13405 bytes ...onents-resources-1.7.0-iosMain-mlvQUA.klib | Bin 0 -> 4142 bytes ...nts-resources-1.7.0-nativeMain-mlvQUA.klib | Bin 0 -> 6576 bytes ...ents-resources-1.7.0-skikoMain-Tn2Qyw.klib | Bin 0 -> 5700 bytes ...oling-preview-1.7.0-commonMain--i3iSw.klib | Bin 0 -> 4651 bytes ...on-foundation-1.7.0-commonMain-Z4pWpg.klib | Bin 0 -> 163407 bytes ...on-foundation-1.7.0-darwinMain-qEodUw.klib | Bin 0 -> 4196 bytes ...-foundation-1.7.0-jsNativeMain-Z4pWpg.klib | Bin 0 -> 7099 bytes ...on-foundation-1.7.0-nativeMain-qEodUw.klib | Bin 0 -> 8083 bytes ...ion-foundation-1.7.0-skikoMain-Z4pWpg.klib | Bin 0 -> 25929 bytes ...ion-foundation-1.7.0-uikitMain-qEodUw.klib | Bin 0 -> 15085 bytes ...dation-layout-1.7.0-commonMain-Nkt8ew.klib | Bin 0 -> 24909 bytes ...tion-layout-1.7.0-jsNativeMain-Nkt8ew.klib | Bin 0 -> 3955 bytes ...ndation-layout-1.7.0-skikoMain-Nkt8ew.klib | Bin 0 -> 3632 bytes ...ndation-layout-1.7.0-uikitMain-GYqBaA.klib | Bin 0 -> 4477 bytes ...rial-material-1.7.0-commonMain-G6kTFA.klib | Bin 0 -> 47555 bytes ...al-material-1.7.0-jsNativeMain-G6kTFA.klib | Bin 0 -> 4005 bytes ...rial-material-1.7.0-nativeMain-hgkVgQ.klib | Bin 0 -> 4385 bytes ...erial-material-1.7.0-skikoMain-G6kTFA.klib | Bin 0 -> 5894 bytes ...al-icons-core-1.7.0-commonMain-OY6u5w.klib | Bin 0 -> 21037 bytes ...terial-ripple-1.7.0-commonMain-hYj_-Q.klib | Bin 0 -> 7567 bytes ...l-material-ripple-1.7.0-jbMain-hYj_-Q.klib | Bin 0 -> 3842 bytes ...al3-material3-1.7.0-commonMain-HpF0Ww.klib | Bin 0 -> 107840 bytes ...al3-material3-1.7.0-darwinMain-Kuw-mA.klib | Bin 0 -> 5128 bytes ...3-material3-1.7.0-jsNativeMain-HpF0Ww.klib | Bin 0 -> 3373 bytes ...al3-material3-1.7.0-nativeMain-Kuw-mA.klib | Bin 0 -> 4234 bytes ...al3-material3-1.7.0-nonJvmMain-HpF0Ww.klib | Bin 0 -> 3474 bytes ...ial3-material3-1.7.0-skikoMain-HpF0Ww.klib | Bin 0 -> 11233 bytes ...ntime-runtime-1.7.0-commonMain-9pDeVQ.klib | Bin 0 -> 95905 bytes ...ntime-runtime-1.7.0-darwinMain-bWTFyg.klib | Bin 0 -> 3659 bytes ...e.runtime-runtime-1.7.0-jbMain-9pDeVQ.klib | Bin 0 -> 4531 bytes ...ime-runtime-1.7.0-jsNativeMain-9pDeVQ.klib | Bin 0 -> 5609 bytes ...ntime-runtime-1.7.0-nativeMain-9pDeVQ.klib | Bin 0 -> 5906 bytes ...untime-runtime-1.7.0-posixMain-9pDeVQ.klib | Bin 0 -> 4721 bytes ...untime-runtime-1.7.0-uikitMain-bWTFyg.klib | Bin 0 -> 3684 bytes ...time-saveable-1.7.0-commonMain-dToAUQ.klib | Bin 0 -> 5671 bytes ...compose.ui-ui-1.7.0-commonMain-byxhLA.klib | Bin 0 -> 124544 bytes ...compose.ui-ui-1.7.0-darwinMain-yJ1uLw.klib | Bin 0 -> 5941 bytes ...mpose.ui-ui-1.7.0-jsNativeMain-byxhLA.klib | Bin 0 -> 8594 bytes ...compose.ui-ui-1.7.0-nativeMain-yJ1uLw.klib | Bin 0 -> 5989 bytes ....compose.ui-ui-1.7.0-skikoMain-byxhLA.klib | Bin 0 -> 43296 bytes ....compose.ui-ui-1.7.0-uikitMain-yJ1uLw.klib | Bin 0 -> 41274 bytes ...i-ui-geometry-1.7.0-commonMain-CwQ9Eg.klib | Bin 0 -> 6295 bytes ...i-ui-graphics-1.7.0-commonMain-nWZcXg.klib | Bin 0 -> 38175 bytes ...ui-graphics-1.7.0-jsNativeMain-nWZcXg.klib | Bin 0 -> 3835 bytes ...i-ui-graphics-1.7.0-nativeMain-aqjVUg.klib | Bin 0 -> 4196 bytes ...cs-1.7.0-skikoExcludingWebMain-nWZcXg.klib | Bin 0 -> 3260 bytes ...ui-ui-graphics-1.7.0-skikoMain-nWZcXg.klib | Bin 0 -> 11205 bytes ...se.ui-ui-text-1.7.0-commonMain-22Ga_g.klib | Bin 0 -> 41036 bytes ...se.ui-ui-text-1.7.0-darwinMain-soKQsQ.klib | Bin 0 -> 6432 bytes ....ui-ui-text-1.7.0-jsNativeMain-22Ga_g.klib | Bin 0 -> 4877 bytes ...se.ui-ui-text-1.7.0-nativeMain-soKQsQ.klib | Bin 0 -> 7106 bytes ...ose.ui-ui-text-1.7.0-skikoMain-22Ga_g.klib | Bin 0 -> 19530 bytes ...se.ui-ui-uikit-1.7.0-uikitMain-aNVDjg.klib | Bin 0 -> 4500 bytes ...se.ui-ui-unit-1.7.0-commonMain-pR3KgA.klib | Bin 0 -> 9302 bytes ...ompose.ui-ui-unit-1.7.0-jbMain-pR3KgA.klib | Bin 0 -> 3140 bytes ....ui-ui-unit-1.7.0-jsNativeMain-pR3KgA.klib | Bin 0 -> 3780 bytes ...se.ui-ui-util-1.7.0-commonMain-3-t5Ow.klib | Bin 0 -> 4977 bytes ...se.ui-ui-util-1.7.0-nonJvmMain-3-t5Ow.klib | Bin 0 -> 3265 bytes ...ose.ui-ui-util-1.7.0-uikitMain-V6MLCQ.klib | Bin 0 -> 4249 bytes ...otlin-stdlib-2.0.20-commonMain-WPEnbA.klib | Bin 0 -> 144473 bytes ...inx-atomicfu-0.23.2-commonMain-yBS35w.klib | Bin 0 -> 6341 bytes ...inx-atomicfu-0.23.2-nativeMain-yBS35w.klib | Bin 0 -> 6067 bytes ...routines-core-1.8.0-commonMain-UxhG-g.klib | Bin 0 -> 65231 bytes ...ines-core-1.8.0-concurrentMain-UxhG-g.klib | Bin 0 -> 6558 bytes ...es-core-1.8.0-nativeDarwinMain-sy5nKg.klib | Bin 0 -> 4369 bytes ...routines-core-1.8.0-nativeMain-UxhG-g.klib | Bin 0 -> 10838 bytes ...linx-datetime-0.6.0-commonMain-v1Leig.klib | Bin 0 -> 31651 bytes ...linx-datetime-0.6.0-darwinMain-O4UcJA.klib | Bin 0 -> 3998 bytes ...linx-datetime-0.6.0-nativeMain-v1Leig.klib | Bin 0 -> 11202 bytes ...ime-0.6.0-tzdbOnFilesystemMain-v1Leig.klib | Bin 0 -> 4537 bytes ...linx-datetime-0.6.0-tzfileMain-v1Leig.klib | Bin 0 -> 4903 bytes ...lization-core-1.6.2-commonMain-0z2eOA.klib | Bin 0 -> 31859 bytes ...lization-core-1.6.2-nativeMain-0z2eOA.klib | Bin 0 -> 4457 bytes ....skiko-skiko-0.8.15-commonMain-7tIhOQ.klib | Bin 0 -> 98409 bytes ....skiko-skiko-0.8.15-darwinMain-SvRtdQ.klib | Bin 0 -> 5362 bytes ...ins.skiko-skiko-0.8.15-iosMain-SvRtdQ.klib | Bin 0 -> 4613 bytes ...kiko-skiko-0.8.15-nativeJsMain-7tIhOQ.klib | Bin 0 -> 6421 bytes ....skiko-skiko-0.8.15-nativeMain-7tIhOQ.klib | Bin 0 -> 9293 bytes ...s.skiko-skiko-0.8.15-uikitMain-SvRtdQ.klib | Bin 0 -> 6499 bytes build.gradle.kts | 1 + gradle/libs.versions.toml | 11 +- iosApp/Podfile.lock | 2 +- .../multiplatformContact.podspec.json | 5 +- iosApp/Pods/Manifest.lock | 2 +- iosApp/Pods/Pods.xcodeproj/project.pbxproj | 62 +++--- ...pp-frameworks-Debug-input-files.xcfilelist | 2 + ...p-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 2 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-iosApp/Pods-iosApp-frameworks.sh | 186 ++++++++++++++++++ ...App-resources-Debug-input-files.xcfilelist | 2 +- ...p-resources-Release-input-files.xcfilelist | 2 +- .../Pods-iosApp/Pods-iosApp-resources.sh | 4 +- .../Pods-iosApp/Pods-iosApp.debug.xcconfig | 1 + .../Pods-iosApp/Pods-iosApp.release.xcconfig | 1 + .../multiplatformContact.debug.xcconfig | 1 + .../multiplatformContact.release.xcconfig | 1 + iosApp/iosApp.xcodeproj/project.pbxproj | 40 ++-- multiplatformContact/build.gradle.kts | 1 + .../multiplatformContact.podspec | 8 +- .../src/androidMain/kotlin/Time.kt | 33 ---- .../src/commonMain/kotlin/Time.kt | 7 - .../src/iosMain/kotlin/Time.kt | 21 -- sample/android/build.gradle.kts | 1 + sample/common/build.gradle.kts | 1 + settings.gradle.kts | 2 +- 144 files changed, 415 insertions(+), 130 deletions(-) create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleMain.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleTest.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosMain.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosTest.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeMain.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeTest.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleMain.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleTest.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosMain.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosTest.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeMain.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeTest.cinteropLibraries.json create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib create mode 100644 .kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-common-2.8.3-commonMain-FPlmfg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-common-2.8.3-nonJvmMain-FPlmfg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-commonMain-P_jWsA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-nativeMain-P_jWsA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-nonJvmMain-P_jWsA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-compose-2.8.3-commonMain-eB6IaQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-compose-2.8.3-nonAndroidMain-eB6IaQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-viewmodel-2.8.3-commonMain-I44vqw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-viewmodel-2.8.3-nativeMain-I44vqw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-viewmodel-2.8.3-nonJvmMain-I44vqw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-commonMain-TojQLQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-jsNativeMain-TojQLQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-nativeMain-RuOUtg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-commonMain-KAIxIA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-jbMain-KAIxIA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-jsNativeMain-KAIxIA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-uikitMain-uWuQcA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.annotation-internal-annotation-1.7.0-commonMain-BD0V2w.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.annotation-internal-annotation-1.7.0-nonJvmMain-BD0V2w.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-commonMain-5apXgA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-jbMain-5apXgA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-jsNativeMain-5apXgA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-blockingMain-Tn2Qyw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-commonMain-Tn2Qyw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-iosMain-mlvQUA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-nativeMain-mlvQUA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-skikoMain-Tn2Qyw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-ui-tooling-preview-1.7.0-commonMain--i3iSw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-commonMain-Z4pWpg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-darwinMain-qEodUw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-jsNativeMain-Z4pWpg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-nativeMain-qEodUw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-skikoMain-Z4pWpg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-uikitMain-qEodUw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-layout-1.7.0-commonMain-Nkt8ew.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-layout-1.7.0-jsNativeMain-Nkt8ew.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-layout-1.7.0-skikoMain-Nkt8ew.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-layout-1.7.0-uikitMain-GYqBaA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-commonMain-G6kTFA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-jsNativeMain-G6kTFA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-nativeMain-hgkVgQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-skikoMain-G6kTFA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-icons-core-1.7.0-commonMain-OY6u5w.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-ripple-1.7.0-commonMain-hYj_-Q.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-ripple-1.7.0-jbMain-hYj_-Q.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-commonMain-HpF0Ww.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-darwinMain-Kuw-mA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-jsNativeMain-HpF0Ww.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-nativeMain-Kuw-mA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-nonJvmMain-HpF0Ww.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-skikoMain-HpF0Ww.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-commonMain-9pDeVQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-darwinMain-bWTFyg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-jbMain-9pDeVQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-jsNativeMain-9pDeVQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-nativeMain-9pDeVQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-posixMain-9pDeVQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-uikitMain-bWTFyg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-saveable-1.7.0-commonMain-dToAUQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-commonMain-byxhLA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-darwinMain-yJ1uLw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-jsNativeMain-byxhLA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-nativeMain-yJ1uLw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-skikoMain-byxhLA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-uikitMain-yJ1uLw.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-geometry-1.7.0-commonMain-CwQ9Eg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-commonMain-nWZcXg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-jsNativeMain-nWZcXg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-nativeMain-aqjVUg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-skikoExcludingWebMain-nWZcXg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-skikoMain-nWZcXg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-commonMain-22Ga_g.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-darwinMain-soKQsQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-jsNativeMain-22Ga_g.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-nativeMain-soKQsQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-skikoMain-22Ga_g.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-aNVDjg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-commonMain-pR3KgA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-jbMain-pR3KgA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-jsNativeMain-pR3KgA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-commonMain-3-t5Ow.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-nonJvmMain-3-t5Ow.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-uikitMain-V6MLCQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlin-kotlin-stdlib-2.0.20-commonMain-WPEnbA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-commonMain-yBS35w.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-yBS35w.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-commonMain-UxhG-g.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-concurrentMain-UxhG-g.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-nativeDarwinMain-sy5nKg.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-nativeMain-UxhG-g.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-commonMain-v1Leig.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-darwinMain-O4UcJA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-nativeMain-v1Leig.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-tzdbOnFilesystemMain-v1Leig.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-tzfileMain-v1Leig.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-serialization-core-1.6.2-commonMain-0z2eOA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-serialization-core-1.6.2-nativeMain-0z2eOA.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-commonMain-7tIhOQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-darwinMain-SvRtdQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-iosMain-SvRtdQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-nativeJsMain-7tIhOQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-nativeMain-7tIhOQ.klib create mode 100644 .kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-uikitMain-SvRtdQ.klib create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist create mode 100644 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist create mode 100755 iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh delete mode 100644 multiplatformContact/src/androidMain/kotlin/Time.kt delete mode 100644 multiplatformContact/src/commonMain/kotlin/Time.kt delete mode 100644 multiplatformContact/src/iosMain/kotlin/Time.kt diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleMain.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleMain.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleMain.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleTest.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleTest.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-appleTest.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosMain.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosMain.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosMain.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosTest.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosTest.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-iosTest.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeMain.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeMain.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeMain.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeTest.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeTest.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.multiplatformContact-nativeTest.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleMain.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleMain.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleMain.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleTest.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleTest.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-appleTest.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosMain.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosMain.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosMain.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosTest.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosTest.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-iosTest.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeMain.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeMain.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeMain.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeTest.cinteropLibraries.json b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeTest.cinteropLibraries.json new file mode 100644 index 0000000..761b053 --- /dev/null +++ b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/.sample.common-nativeTest.cinteropLibraries.json @@ -0,0 +1,12 @@ +[ + { + "moduleId": "org.jetbrains.kotlinx:atomicfu:0.23.2", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib", + "sourceSetName": "nativeMain" + }, + { + "moduleId": "org.jetbrains.compose.ui:ui-uikit:1.7.0", + "file": "/Users/admin/StudioProjects/MultiplatformContacts/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib", + "sourceSetName": "uikitMain" + } +] \ No newline at end of file diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-cinterop/org.jetbrains.compose.ui_ui-uikit-cinterop-utils-aNVDjg.klib new file mode 100644 index 0000000000000000000000000000000000000000..ecdd3fbde2d3c32cfd2a859f0dbd936ed6e344d4 GIT binary patch literal 7825 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib b/.kotlin/metadata/kotlinTransformedCInteropMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-nativeMain-cinterop/org.jetbrains.kotlinx_atomicfu-cinterop-interop-yBS35w.klib new file mode 100644 index 0000000000000000000000000000000000000000..c352e56133b1ddc2f46af802c63942dd687e2f8e GIT binary patch literal 2561 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+2roqRCwwgFGu`>HM(^9IvtTQqhtTJhXqdvhuH;$;Tsi4y&* zRV$}Vsi^*SvM@*6vFLX1AJ?uc>Or|H?{oh`K#s|YFWxV1IpKSS)UKHtFQa{ z?^kF>{@U^{;ycTNYn60G-p z=Y_VOX)&+-Z)NbW3avUP_ja+@I!l?gJLdQIKYRMty^zCZ#ftjAjXOUc(mu!Y&hv3= zMdjlq&%M3U75kr!w*x%nxjIjQiJ^4Mt0Nqw*Dr@eGNwY<)p(Y|*2oc_s^XI5|U(m8qltdF1e zRo`=Gv^{lC>0fBQROZDK#S``>Kn|Qv%{gP3%z^3D0f=#XM-iJN3KEmE6Vp@UGxJJP zi}DM|^PV0tCL6%)(96!th5NcR_-x)~2ZfsKW634_Y^0h_4=>mh0 z_zJJ?9j&38beEl5xAoqX1I!ns&mS=UdPO{QTzJC zTGP!NYt?yv9FOPXEZNBNAx6xtuXU<$hEHl_moewx$w6hO->j}F{`KRB=l{6y+3QYh zHs1PZrq)`K$?OhOH{5Jxc{XXviG@FJX|`WuFnv_q`ZfF%(^{@%4(*~u|E)8f0$v!+ zc3!w`=TMiUR0rw-+uxS|0Fl&tsW$`TFMNvQ>JUAC*sw{j+4+yL;?@RVfeNK5pOKZ+viO zjPu&*8&21oM5bmkNJe>~iE>Yphk9 zUntgk-LL=sPQJ9FsU~~=r)bedbsMe(KlvEcAO1^JVB21f{Qug2mT-OlCw}i?d2q*H ziTjf)n&*~wig>#icE4`QY9l=#V@^p7D_L9IpWpwz0Q37J{$oyw^xkClID z&9E~1ENY>sl_|cg`hM;6*hr%qfe+VjJqa>B5FR8M_=+i^ZvUC=K;0w4KXw-cOJ7X! zvghLXUz4WrV%hAngU`3`vTk^MdYQn|I~=LgeoobEtqBuvZF%`1L@QI_%-5{Bp{0Q@ zE*(g*xS2OA{6Jki$GzCo)w+zEZP#fhZOuBI!6+j8VMjBIgt|xaakX_{^{TFIw|X^Y z!F}!b#V<+RGUrl)m9U6)&y zC3Cmh9?=zf=;mTCq|q%wPCuxYEM+Ca672aD-4c+?VIc%ciU=Udj<5tv!VK_cWdkYZ0K#@q KU;>phFaQ7}0HMb4LuaqP)B2>y*QuxUoMas_+ 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-commonMain-P_jWsA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-commonMain-P_jWsA.klib new file mode 100644 index 0000000000000000000000000000000000000000..de3a7d59019eb3023c1541d336b7f9afd5c25855 GIT binary patch literal 3416 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3i_BwJo8S=1xx9k@C{gXTP3&*^LM}AFln4EQs>;Jc1g8$0e z5`U=uWPX21=V$?+x|VNz&_nAQ&eL9xcAmam;dA`{R}p@0O}6`$AJ#=UFUkBg@5HgL zkf)8Crgkm%mtJ&Yf3Ml@O%kuny0!&~al2L!$+bC|dD$t6C5hzuTO6B7 zx%nxjIjL~(Kc2MtdA~rm6(-sNl^G$ z#f(HX0gsbU*Qh9^pHx15>|Kn(1%oO768|(^nX)cula;l*Vk$p2nQ>{di z<(``9e_>;>(n`z3tYabmeywcv#wHf|0w(z%E?H{-_Df&E`EKU}DVs2c{KKubmQu?P z#T>2F6tieZdQqvT_EMBjp?l>V{mp_c%{Nb+Ic(ez!m+Y@dczCl`5#Wt**onOvz@B= z^^g8cW?K*N>UbUC=h!ODEy*s~zU#z}E6&H}glx0Ck)~19dabKZ_73w>R(6wn^Gv(n zT)sA~eu{+t0)K(PUDI>s-0n#FWwPU+Rg=PKm zJ4{~Qa$oX4*|V-$)+O!c-sWGku53tTKYX0y-NJi6W!8N2UA+IkmD*Zi`?Aa%s?8m4 zD>mK!+IQz)mgk1=YrIz1{!aROIyQ_qrrTqSXAWglO8!r#Up z4=>A2sW0R0yZhlk6R4QUF*jcRoRNXy60l^%UCfZ0unch|tlALU;#&>^uJb)kxA(7S z@t7l^J}>ZT#tIEZ6*(^dIS0R`1f9B6c|l>mLFQt$Kg_Pc9Jp4|(m&a4*Mlsvy$FPh=Tzbo?#r(a}vvVrf(*v1n0%z9*u&q2kE#R=?6xI&m+fRkG zS08>m^P$>Nk-6t3=Q?T6U==o>X*!W$3<^!nzZf@|IE0PEw`H2D@aM@P5W=M``euam$~vr?wW_;Ba@)6O%A7Kq#jXPWV7-}mg%{z8rn}Xd*&ZqcUWS7NAc=;ng1rv zYF8;1S+{gcA**vvd-lt=D}uWYaTT4lI=Q$Y!J|UR`Spp|!h-v;2Pgm6s9Li}_3MgM z<*T#Z_|89fvs6Wuh|{- zD0`wgzuvaj_u?mhu~0i+U44gllKM~G8pgr}4N+pRC4-qRh8S*=uyWITl)9OrDAu4m z;4;e*F1Hiuz8tq@5)==r@t#rbDN145{7HCG~L{Dq#dyAx+%^Px*k=2M^vVL8PRPD$u5>P7%0YFVKn0Aad6S^@VZ7^4W znlA|O9>|0lgV~rtHwU>r0cyM;fF-az!!QS}DT8hrNH@$?pf(5s9KdE8?iLBU!N|=6 zPzwYBq=EKfI1|HQ9PJTwYe2@r+z)DNAixY_tijguK(_+9ssL382=JFgD{!?t&}~G{ z*Qhpzu@Vt>NS?w~A)(s{@)Il=LFEMkNCW#17_o)D^guThIeUXj3j`=4Xee6Qfo?R& hD42UepX%XPf$_7%*1B5cbVp9#Q7XS*WEGPf~ literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-nativeMain-P_jWsA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-2.8.3-nativeMain-P_jWsA.klib new file mode 100644 index 0000000000000000000000000000000000000000..d0c0e0bfad95de54f4ccfad06cfa07cfcffc1711 GIT binary patch literal 3808 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+38p4rWH$U&g>VcmRJab?Yr8;1@Za?;)?G|khfQ@Ofx^Jd5U z_Z$L(BLCmF445c8LHK9_*WQcTp{YeqiZ|~yZkf2(^1c4?*N#^&et$9{y>9jOrApg6 zcQH(o+^;(`X=9iitCYYDU9Z>`6E8J{HCRtc3EAZ?CVgOW;gzJn>tyvT*%kZC4yi9# zP_!WZ7^mC2FU(6H8LIFueCTo3`~SD?cki#}2YFNRtKG8&KyQ8rV%**oMDk`%W?ptm zVo4%-0Va;kq}=?J(wtOyxINyq{iMFv_0wLuo?2dK&S+orKI5%<>b%d&3#U)|c>AvN zIp?{xX>&=p*Jm%I;^4=hg}jYU2h}!8y;&o%#v-9=O^ZRPwV}nqr;H#E@^)m;@C14; z7q17EusN$BF*!RiJvBZtFQq6yGo^w&9~%&5v;o`}z3jYPL{KCNBuz-FIB@hwSGTgE z{!$Hl6w4<{23SZZk5Xyb_E`bn{{)t*5s9XddsXlOBr>}o<0+? zpmukIv+?cJug_1VygGQYa?bOaVPbv%zrKtLowf7bGSw~rXZ0*=4NK0rlR1^|tBd$8 zHK`9Ae;!q5<(}VhcgLRzH?E1TNIrD1@8J60FM-n?d0dn}uuPJeabQx*3B@a4L#o!T z*SZ~|^LIm1(9MFGr)%3gxvZV$8h>Twbhc3ihpL@=RnO9TSf+k>p+Y$;s)*|1mMAyH0=qx1yp_ zeowlE(cNC7cehIVwO+Ly+QqpftK*t`wv5~Kd(lCB%l~JG^S+$s^fbiee8^V8MfHqt z=hksG#vIuZA6>athp*~t|AUm&cb@rMmPS_@#PZCxk8Uk0{jjXgG4uP@lQJ=B0<4q& z%uw{7x%~7~gN=8u z@0J@)wTYX=!}jmX2ZiU8gIzxNfcZ-fZ+OaKOa4Xq`6cnt0))I=r9#kHgLste^BAeD zU<8*DP2B=d`GD@{!COWMAz4(ETAW{6l$=^jo|}=Y!;-|J^wbhE4U$1}6U-oB#Zy`l zpIDS@W4aRKmspZnMxgX&WD)^Z7Raq2 zSn~$d3PJ@KZK42gRPD&k22i9U0H}cl(~i+1LN^Aa4dx0^8v_9}fLRV^3}%Z1-5lgf z9@N4>fFf+>ptU#9O#|tMxeC-UKmbmlFovseHxtkeMy|6#%>o2SARn5 h@tKY4>Ja22#>KcFtC6f3ILn<DMeO^KnM^@1|oT&f}#k>dJLI@6ciLm z1tWzrwCanDkU*qh5dj4fDMb+rRV!G1`8b7yFslA?zH^duzW=?y`<>+886}2|RVyjY__Bl5$sC4!S!ILt~g&OQYZR>FS9kF|DgeUD5TmnNK+vpY4>! zCaD7Ja!jNS;JE9a;a=;nE5o-gKAaeV4T=u>JmFi{LL!i`WPHf7es*p>o$l_2taa}} zJTTDf)~7R(nJfltPLJ^l$z;~oW3G?yXS(TjvD~j-mpx7WbM#oLV(IAY;`0|eTJ*${ zE5?08LF#L*5g8O55fl~@5JbdAk;1XDpQq6Hqo9qKSqvkH1fFyZ43mwCz0>wrTDpdb zQI(FJS=FXRT{QJdF$JzB`3-f!KZe{8&;7my9}UKbe4awr7%}=%IaEl#~9?Nd&l7Kr} zh02!QCRN?$k(0GGbrE&Bk{>1p|9hs+}5#!Iow)Rh?ptHUfkFvFh#7n(xd}fsqRsD`2Wt;WKs9HIAD0*1D zv%{(obop5`?al-f(k%C7&Pb5`S1RUSJuYy#4dQTdYuv)k+r#34$$kahtk(zPCoY(g zMpR}&ediiuLB4i3j1Gi?Ifw&OMFwQ*zM?0C?UpqOm<5RUFjfKALz{IYZJVC1mvZ#p zW%cyAy6K>q#v6saVR}Y+c3NvRNTiRf94gw#h}W5Zc(VhZI6v}|V3YNuW_9K8x7L&G z&hn6G&qV2|^S|{{RPd7W*Htte-<}=vaZ*xByVCz0jba^hj90ykoGNmJ*eZL>WN1wn zA2%Ji))UbVhi{&TPqzFT@hB|Y8ft@=V_uvU-Q60_j887i>Kgo}WB2iLqSR4OoLrf$ zha|<9Hr7Va8GW{=0Vjd)Pm5LZRXFFP_vgrw|4g>~GD^{+<&wj9OAZH@+bGVDAnfOS zaJz}wS$!hpk!fk2jxX%}*xslgsRVN}rX+0+tJaW`n)xy}WI;%&Xhbu>!Y}_~Dq7;9 z%$x8OFscU~t?WWk9{M?R`|aP4r7)%ccfvLPT|!jv7&dsnvP+;T}1h9G0xsIJjZ1GU2DaX=f>w^1r(}rQ-@b)oXH# z?{)awW@KxrR(S4G)t=Or*+R!SF|fMS_cj$Qxq0;Xt>R8f>fbY|f4kcDoRq8*`K2~& z!pse=_01O3SKqbzX|i>GkL%)8m9;G-l||5FP>&(AB|9$+;|7wl>y*an zgw7}8>1yUvY6D3wBF&r1EN%K^)HN&?z+GofCGWdx&K2q`>n|^r+xc`O={_%n{!yB4b#h#kMu*%^7xUtt zFN$4Dm2X?M7vD<1uU<@4+1`9ECiR4rcG06>_kP)Xp3tCuXv*cpJ=Rw^gYvrPodae< zE+v0l{krI3E;jguh&V)BONi<0$UNBA(huUKZw^SSzJDJk9&=SJ;l}BGglwlUy+;OA z6CuC(t;S9mALg-n`rPE+Ktv zOCgM@Y1`zm7#4$?4xwq>peWriEOxBr<5471bihAJ_<8Z5`LD3X0V{HV%@=y$#r;pG z!=6fUcbC|3e_1}FsE{Kha#V20k&Sl-Z<6OGD1W6}>S{oxTRE!=9?EUyasKWE6gu7j zZE@-Ns(L2~0~}l00w`L%dC7gd1hcw!3F7cKAE0LO#tOU!jzH-WL<3GQZ3VO?-rQXa zZT;>f2+Ut(fUd+FWiH<;xvPNJX-TF=J>839d8j}h<--n4W7>a1d1+dTw9`G4MkTkuAO`(a~H m0q+om2B4Pq1^j_G$$ZdjxCP2hL=?DLg8NeD#zybr+5ZDFL3!r@ literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-compose-2.8.3-commonMain-eB6IaQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-runtime-compose-2.8.3-commonMain-eB6IaQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..6f81f3257839de3a11cd6da932c1553f3e3aedfb GIT binary patch literal 4432 zcmbW42{e@L8^&j1>@*mp#x|Bg_DMqatxS_Gl!`1vvJ8fbNY+C72q9(3(DqqUUnNV5 zkzMwGgzOZORLJt5x07ZXQn}~MIdkT`&vo6`bDnd*zsDF&Lkj~jFff2XAT83DTnr#a zkOS7y*2mRb*8Bhj1U9z%!a)NvM$-e&f;N4B()gDGPznJzTX$ziEZ+Nv5GESUv`HQc z`4Yg5OtR%3Kp0H1WJKc#LfuXNbj2l4ppKu?Bl|yK`Y&}74otFya{gRQsi#?tewrR0Wl@Nvcd*n|Po`_2~+V&5{9I7q3b3@tksu?t-Xt_6V}Go-N6gz>~MNxk>&nKTJDF7jElP) zc`xjsb}@FR%ZRg)QNr@FS>hU~tWDoeTRDQj#7)WsTQ`@~pP0+Il1`z$ue~dFV+mFN z(nQYYhvBcnqQ$?5)s{t~q!kMll#yKDV(;rL>=YzL=3h7Vj=$?j#vbS9fx~YwzSaiK z0?lE?mJP`oszk#Aw7_eHJ0HEye>0@t1d$$v7u6C>f=y z&6O`euBmxVk8)qJVi4ocMg@EvuCH@^bCl+FmRg!`iNryjy!R?7r_tcC{H7#`%(d>E zdtWC-JPt2K^MpqD*_0Je(8USS+n3G0%uGMp#0#J2lq{5f@{DdV)(<|u#|vUf2frjN z6%Wt3n$yg8KKf{tZfHBRPeA^SK*5Xd4RmvEx}P7pBU}6UGkId}8Wo~x*z@k4Pd<)^ zRi8ZFF~ZkS`9Y%KV)#qkP1B14B0~nKU z&)trQ1%p7`H0zDYjUEK~H4j3G1sd0-4{Z;*aVu6dZ^*zw`JuCD&MOsjEHdZ1dQK-B zyzCZhmoq-=wz+OnKht2%KZi|Vi{M4nA}_@6t-NLv`jXn0m#;+inwTc8b(VW6qk5H4 zy(cUL7c4>(Xo_@lTxv63vHE=f}~KpvF(7FJ#7dwk1c^ww$TUoPVoaV%_%j2GdaMN1qACbqe zhdWf>?NL>JI`%L&l+iEv)T^vqcf7#%X66)D|Lb&eQNFHakc#&OK`rf#x7?F+_4v*| z#B!LO8XJO6Ced`fwIhT~MD`=XS(T2pRx&E7rFvKeX2%IG6SXQ@mU~C!0?MRXBCM2) zy>HWR6`M-xE)6aw`UMP|Rh^-6Ej7qEDe_;66I*wzd`eec!lCpxEFU#}rG}1Z^U32- znY_hi1C0B@@jSWpLIz>XOzgB?9JJUG$LZbp5Y0Z`x3I+>;NVH!G`W;r_?XT6UkEg{ z+xoKjIj}821MTjqhtacZhO?C%?czbgj?q^4$rYU<-hO9aX*=BFGWcAEDA25+?50y{ z5YX!%b`>5!2I8%(a5gk@e?L1rwFS0ty(wLQ3=WIj8VlW`LN-OOhoLWY(XtP zyom-N;&qw-8p;v(4iqqD-|6x2oPUk`KyzY#*Ur*>A!K*{G5KOnZX6{4y;~1oz1ci$ z`dL~(m!|hke`6K4BHE$k)BFFoE9&8xzmp2hHJ9Q<=>k0dn-pV0Yc!mzVs_lJigdUm;oqUzq(C^=Cb;a^Q3=Y@VP_fXPa z$n;niAIH+Jo{ zBRW+o+Ns6N1%~R+Uf$H7lRoxY%p=6Ljrc%augo%hO9NvjVz15lK{tE9C|4srMColc z-T@Z$>v}(!y=X^LM8-Du`Oo8?yM>Al-|tGOx^J0=xV_j~D`3=nu2^0Jc7L>nc;t=; z*WR-lAE!ssfxm>k2O1AIkNX6J=v3V56@25Ulvz}FgJnj${&_hi zngf>xasfAzmF26h5Y#fjvXw3XjwjbA($5u{)l^TdL&?zq#gj{e^kQ74L&fyeYQXB1 zt^oEXSI1gvzb0{NVM;6p$eUaWB)?T{t`hzQhf~`CvMc=qj7_e*Ke1VhxT!5DNf#h& za=}Ox^4la77QfG(=bBU3*MYi&D-pU@Vd==(nO&Ly}q=kXq>%7=+|{ cOCi0+STsgMNE-n--{0!CA&-Zt z{_DW&MX-Ww?!{IFBcISNdid|k}3`y{n6E} zY^c9f!`^r)#9xP%mT-vy{Un0dUpmBCu9pK$iOH48IjQ9N(3(U`4C3Jy;_|Gw2Gp}o z`s&8IraO%+)kVS4>2qu6Ed`*L8(w+!? zJL&It<|8Z{eAPeit^4Sa2PEaMe30Z1$qrAG^db4<=_D?VQ~IZUJbg}ima?5rotEo9h{; z?T*!77VKjL$IC|M`Fl45vR7LsuCGpU_MqUC`A!w{YJZc~#Wh;pLo4N&_ z@&Vn>gV+5+NEQ{P7U!21C8rkScQYfC2r!Q#S0}J~0#u!#0*uNfz#CONa)Ax1Ob`H6 zQ^B-jR4wSnfV9C}0V>@Q;5(2BGX}G)M>hw#Yz39=2;j(w#T>Mf9^EvMZkVe; z#%3Ds(iz=gRWGu}6pmG-hHWOnFwo(|~3gprcRO%vt z1TzsnL9zl@8H{ct$Of3FK&2`ItRl@u%rX|;D&!&rRHh<;I15RhgIk5YghjU(WDm@X zpaKd3oLI5gi@mr)Hx#)%0ToXOFq5F6XoVHJ(IBH>?gbS{2*AXKa4(kPDZrZ*sDOci N7YKWSLFxEe?s^MP$@y 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 YqgUnu-mGjOmx%)5ZeT_T1vTdw0IZaX-~a#s literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-viewmodel-2.8.3-nonJvmMain-I44vqw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.androidx.lifecycle-lifecycle-viewmodel-2.8.3-nonJvmMain-I44vqw.klib new file mode 100644 index 0000000000000000000000000000000000000000..49e568d1c02eea33e0a65d53ea8dc6f0d4d19269 GIT binary patch literal 5232 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 s1mzM6ZfF+NQobxPUIP0){v2;s5{u literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-commonMain-TojQLQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-commonMain-TojQLQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..a3236551259a71d0e352d227bb5fcc6062dd7fcb GIT binary patch literal 17265 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 XMHvXlUk4-qd_6({0ERyg2LS#bgrP?* literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-jsNativeMain-TojQLQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-1.7.0-jsNativeMain-TojQLQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..dd8a9cf6ff79bf60fd470a4e6a1c161f9edf81d1 GIT binary patch literal 3340 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3ic3X2b7znWbw(Vw77K?hqQPuk4ifh=JRX;20a#?mKwjEUY z_iVbZYW%G>p+)*I1A*$}2r zxBpB#CY~p!;KdJerLfo}w|Jl{>wp-yD+Q5UnUk59osw9RNS=Siv6+;cpHiBW3itNo zNgF)RoIc~LbMnmj?(esL;!{xc`Z3WIp4Ww^ZQtpN3=lfI?>c7^>GqG0dt zo7kx@2lT28UhkTa;ubw%zROK4$;{6q&*RQyS_X=0sKqz~K?^MqLiG*xjmM;}@GdFsXkleeCWpLsGndcTN#Rs7HL z$L60usET+8Oa5PLH`_JhmeW+Z#nulL*eA2Z2zWXNopdsiR1}-|M3OUC|BS6Wa)Q9%_iD!{0Q1H4hSBUg2xY8L@ObvjHtMkS1H3`iTy z6`*<%0iFYyFk>)lNpy3N>myLDhyaGbWPo7~S{;dQ8b~+HRiHWy0WM-Q4R?)(ZZLB7 z0;<6fKnG|ahBGk?#!;W4TLUr{=6+CJg#aswu?Dl|Lbm|9-T>892*ATkgg@XGV6V5( zZ3CGO^A4ykLVy{h*oLiULbnRJ1_0GW2*Aohg2#}o!c{M!+YGV^=1EWug8<9Pvl&Z$ zgKj5sQ3`{Z|N zPA{(4Gb?RYX!2=z&2)YkUib3VyeQ>sH?}5x*U^;OzWi_H^L3V`R~DW5vsGW)U1+Kl z+iTYSKF%98Vx5|$CC+r663+|CJdmNlJBw|3zmAxs5L<$m@>v=6mkdYNrB{8m;Ea^| z@3K0T<(2*PO^g1gPCt9U)g0tI*%_gg(}BKw2E@31Cy3;`oXouJl*E!m^1?|Rn@PF( zDWy57@ZfrEwE3jI*Y(q0x}I8IXU=F}^FDW8_k_ORRqr#W&-m(`Jac|?)8VIit6r1A`Obr!>n?LTtAk@PiSsgl0ML&U@cL5; zo9hY^ld}`kQ{xl!Qi}33Q!2>wxB*c{8^CSR%g)P1gh-M=(uAan14n;!bt@a{FV(O& zUdjaa*I}h4Tw*{!iQx5@7BQCVCFkcB5Z&%oF zAqw{HzKNasazL-j;PtKvDQ?jN=GNTAlFa-(@;vTLre&b0hFXjg2&I9x{!ESnd*4U1 zU3u!%C?VvuxYbfqvqNyNfEM@04YBXo_EeNtM~c~7{cHSxQa-^k)zkN-et}{_kC$K2Y(R!%g)&@*muKZV!fwBgczrs`}qfLHfMjbEIhD{XM>ZTz@GYN z=hj`ny?f!DO)59G{%dCo_c4}S&QY+nuANu7mHABTtVt4$vmd1#I>xcwd_|u?(qqkO z-+3D~mpO~<|9>m;{sWm+yEzuzuM$rPkd;{!xOkOjPO~e|s}&hR;jZ06SGQ(5mWFR# zbSfq)=w?>h`c+pSMa_-M-TVIBL4_1P)u0a?H^1vR`SFP{Y~@<&>pk&wZn1Mz!_74T zYuDdB+oZbV$h!Uee62Sx`nfXvV1}mcyr9cP2VP9Sej~$DK0((Z+9@}?eShKM|7MT5 zK}BEfB=b9|j0_BNz|tLe(IKY{u&PTTfWGu}6p!ysE?h|7T zX6=q{0dn06s?8C=iJ6E1f?I&SZb!EbWID_{p!ymC&XHmpw%QxrD&&G5R9ho}H46zI zL$V52-HmQD$R?O4K@|xCNU>qD8GE&YZYXlO52{8Gppc-UXq5`O(IBH>?nNyCZXp>B zD+A%pQ+&pNstp8CW=D7%W(<}}1fPMRN&^AP@EV9&h2S$8RAnH*B_xxvR3P{a0u}2B pAPek5!ipD6KciP4#G6}=*Ie|Fyc4xX{=C`p=RQ*?xdCtkI zCo(gt@Q^9kyyxwyOi#-*v9k*W zIQoR=L%d43AMWR@?ZW0k{|#w7X-uinKS%@qng2Ob#Qy=QwS}#fv4OL}zs4Eue`U$W z&e+A;$ zfAXh)s?VR&^3%f4n*EUltquRA2@{g_wWp$ zRgLQWLwM`IBu)6gf@*JIWMyDxqGw=h>}Y3U?EbH*K>xpGn*P6ep|!HL`S0==A{fRQ zy7vvgMMM%Y&=r&OF%<*-JFh{)A}G{to9v;EhI3;m1E z{w>u1;rKrlf%5+)f(ji29TQtUF%uvBzsrG*82dy1j})Z;r5qgp8p40}gX6!r8U960 z{%?=}wl^G2{vVnQ`*?V3t312kc-fimY^6)sl3FCBq=fjJL=+bx5&#Kil3F00rqm5=H>16)V9$n59=VJp}e-KfWBut-E`ZfOGCeX z3h}w_w4dIb=6vsv|5}5$F1E)D@-j6SWIx zN#4z3Sl~{hWrQ-eI~!DBtioEw3*D*rW6YL>X0Mt_ZhBPhs)ZTr`voh;JDH)u=u#iR zeRg#he@*HxV5`3*oIq7-FKit=+iFY+X_zgHJLa##9p=iU*~{6PnXO`)$KehfgeVdu zZjM-qWz9bcw=@}GM`Dd+8_f9F4`6wp#~{h|?PLqmW^c;_HQZUgLKt&6iq2DHyRW2k zFT~H9Wjn`+F%AEOYr~lxtbfUt&c)}BMceQ9U)&uSA=3-@)Oi*hT^-yn|0oL0tb;X5 zb9T2Y6wRWzP(Og_Crg8RS0&L}J4rsAy$`*$aaDs?S_maBje$WOhu)u6uoSJ5V9cL` z7|Oo8*X&XNExSka(rxqYGt$n}Nqnn<*yj_NcLs`ek~t2BX^&J#(?jJhHdh`U#SuAA z17P=}f|}vi$_c@vNTB`MhDL5zG@aTf(2#{OTQoWZ_7I6}OT=>UdSGXMkyL<(L36S= z8>%*>;F~!_J|v<~!6am0RLE1cT4?u<*D^cZ7e2JrJA%!jsBp4(uO{_#Bj6+LB<6=G z0n?9fV29TN5x-`soccz#pxNi@n%uu>>d1rw$_uYo)&QI|aBUpXmT z$+m>AWLmc_8JphG4vz$oaKK~1auNYxD#S1YS-r$+pkiCNEs88l>TpCh;+9oD$UjQ9 zS@Y#&gK@lZ)S#-xQMr8FSOx=4YvGf|;b}oA_D)X|BeNh$hsNG%lL#ad*olJcoLHtb zoa|t9(HR<--UGtDm^oRz8$S}|Un}G=D@B!^bC9} zs$2pMVvC+iv*<|Hmxymm1qC`+fbFu};SFYzC}oM1BXb`YM12Md1U2ZNFmEIQtPDb< zAs&0$I2LZOm+Mj%EB;w8VGC?1gj!4%RA%x34Bie6=M4384dh-CJ*xkA2IeBvAQY+w zs1+yg+I?PQUl6BDQ-BI*Ng&YVcsegL!tyi^gbi@jEF_?F>Ix*wm-n;^RN&0Hp_sWm zQQgAY+oY$Bu$6`i8jF!bV^0V<{b~#Vkq?Fl#tp9G))aT(Ht);&gkh~D3o+vjDwD$v zI*`|$3Eu4S9S8Yvi2llgY1io2Br{%(8W|-yw@^%&qzb&ecSE{ut|Hy*p@w zXfDv}7K?1Nzn5{~&oSa{h4@~)p|FWDCUP^UjLQJ1#hC4;#iX+E7QJoD!R}y0 zhHC*Rjp$*y<7ri7anJpDQGHk^o)=;b+0p1I_rSlP8-)O7XAII4uK!x+4BPBhShtK| zcoa~`x!7(a>qNQ= zvr^^ZT)?bgpF*gxbzbld=bi?#;!$}Qw;!{^LiNG+7%aw!D1IJI=aVmR!ttO9y!7ZA zwv_3&MyWju6gy3o9pNu@1H)eDWQyg0U5bh6`fgmXb6V_KQzlnN`3CfSo?mct2%7i^ zM+D`$0;o5}n7T0#BGKqC?unF)O=B#6rWVMT3D^ihNGM~@hm@pMSSOj&x4W}NUzQ8A zVZI%{DzBvHjfNM%4+!<$hL1~=!dO_?ceSU5QjUmL;b3Y_NR?ieF@nB!&hFUT;;P^t zmW4cXP9%|BByOzJ_iQ(300c4;lLU|9hFT`=3xE5%cNn%FGM`N+jlZASFK31O_dQdr z3qq%oj*-|(Ol;mF>K$5wr+Sn}|6?J?2z(%CnlnK@e0c#<(X(!R)ImVcedbERry^`5 z+T+mh2t*fL4mC^RC@Oigf3Mad3vrE~o97^Mfe-<-Aa>RYY6hKMQ#Ts&9_y5fLO~F! zSocA8ZdpifC|c|Ss6Mqo3}+a|$_aQgn`MR;L*Z`2TNZCc5=o&>bQlK%0$PB&X@!`U z=HWy4Pkeh~K_08>0HH+2Il2N(-i3U0hSd9swP_hZi30_^l}px)p)Y^=8{vq#rdl~_ zezIBZS{)!^O|+FN+*6It;I+%Q)vC)gyno@+_NI#~S?zpSb!7(_SjUIQgUiek`3>Uv z5~v~Q0S@i)YB3W+{+wMjlm^(t#S(IdRQy|`CYp<#IbX*5$R*IUs$>xzJygsBI{AU2 za%_fyJ)NZGoo(8Ve;#?n46yyi8vFaK;+O}foD^e)!o=eoNIL@Jv89t0SxH6+8)~-c z8aycq|73~OG${Czbxe{gDVfji$rrhWeyFJp?MWt6v1u59Kv&*-IC7t2SrG-VWA_eRj z{$CJnvgyoYmlxi&wF6N>;E9W>L+JW_0u9M=rs$SIWF)(qM0rQ-n=|XQ_;^DgdtLQN zW~Yzn^~Di16{8DW*m}-Ly4k6mM%+AIgBbA@9W~lK30_4nSLGn(RBK?mN->dMme5jz z$a|Ydl9bWNOB9sVB$pRbw%NpR=yQl+RovSnKAtrzgRhC482igfhE6Mh0?=dAh{?qJ z3VWG?cDC4osV<;qNGXQ~+UGB1XZ8+{kbs9ufdfPAXGj0UY=(Wh7a~a#5=Z&YiP4B0 zg^`EA;-tA!^;50zF$_%5C<(GDLaE&VH^HKxz8EH;>U#@!bu$c@rB5tVUQ(Vlf2k5S zWdP7g{mzllMm&u|BCHuSnIXJPni!<}oxt{`Uk;miU>hyOcqy({Dz$~`bsG~r4GS3~ zjGusWJ15|7dB8IaukMhz1mmC^3Y(lA;ltn=%nYl8nR`E4gadf^4?hLYW@X{oMl%nO z!cfuaWh+;^qpc-3Fp9UWB{iRdbqG5o2qdYsEl;A@2ae(^M4l|b3vFwU{vgzZA&aej z7EUs|d(4DL%`}HG-HdE3Y;=)Fw&W&NboB~he1=H3kj0W2JTeI730_Gkw{5=rAd`cW zeL8;@W8&2bB^y8axjjP$MOjd~rfneK!o7*BW%8D!h)9ShUC$FwdGJg zu3n}5%&)WM8F5oX>E)$QtCgcau0682W)aTOfd?1u&*88eMkDDSTQmbfX%F%w9Pn}} z1a2hY} zLa-xagZMU*E$w|*^?r2RG3cp1sBoYqU~NTInYiHTC(k)lhmqKreTe1TdHfd= zo+X}Ecb>#O%UHc*r-FTpS{h~|Od`dg45oh}APIR84&o$@v$i+qV-bCDa2Z*j%zlYB zK7=En!rslQQ+IfW$?Guwln~=f-`iZ45tWaI>{lhymL-3pZijI~i@GRaS&-i8J#ZY! zFq0tU=6&EoUQo-5V?-;*g3$?BKJa>l!CF2F07Ghm)^bt!9BIUF%xI7k7}4&sVx3VA z*z8k|X5jabH<#9G!!I{N%4fr6RH;r)42UXRiN|;7e33R+hGkI*b$GfoXsJEdZnxQ9 zcKp=b>ltZFaE;(}mE&224+=+gaD{EhgKhd`v<_PBAET<<=I9jU6S(0?vAlqr}9AXZk zP~R6qHqsn7OR-7(Oig+l;UJ{!Fj<2HZX+^XPnTJHL|?3O=(S2z*5)T-j6SA3yY-BVh2TVC9Ri-NW6mRR8zSm9Sl8C&rHr-G}t%T{hD;1hZAY5M%l z_v{1hO>~!S3bj@pz=PSQ4Xh@fr=T6q4`J#<75FfIVAF6wT(8E~tqNq|&<(az6X1iy zuChfPu;@~&)P1A3)VJzVYiBtX%W`K0`y~q8yV{4xaz_RteNP8gsYCJ;U3rZ-d%khX za);MlkM`ue7y?Agx}-|Skk_TEO-Z#9F$uH$E(zPE0=#OucirHWeAOj!wfLvia?cfZ zD?b1jvrP{8cBwDWu}$=z7TdPcy|s#6j=Ku&UAGDyDHhX`4{t$-uPQ+9{Mk>`M+$g1rH}NUr&~jFJ9B8UV|bQC9;J6KP0wPl7V|9>?58}y zLW!vegcc#yd`}TpyJSrJHi8SO> zSmv|+r->HnPJrYI6shf~K#lPMTowKqEn0`xYlj+;*3dVmJHJ}D5-|LEJ8t}Ut@0vpZeFZGWH|eR^PSsmkw)A0(Ic%i{1Jq zEosi83!V9%Wu$-NuuRIpRcqNZAnA@tImZrkUspv+ZRnMFLOtmvi1JcCG9iDDJyzv~ zx)mEKO}`S@*NCDjBTNTZJQU7R>Dqje%_=d?rfm3;cPHz*@hIno4V=tHLI_UihG#`~ z;*l$`zK2y+ce#;o@%|YX+n*aQ&8#KUa1#n(-%Z7P)}h?23X9n1D~%r%y}4ARYxzd> zi~158lCw_fy(~}{QOa{!%Fs0#A&7cG zS+MEjJZDWy2X^KFYIg^iQfssYeVHxV3Fk!$*>OE8gH4y_V+@tZS?atJfZ zWg0^8jf#6v>*heiyLJDP6A4?iAei;$J-7q$%Q_B-hGbHynOVONSB_&j*(`)T;{FTvWLN1GA|>MJ@DzQG_vYTH1YHuPZ}nYxhul2myxb6ax17TFb8o2_5qGiP#Cg8l1znB z9iSOi7H^=wRFUJDoJph4;)4tSu#YcgrZ1(|-1dSpuZV3kSy9UlN?uF&rW$3`yE(4d z$4!Hr$VUjjIW;}f>EPZv3UI*=q$mk+CN}W&Jas>I83quRux^Xe$XG&kKx#{1(=H@T z;`(&ep;Dw=n!z(~fNoJ+{tv=z6Zgy=dPPReE&mT~F}gG#Ah2u+b($ldOf4FS)_J=s zjX4>0jX*8U64BGf0Me2blerDdT*o2DHR8pZ9`qzLSnaiUN&$YJJ=ho}7kRt^X$?=BOdS8fX+pMIBJ$R^(ei8t)IUXZ{a9iY)L z+z%18IubS})irKm6wb{O8#L z3xPd~%G|=#GJkFjZvgqvxBK>W&-eLDxx!8%yOaVQ?#1;zZXuIyps4qA_|I?n&;8Xh z3}j4RaCxFv#WUfj>Ne%8UNjAxITH{fK;?5CFzaH1hDA1@-X-`LtKxDWh-iYpn(#D= z<8tqbV1vJ^Or3v)b03MG({f*lp08p*<2|S7-r}{9L?S=tg@a-lG6zzX6bP#_F~)|l z_Z}~cgtze9e?;ek5K?c|sQ)Z)nIhM+L~K&2_E~HV^&Rh4uli5{(>bxNM}}!1z;J0) zmt@C?f@PNidUN)p_8CB3$U0>^u}dzXH+@B>^K3_5@+BsDqX&)_5Yzob-;X>Lgg>GD z5mJkSylaRcO|SCSqLpSKM%AMZ_d5f%7Fk$4&j%5tma`WT^Ui;lE8g*|?3bnpFE=Q62? z%8_V8;pIxlR*jr|^svCGAb~eE+f<&XW9rQMEDZjtKtY+`i+PMo1=M+_{HPal+J@KLiQKz0(! zI_A$?4)oF9@6THT{IOfVj`%$>f%tu^K3ODFo-2E-BkB+R>#rMV_k<9Q8&CX=^U#mi zv_8s=-Xsl9!suo+^^2yxr*}S8QI3M_CnOPFHn3ZdP$0+xv$KxcL~?8sKt6XUtdz(=){1^v1c$B$B5QABsR^Pnjo4EjYEii zY@D(_E1f7~O@sU`LjI8hNW$dI3VBria-3xDts|B!4P3)JhWwIYyi_9*V$IdO$v$Rv z#oO=mUI9YU(TJ4vJ+7;BFOC)So*zIB(- z1A1VC&iE=eBqD_#MpKEAaMPf%8Pa1gd&RxNV2qT+M_xwXwLkJcZD+yX)r(0pXA^5xC=d*;tt}y^n zP;9y4FCcCEx_ClCami|TQAx7vmVFxz8@9tJtk{l2px@}H`KWxyuzZW+Z7)^bFGllk ze~br8^KGaMqCFPSgJ6_L)_9oFQ&x!~PbyR3a#a-5G*OcS$0I~E{=>RmUZv9?+bf(9 z#UEvd%$l(9pbh$mN_h&Htvl0p3;j{Q3YpwR2bAk)+3xdBW_yf{98HHE#4U@uXcdprKUn=CHxI6!t@(z+6>W=~7Nw!FMy^BluR66#Y!e)UhuvW> zKXfK{J9*UC;m*aDWku87q7$5BryB~tH071Jw`^ml_iUtlfJA>B6R{EP9lDfbd8n3= ziL#OGP8pYh8KP%yx%Kk|gwJ#X8F`qh=*nc03k~IK%%H!xTDQ)XHpnYz;hT!1By~Q$ zAarTEIK)#kKTTaS1KHRk&((H_n&!8sx0FHJ_75Mn+`XzwFDQP(0Do*}f{hN4L$uWK zc`4S1iWZ0U(8bk+>esXR)7Vkq_QNOyTSbWZJ9z3Yhy*FWnFAc~b`@gBdN7W84VkB_hOa)# zGU2i+3tH0-quvTZ0T2NOiYF{byh=TY0+^65flp{b-V1~!dZA~eAQqTta~qSJg|~d- z3VoRFWvjDwqNm3MP7BHMFnkr(@uweM!^yA?zMY8fhWAW>M2SkY^>XA~2}19#L8 z30p=|u~B_&I?D^anN8AT*VHV?Wlu8*{$3DKqPE6&XY}KoV&~s}5PCNBJJv^U*uL!4 zE+T-d7_t(`etrgDO|CH-UJw*hn!^)=`A%e z$5-}5xS_D#eToIs6^p`-vsQ)RPnb6 zZZv|NMiZdnQ78UHy#&y>s~ul-Flq@Ta#EObepM!evM<~-1|?H>GV*$_%&Ew2a^%k5 zq2zAOFI0{LH-N#@*9RxI!dbxg_dwyF`8l{FCed9%HazQzCcCr-NDUNH%RHnJzXYG( zsEi3^9y`DK923~IiZraUIH8K;F3qVgw$3!FpTFC_KnqKvkTyPK3bhY}VpP1|Bjz4y>u8H4Tg3HqyM5WA z&AzFK#VKWO9%Khv6{T;xux!H^1D|Z+14DIFF#!11wuVDw~8a1I-gJn zZsOJ~L{mXmGl*l@()mj<9U{vcKjj3J=!04_#@@W7*&8yYxiNuiS?-@+`idTxAa(kt zS9qdaZCYfR&KvrT(XbR>hAl>Pk)Mnr+cvEGAKOQYu)x!Bk%`C(Y4T1}=`SS?JR5_X z^q_fPy1_(Fz?lBPy6)+Q7PTR6UNI4%MC4!f5gr~$DlzaS?^spn4bp)UIOL{R5HgfuZmC@}_y$99`%2)ZKK>b1 zOLq8LmUi4jZ34&ih{kJI?^WL_Nc;3Xx&%kjv%7!u^qHK#z}Rn=em^1;+QLDC&v=rR z2VZzi`1K09^D;Q*<%ELojLC)yEE?Om%P!!aZFApJww-t4eBDP)DNl7?x`8h7 z#FQwe`|undPL+O^4C$az2w-&-k)#MdY>#dz&cTz^<WIC7+x0z?1W#g_J^Vi($Dnk=)HSy*7!>$XSVvgfEQRkGwslM_iNrIP@6w zG1M(&9&=iIA?j&ixK|*_R(?zCy>n0kb5ni`QZq-&Wv1vm!KcV&RMO3Dduy`0QaNBM zam_8HTaR=~y`kYC<-MGaN1@W+&=5fP~bhyKj6GjO=~s12&6kamd_EOyJJj456i zB+Y8k@{BFl9acK;Ceqw&etjp^f-AB}oIO|bm_5&BdKu9rtk>^) z&E#R=(Us1s)a_T=|HI>8r-jGth17vUf7?IoJEk0tN7=3aq+EG#x@JtWC`SRU$66Xw zn9a}R#FOX>W-|*Lb<`&epu%qF!(|u*#Tr9&-Y=^JA_8~;{f4}8xL*3lK-o+;TEp%R zuC&XT9N}3opcCd9_o}JkRbNbPP9(oUihA?$R{}5KJr#b>E@6O2%zImzPVSCnd9}y$ zCH)P~I_50|Pe-Nsi#q(r6hWtWP7Y*#5z1#S_GFjm1t$DQHShW1eH-cfdJmt6isXX} z@aaj6i{xWm|B|j^WtRr4i0CfO2C;|COZWU}x+tS3^rTne3j`-6H{*%*hywZXVM6LB z9m$fM+31964vJSUGpVeMkdKqL$F4$6QoaK1bJ<8D%(K|CgmstcyBP1yb7&YIxEL>8 zQnBpGNKYrQO@?pi>Lr?Y@Z_^5Amy_lT*5;L!1sL>C6yE=wZ zcQr)sEBeq^XmfQF1qBf@S?rvWsVQ=+SC2x@O>8W&GyQ(B%Z51T2cc1BYnDdy0x4;e zl_7&gk2v>e7g)_J%(69KhV0hQq9V!X)j;v(qNC2RV~191b+f1VH#EhTd3!=uzBNGw z1%w;;GG(&X`ITNzZ^<3w%|w6Kc%b4I-9-+$VosPx)@FW{S9LZ)fjAwl+-$I~4#t%~QkERxBZbvX^z4X4$R}`Krz)a3M%QbjaSd z`!@aD^O-$VA41d5Wf>q_}^W44Q|(UGn(cWP!Q^7v+0Mxi%|tg&gyOXeMEjG`CR zl4Hs$claU}xV6aITuH>HAk^-#=Xd}3*00U;SBP%l@PR^J`fEpdl}-IE@I~Z^D4*O$ zh7alB!bDDxJ5o;cDKM{W&ps$1RM66&#ujTlpMixx`>jx-L*WNw!ns-a$AXoS7FCFE z(kJ`LY>}<&)@L5`=ioLH)3lo|!Eb?355q%{-`3S_Qi$Nwv7@FlaoqSAa_sqHI>k+| zHTaC~_VR9))#$*svU}v&;kg+Hy@0A(d7wHx+^fq}!l5tW-nu!mQlwQaCu8+W*ZRd3 z`b#O=Nv}J8)Hhcohtm>9`|6(`^7%b20=#--4XDlT-<@-sG6imP6-!W68BcG-kHU$t z7iK`ZTX>s+Oi1yMA}_xkN1}>FBu7;9TN{B)vhMu zU-$Bf-vX!1O8Y=a&&q9xE&Y^TZAq4`(jLfzp|+Y(1?<_+<#>G_kA6xMpq%SrX;Rvo z!Mzv*##+r_7YU3L5Zr)* z-criT&at|JyV&<}B!$!~w$x_M+4-djw}wy39Y;M0@yKOj-1IMeX*@Cu?tGGk5)0-M z7FDI*ARQ60>J)Ifuj=LOXLqmrTZ^c7#(ztig9F@F7=eV~oPZz2sP#ovB*RGZ9HiYY z(Nx(Lkbg94Od$o@;_c-gWm(C$3lNYbbFHHtp9??iTrW2(?|z;DQ;uGyQBBlwo5Ls! zA3hXGK@3juSj6G$OMs6(&zKK&{%Mk&6TY+MIrU>%puivY1fYbo5{k%hsR8|@Ez>4p zvqiXRQ5p-^hjkbRBp^G23e4}Z{^GHDU0r?Sm~N4Xsv`=m;OGY;Zgl$My7OT*ZTBk0 z$a{&92q{3e;`upHswklqEC}$9_CyLOcM@Z?9{RLQYu%b&&t?jDixo1avKKqyzAUdm zpZH!H6c*0cfSRT=B(w3L*$qm6;#3umpenke&o4b`YMRhwp4lmwhsC{Bp8q`eobxb- zHIZpQ`-GD$LT?STgt^k-5BR9_hq{!5`qs?kYoFv`qrB(~tZLsZPYsK~5I6*j#D0u# zB&l2{tHh?4Ywo(+J%@-#v}#mj!@mMvc_k-HcCf!X2oJ4ZWoUFtMOY>4JkGjhxBh54 zbT5{M_&G6BZQL^R+zj-Dfj;Pq&~{@^6_?xJl>e}G@&y(Q2kwjXSgM= zNGk9gyW7n1OOrI^B%f~BY~~3CT1WN-MN$j)!&+Dk7EF9AUGIUCj_7*FOXk1?=u5Q- zP=&N?hN4bqbf`?J^rb+B<|3v{%Jx{9YIpEJmB`g;Odj^jLPQP1ll-K_dd+|`xN#z#lX zZ#SVPI`FiMz-PzYl)95hk5X3prt5C{*R5YwWdS6#)E3BieS> z>M?80!LL4V=F-*A?>gVGVQS(*8<&{{ANVkubX?_BMTWdIw>B6p-SS|n(|i_BY53I4 za+`F;=HkB~qI0%JlbEy(OG-IT^Ac~K>T|^-bcq+p;xIf>fI!N=Dp zgS^uy6sFV(jA^?8$KgxJVAgM$;iWMsm!2u${PfXc2fCTFC^(UDm`;$vX+h-x&S1i0 za=E?~a`@=N7_V7CJKF%wY~(>(+EmJEB4VP*T(%Zmh#>1PFAY2ApUj?3CSj0THjU=f zsbP9Pw!8#dwb#;c86T9pY*^O0>FMrU=QT0TqX1WPY-G7moByklKr7(N3|~(j^9eBU>jfM`quN;*0To1;;!tzZLbPY0#1V;o=%F+Vn@ENjSLV zlwCFPxYT*_3je*v;u9i11_HI23$UFkK>*YFDbp1I17s|FTFzgZ^|?j;{&8n#6bDNq z9=vmflO7SEdX(IC3Lq=aQtLY?f!3@Tb~Asz&%|Xnl%im;%n;p>W%RD^o)dNOPXz~N z2)8XwM}BYX(K~TOS5~{ABi zNrk5|0~PSG4(E_F*#~t~=Vs+iL39HbC_O{%Oj%mTmy_5%gZnCQR@lCQgRdN4sG)4^ z+DE4}4r_Z)TG+lr`#v+j1bV+=mZgTss$e@uTc+Xf@QVDoBU(wE(RdF$v297C`=!`F zX^(zD^1$x+^1{QjAhPcsL0^P|zJCaM!HlWZ-ZS&8LI~x_6-*9{w2An z_O7x+#PUpsMQbB$R|y)$didrW2M?C$lVd{(!Gi+hiqTd;J}?q-FQP1I6JAmILXuI< zxiD0SlLQu%&Ap|Vcx%cZ@YxjrQB3!IR1U#H!7QPsp$hW6-AQqOXfeNhsaN(~?u25|$q%L63a~#*4jGaL*N(gs zGWa{1R$M8Mb3C5qGV0>GY3{vg3D2vv>2H){)`fwmM64U#`Wu^4p^h2(I(zv+U$o02 z1VjzK)*0d*1xhIuK+e}7O_GUsA@T2EN4ua!UZc3qGv%FUP0@dJp?Y!mLj~I-A4m4n z^+6SJh(~^v@KwlDNRbaEj(q^4Eyzvmtu1+E%cK6OqKcPprV39;q%#y5VO4NE*T9QH z5f8Xqi*g$3{uw_N!Gm?Y(~b-cb-M4NV*^~t>g?6A{?P>li=MgNy!t#YEq!unq81{EP;KzY?ZU$vO6o^a+Ke%OB`@5m6eRohl?lEm> zFEjV|;sjTr#_x*wjPq?v_;|f1WGGgihgJdmd}YTNaP7{u0P*Psa1mTN@^cYK?v3!d^96SDZ+U>lrpU*^WHDtHYmqTV1 z&cZV%U6aVVjQHeSt{_^mg4It1fQQ?J8WM6BW%q3h*+#gcd(dB%+~Wqc;#%j^Z;NNz z{|WEFOFTAhJ^ceenI0(G0Uc8F2kITIq6Y?&f1md=k_=S6WWuqHdxiJZeSmg0iN(E| z1e&xBFvjQDnl+(K}bD-z;Ijko{bihkEb6M)O=z`G|7` zkXJS6w^AUv;BRI2SNPy)+WoFImaMDH7o^$^M8!en3r1Mn{TJok@V{awzsafQy$^Q0 z_%)=6S%HB0dwNjJVT5)c&>@}+S!q`tfw9onX|qy1T(nQCY7dZv^KE+`$x+bRG0^G% zJ{rhy(IhRk&&nMT|7ZeU9WWRz3i8-$MvWwoP*N~4h&O))_*v;l`B;hAFunYJ@T9}0 zOR$jPQJ3-q$NkQdW&^9(xpk*pLV706AGONcvlBOmd=LrxQl&RW2P7QIX8bcks24dg zK@Q(4tFlxc!5MXb3RD+GOPyU;!k7!I16m@7qP{GE#(MSOJT^E>0ve`Ae~@pVFEx}P zm@fXig%9`66{|+zApRu9itF~3TIGFIcsg{ubtr=GyIKIk7n0-qV7lhuxi0m!^fYrd zZEmPm+RIvh-yXf);bL+#`vX&3Y;en=qopQ2Jr{Z5Xw|%CNuRH+U`hG50@GM>KF3y_ ziJ)Ol?x|F`vd@AnUeDXxu%J8*YNSw|CJGD`p=*P#`AqpnHR8E#UV)%2?0lyj6#`Ws zOf}*&aT1hoR|czO0W9XVkqc|h8200u3YDd$IIgL2Wf?Sd4Y~N()H6V;cdL^kOobWZXOOp-XeE&U#q6?v6tv<#)_;yVr z#9Yi+B8(=I8wW^g8S&PJLIoUeIAoo~s-rQhp=2}CXell_-V8cvs2hDyjzLE~47jB# z453N{5=%=_9l}~bfj0aYLahazpw4pu2N3!~yoqpsOmafLrskrgWGTW@WIfB${3?iG z@+0v4Du;4)8H(rqhk_bFXi6WVH~`#?MPe?aTr9yW$!g@!CawX&wXclyB^72%H)r(r z)BziT)q0cI(nU;_gEwevx1E3%C_|9R(K;)i8b3rpHLMoPW5frIg;#$4x|0qP)RP`heHwZI_7Me#bi#Ht0kExOjvH~u`6a8@@N%m zq9JN0ut)@|%0EK22M1Lmf=jCEmDhBY7a0xON|Pmq6_1lL%>k*%Z&)-}WiDM`8R%eW zhKg!%ojS4M5ZRT<9MtHfuEf0&WVBQt6`H|$ZGNKo+kxOYQct9?Zq0u~p95YOv^^XJ zvJ5q}?3S+rH#*B!q9UA5&9qpQDp#4S=GB-r(;&rFbQI)mZm|GjgK;QjMR-H%ujG*-Z0J$ zFsN?KE9-M+*6byWQVW>gh8JCFYC}z$N=>RtK@&%@)b-sim{qP{fQB=cW)DsJ zDwH=Xi{CULNF%G}+%lA7%(SWEbw_6F^YN+65JVeUlEbThag7fo)mn3n^nV*>*m? zr&4zbx;71!J~6<TL?L=#e|nW>}_Q8D1TsgtkjJnQB~VuMj0rR6MKME1BL0!Oi9! z+{#sf6Bc*z_3~fM2wUsJsJ5u!yx~Gw=6vDAtcP4#HdWG4*=Ih*JAUeSDn38Sv(?7v zsK6j`Ynyry9=Ayi8Ko0qd3D|KJ%s#lFJss-(=#wG71JxeNb|859 zOSVVK>-~br$ICx(3);~%6TW`oEI4zcf;HBFmv^nh#2H+xFhD%Y6i z%NVQpHz|!(U?QuzkI5Gx*J})1A(a&GU<%#|FL-kDpOWFh#P$~=R|a)b1Q*m#Kdy-c zlDWzY8myDa2t`805tpQ*c zbq^F!7iF&#$XgEND<6Qbp%3?gDgQkfpck=Z7jpU*(fBuU+LZpgEY(|K;$7_9eMe7F zp1lVY-t2Y+D)bC0CnW@^t;wuNq1?YlFW#|~dIT~nrx=;US7l-t-CfrIw0O&W|Aod~ zasqc$eTI4#YA(cO^uwb;6&u>TxuY0oqSm04vH8I)?B$(^~=25qFnYP6<%VZCc0 zoB0M2X)F56hk`9;u~P9ydw&U4xbZb^b!RZYix3VJIm^sn?H-tdO+$QAF3PSyQPCA9 zFx-T3p=D5DAxR|TCeHDQ3~r%uWr(e6^AYI1+<5po%>I@B&WVCesZHyp7x)vX6dB>I zIOz`T|EldQprUHmJx)j}jf9j)cS%Y~Nk|KVLrQl@#}HD|(ji?cAt0TDbaxCf42^V& zzz`SCypyy=iFznS!>T)d;kB>yWYL`JhR_-|29IkuFM--=(x%k3hz@g|5@2> z??<-Ax5rAU>JjQ$my9bV7h`abUoUFm0fJX;9w)N()PH}Va4{RyXYOL!S1)?rQO(*^ z|J+4~IR?_NaDckl(@Qm3JqyLhjzOAp{h$OCsdm3*zr2jIIqfwcQ=C3cCm4?&vQ6h4 zA=)=Bn3)2TSD^IW^WO0&w!Lug6T+us1(%QLxWs$Dp59cN#m0`9u5{=f#+1ZqH>7B1 zh>ARu8y~o9vwG$Qgl&G_R5I^SJXsQb6eAUhqbKTJ0OyW0K?efDW1`wBc|V57L}RB0 zVIWM?gY@CUQEj8)_~ESypzq<@Z&gWp1CWRapgiz<2%)I#jGzR#b|gMZkPN&vVY;3V zKL650du%Kn#5_lo8q_%*Zu$$Odsfg4## zkyJdXF=QB--LDDa=&{yz(rI8_o{2(OF#C^H^UTxYiq7*8~s_)z)>soP|NGX<@j_zgV z$B-IR>?JIRmX%ZDw94>xcIcI`?FtR)V^X+CTN7&1Ey2-1TffA<*UjAyIHbzC`%^VU z(M`)Zw1L%6OS%uk7Nj}JO3qaIP7+yts5%{pcW9=48axPgb&RK8Q>9Rdx>7`=Se^sd zl6P0Iiowk$glRtg`tN3rU*EwilH0lbdzXH!p^(4a%)CswcxSE(zCDZ&bAiuyftHk? zly`w|4N5M4tWMgDIb#)m)+L^HTILsFLY*t*vq0@uwNHf!UeV(NXRY!EEL1grzXfP| zb1D;P?L8O$R0IwZD)B0JXBSff5$QDjeBva%p)CK<2rW}O1*B}4416>TjgIVj;uJ9P zVG)NF8cBvDc&zFnjHVA!{~FqY`Hi{XE?D!lqE(&7-&t2PaDM|5liD{iZM% zKye@)x0`6@zT@584o~fkC`wKrXCxx#&-7+V2`TbE8ob_H=1!gIO?W19C&gO#`xy_D zD!xK+AJy|K*nN!VvrAHa2MHN^7k<#9VE0ZZC9&~hd-JXm?QHGEiXv=(rN1X_3DLul z;$S_lI>Ws!R;81>4$T?dj7062zdB*O%R`NRDAnqOA4vW(d2W z$?f?DK?k>*&&Dp}2lk`h*1DBufbP3laAZxmnMhNQPbA2M)W@EOakkh@>VV7cH*E0d zmLnG!zR0b$#wUC_&c)p96Au2UcE3awyWTvJ{NN<`j{fr4Fav}m1ve7bMmt4L906TgPcdTi4SH&(>7&FymWg*_7 z%O?zx+P#(9G||Gv{(&$|3z~2=eR^=vvjmDW+Bc#q_9qyiqn~z;$}aG>$8bY^e5p~cst$4js}C-I z$DUdwj7=!pEX@E6XpZSZYN$`KtN2lvnU|uxP?BS`E9$#P?TIJp3RsBJiy25N(~8z4 zQCQe|Ci|qy3&b6ic?ZuK(gdxZfAz&Do5$5c%7H5gSAaR9`**YPla~QTF(%Y@BHT4A zEuC9+mgB0hKbv9Q^03eYPXmulN+e>Y9(irK zgoQshA2W?DajEpH7?yFM$=Z^I6qpt2DV`?!G}$_*fG`xJdGCGzz+K?rI526~5xvse zTC-w>j+S{27_PaaZu#`USGx(Sk&vd9q~V6F!b;diFTSsA^5RIZi$|8`v)+*KAO=|q zJAGKH{XmSb4y%nk6aCAzcOrYLv`bhXhI{z(S0kATj}oRiyit(1E{qfUtir<);@#dHWv$OC zAs1c`Kl88;;BP<5&5OaDnqPF_&eHG1olnP`Cm+H{9GijOM%XwrvoFtQEiZNQQpK4B z0Sz=)7r&ADc>FHNf@wWBxz)VPny^Hr8m!h_T-urrGLmNk4DnjgS;Ut@YTm{k8m8#& zTgqe$a<1yAv*CvZuNb>lWfH|6;W=Of?{@peI*Qb-KFKj{ume{u=@)Cw)B4zxJfOLa zOJgyZ;hepYTcVb^_f_n>B-$RHlo{e`zWB?L*dFc)?pGwUaD*%|t!79}lm|#PMahs8 zPMtI(5UACddR(Li@$m)+=d0S6k#FMi;@3SylsPg&Oq~XqpC;AZ#_10*1=})WFDUrF zUkBfn&UCXTJ2?J!pT4)w#hA3GD@?8V?Rew-YFy|#L6vqdp99`COdxA_iUxmhh%rzLPcUK-C+Kr2| zTU2-4>tbd!pZ@d;4p?#^-Ue{q0PHW7mIQFj6{s-?7+VhqWV7MXzDgT0MRCrZ%aT@H z#uv(o1fe*j9EQ184j>Jbh~do&sTF)Wwi9=L!zH}Xe>wGY%@K#{g#E(JN%y0@7q<@J z@T1(8Wu3=2_7hS7OFe4Js->Gay<+++hBE1d2_1g&hF}eyl09YFFK-FD?)k1HQ1}N@ zy5An{0AZ9`#=TU1r=scW2NM0B89Lcr7W(4h;SRM92jZKj(G8NdmIM{_^xwDY(k_tm z5Ues;u+NCH&AGj63#l{~qNPjJqu&(H8`yF&H>C|UEPVuU6ui{t9ilma*{Gz2=&y;W zaDO9<%0U=p9Bn}r>*CB7Q^+}zW+t&XP25f{6iK}(^LN|pWVyKWtk5=!=O|1u-jc>e z)kWZ`d!!qJSY&DPsNOE0!wBeESjQu%->sT;VcB%9kw%o;ee`60Gr@wg^}8P5?zcG? zCdF-8vXIoMYM{_hBvb-v=+;;9ZsAISZ9WQ|TBn;rO`=R-qG?cc2t&=LJCS{=id}*yxo0KumI$kUB#wYHC?`F7BcRSOt<=G@k zBvucW)S65!j?$r@RLoV&IOnOTw8ykmlPH$QS~yhlNAsQ@*G z)e`Kw2f;3f(vQq@!=mQ+<`xckvI0CHk!0{6X6b}1_$s!Mfm8*i8; zF*imY)DuZ0APgFkgh1aHI|b2EF$+wzJ?9|JVh*n&l0zkhCg`OE$(6FUNNS+#>j|L_ zPctn)Ort7D>*uHdKv7x*nRnce-WkGL>U0OxI4E%T?Ksl#J@`w=3HR|{3e&B+mRzV# zZ}B*xJ$DBih4+>+`K}`gZySBWTaQW@Z?O!nW;PD&XWVbGR`Y3WUCG+0(6E_%2Rbf# z;O&m<5^@W&g$RN$aBRndVANl`X_lF2cDQkm+&cFkqj@A#dq&)9c#bfuD0*jmFYvBb znt{kXotw743y9#k>`+vnyXi5cN_$aAN#z4r*eQrvonr+^a#!41;Pcj zk5}y2dEUdhMw|{0sPrT&P6?eq^BRn&7_ToTmaQNR@6$i1v$QxPGZW%GxRISO*1rAHRXN% zj_`YWqqR=V`f6L+mr%wiS%@$&+56jX zd(?GA)O|i60z59tU&9U`KLU=w)(-4MyPdeOAqCpIL(z=l$zw=uBGRHW3~G1{;W(Vm zw>lGa*EzblkNm}Abnv;}!(*iyx(|7eqIXMpcCi-RxaIp5FEKE60%>tG0WX)Cxh@Yb zM~a9=$8VHYJrRpSz#%^s8tHVxuUipi1S|XUj$Y{jE>9+q?KMxmE8O7PgWcdFTzO?y zdWz!_MnA@9rHQ`snSzV2Y@e$7V1fHIMcuWuJx zuc@qvS`j_D>%CbhYaCZ!*mj61DKu*PxEkskaF10w>5$bQlN;zI)Fi(ob`EKW6xO}i zoNR_reWO)sCCoCm63kxUgW<~LvCy-arQ&m`D{jtVKQh?PV?h}NDBB+?w|JQ0Eq7Bd z<4{B!=;H9q=dZd9-NW=K&lJuTx;ME32b)ZK)S%GR1sQ^kH(R>M5Zd8_e5~b}zH=Au6Zli7<{A8k%9`@exDAE^M3S7y!hL^ed=Ra3F$y4Hcz9QF;HxLocT-%wW%$7GS!+M&O$J z2Fl&K1%VRxh6z3xYAq2AO)_Pic7OPljlx(TPZKbz=bSyE|ME9`qcHyrZ-6{P1 zc$pa%OW+fOPb^W`n3`2ORuRgBeof{&d|eJVAGg@+B>Ws13H1&^P@9{I5GR zB@x1l(rOZ^k=gzcV{4ve;cjc54l!o}{@XTPd;0*~BP+&;yuI969-(rKMscjJ?Q&as zE5ZqpPq}5!Qbk4(JG8q)UELD)*l_3QVV;^?_rl_7sJ*PWio9-nZeU4wQ|OluNbT`{ z2v*RqzE~h&J;g(kJAim3O-6!ytSbsTbYe5)8F0^3-Eu3E4LfB52Y{su{rHwlXh*L! z)6c~ayxwGFru3%G1T?B}<|#*DlP--kD&H!84V41Ez8zlLSV$aT?1d{7Xh*k6Vw9GN zcu_xch=ppZ4x!x>QBm@e{lMKcU0*L~?N%M_UM_o{Lk4K4|k1 z=<+%Y-t!uKOf&AEK;DN#_|9&TI@~3Qs+ZwDpQx>9m;q}y1H)p_;)$&gvV{EHC*E;3 zQ!?-A4loV93XE03rhik)1w^sCOz$v7$_o21oNoeakIB$0PwY<3OdYwJ13d%iki>hN6a%1K zlt;`WoyRB9?^c|iLgmZ*J)h2nFxVA*(9*%COQ%>NKJ7h;V$iLlki1uLQuW0-alu}g z?Kvl7rqQ$MK2zzhVks&N!uJS7Xj&BgTL=KbDN!%qPE!+V5@dE$4(78+##>~nYAps} z*W=)NR^+UP6_;319l!xQxh7o~a$`&2dPE7s7XF>HNQ9^2u4nwO*Qe`?1 zr%C6RT~Wj4KQW7S2ln6JM9}@dw^P$$3wRY zM~FZlMFZoF5ggte%lmP|!}Yc9iUM{1dS60i^QCULRI?aYM46&xq0hx|2iXH;*^S;Y zhYj%6xG}OWYV?%XKHsuiCDS=dFSGAYS6wgT1XXj4Ss{d9up6od4wJA-iv7 z-!Z6^pk=N-#YR~DZj^tQ)*b#RVq=?QjZt0}(XVbND-ncBM3cP{81=peA0V zWpAETT?PDczVq26&k3TYZQz5(eVxq;H4=6&4)x=iEcFHm99D{|{<{amDO=py31RZ6 zMkL!$#huN^8*2-tiVD7}v4@|J^;w`AygpQSB$Tu5j0~3E>ozsyW=;)ZB4)uQjt}+VaeGlZW!n0^BiMrBy$`2Owr|9OPcs5wPfdcU@u}}D zJ1$*o_9DqK`5;!8L7aK8${F2$N_dnqESB(2#;}67pCAnXBzfP3DBHaIs$Cs-=cK-wK{-(^;Za=cP!q5MV^~=>C zGJk~8-_*IzdcT6t{|xTS!{84(H&FC9)vosbk<}F+{%1gcr}pQx_?yDl(d}1s_@D9U z((eyx{z3RpSn)S)u4I4Yf5n0S8CCy^%^#`oHw~^c*{>+@KZ6AEUuehw8vLFKf79(s z{YP`IIPX6r@BiZVJL>yQtLt?2t4aDl1OL|lp<&mo{*3v4)A`EjMXOK zx!?4={-DCIEu}~LTP^)llKV~P>+`~Xbynm2H=KX-Sj0`|>jPiEI_nAj8_vI(g?7{V zdNuj0^Re{5;ryFnwwun^kE^R{^=FX3`1{Vksa+FBPsTkDtM+^Up+Y)FC&eucUrl jj;?BrpAmme`Ztw_k{lB9)y8)(7t_mEn!=Z2U6mb20a) z?%=gcF1UVqa4h2F<7tBr6Q!p_bwDrndsrn@;+c_S+TqTZn?ayKiEr zz8ui2GI+gfLW*1TfO#%Au_QA;k35e%lW7?!s-YI+3 zJI15=!T;6P+4t9++b%H2r>`zEZQCZFX>5mnZCPUw`cqiy!||x;8ln|DqLb4av}hE@8zwjDk? z^X(O{^?%nV75V1bTXbr4-i*z?DOoKjT;rf#TUd9#MIxYEoY|`AyMSMfU~fij%cA=G zXJlWdde2-MEO4;-^QWVByB{_ld%$B`;Px%;$&nI?2)=Kn^@?|xe>ToeHu0S8Q^cjV zve=R#wH{Q^+nwJy&54nL;V=;6F6ia3rIw=n{E~QRK}cRUQ6XroK|D&FKSnC^7{RH% zsaxPFA26l!;7#p9NEQ{P7U!21C8rkScQYfC2(SP}uH9kPHmG(-1sHXGfH$gk)_{zKxgS(1A^@;HC2S356^U*E zas>sd5)pudnG_4KSCHtoflP;a2UO`Hz!Xw!!&U{NTZLTJfQoknU}Pb|V@OuvssPb# z2H6DjB&aGwfW_q5j8?Is+lO3CqWV;nl`Nm)tk%$NM)oPF7)F4LY*=i@UMQm*id<@f y3Sk7$U?*fKT9J%yG{`7e%z%nr1el0qG?qd*z?&85AqED1AS?z3>K&kR1_l7-*m`dO literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-jsNativeMain-KAIxIA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-jsNativeMain-KAIxIA.klib new file mode 100644 index 0000000000000000000000000000000000000000..0800e6a30329d7e6b599553590afe896a60a5107 GIT binary patch literal 4021 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3ic3bl`8wjxew&mVvu&CjXyF&PexP(@*hoz7BpZ80voSJ#@ zf%3mcQ&d-NPBXGyYgqI2$(IY8CEX@H+5Dy}Ncg_4^=)2}9SP0{A4~KuUG-`88_`DD z5GJqe^`_hYo_Oyjt}n3E9^};Y#j9CUfKF`&V%$y@L~?3QW?ptmVo4%-o)*VuQf_`q zX-+EK?~f;K^*nR>jIYkgGv_b+p40d0J+JkR`O~SOT4CeQZ`Mexu@L$k)b+_YSZfVS zg3jJ2f9^E>c@(0pSt4k=BQfmLj;CK7#3C~V0v1f489pg$%JdnJk33*0ZxL=&p7X)t zQ0D|?a3uBC88RdRef=M=&y}#bw;(Y&J25>qJ~1z)C_gi$g1n$GAj)V1xGj3wdAW!% zN)kw#kW_Kt=#Q>$Wkda?8urFZnZW)!th9tn4Cp5jy#CT6#&W&n{M>^4;#BhdXHJq8 z2JukKaCy^P0qRXBeM|f83i~ZY!QS0Bu~T0T=v5iK-Zde`EqcJrn44IVnV(0V$DPTv z3>4K+i*W{m7Fr;L>Kp1Cn{QMxw&w>2hm2tVKMi0|sNoF`OY&R@Obj1+<8*jKcQ4lVAnRz9tMR|!iq!}ga)aR2TXYh>i|1)|JN2mk*lreH#gqQu zxbwpkk@@p~zx`k6@t7^fufgb$>>9rEjl1?VZ9SyB95#+f&w89t!B+eo`~iLgY^0ceX88Q}pu=D=xf#cfmoSh}RQj*En2D<(2Q< ze(T&JMwx33ZGOx5wahJ7kiYPc%k)-?RIR(zTA|*3OtB5GH~NDr&GxhNZ+SB^Ft7tF zdEAwz9JUxO%Fi!}ht?nDB@`8c#u~(s)7-m8JfBUp7H@R0uSEIAcSO5QEG91 zX;E@&F@85QGKm1|9pu&$tQiDqEujL8wo`yNs&?e238<}v0HB5#Ogl!)3EdcwHkd0w z?HB}j17yOC!EDu_n}gh50JUNezzmoaFw8+~)1aFM(hYMJsEvUD&#;+>yTyTSFmm+| zYGELNBhWq!XJQzPqrHJ{4aiuS`$2691lUK6HJB|6bPJH{bx=zJ0Th{u@CV!i?ClD4 z+d!tnyaQ@0Ai!EuY{S-aK(`9Hh6dG&2q48mg2#}o!qsj-w;5y;%#)xN00QhG&t|mt z0J?q1buOw;^;pUBDbCgay3NQw1=Z;YaD@V!vDEPB7NgV*C>Hy(k?&=M#W?DBbY~#@ zA5;w?fFiJSictt)uawXYMXohKl@J0{5Hu96N)mP#nVn-v(Y P3=D!mSPW$8fb{|ZDBB?1 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-uikitMain-uWuQcA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.animation-animation-core-1.7.0-uikitMain-uWuQcA.klib new file mode 100644 index 0000000000000000000000000000000000000000..ca35a3ca1ceef2b05ace3dbc0897bdfe6b71d30c GIT binary patch literal 4986 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 AX#fBK literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.annotation-internal-annotation-1.7.0-nonJvmMain-BD0V2w.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.annotation-internal-annotation-1.7.0-nonJvmMain-BD0V2w.klib new file mode 100644 index 0000000000000000000000000000000000000000..45d9b07895d1a58bf816341e7747d6c30de70821 GIT binary patch literal 2678 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-jbMain-5apXgA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-jbMain-5apXgA.klib new file mode 100644 index 0000000000000000000000000000000000000000..02f22f148282ff19d9e3eac31453a360f9f6bc91 GIT binary patch literal 4585 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 ZcWF~b`V5Sei}#X$3G@KKFMBCx{{zT?CguPD literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-jsNativeMain-5apXgA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.collection-internal-collection-1.7.0-jsNativeMain-5apXgA.klib new file mode 100644 index 0000000000000000000000000000000000000000..cf51a837611632183de1e6a69662ebea66bf8eff GIT binary patch literal 2815 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3io_6GGQQ&d7SbILHLqdGl1CA=zppAy60d5-e;>{=T_^U5( z{>^;qsmM8|lV2)6`SRG~>Ev|do&!h2?O3*o{)#T$Cao~>QD4{mWD~JjAFiI@Rx46G z?%^2!B|SFq=Q7sF2aF(x`natONdh{w9*A)}R1nFbIhlFcDTyVCfn@PF(DWy57 zaGyV(w8it>`IDZ$dMD4E?>?{f&0FWBj`vsJGiNq$PTKIu6#LIl(Sg6)m{>K&Qv1+`YQ^Mw?g2d$P#Prno#JrTE z{LGXJ@_cJRl+gxoTlBK?auLChB#<;Asp7!VA6?zbhWbl2?2VT)f&Fz@X$hAY&`%kQ&yHlqZEYpy^N(pikoKPOhA9`QGbY)UIFRbFI?ez0fxh>^}V4?t>0LlV04K>lqWt`l zcxW~xFIrRx8fy@b66}wWavUSr{Y~8hPx*ju=fUfKAtZ~6Qj7CTi;`1|@w=IkNd%aE zk!uxLbpfhXPyt3A6X1=i9k~z()hP%7s<2?%F=`leV?f$qt^k$z2=EHXgc*Zb{-c|N zT5pz2NH@$?prRT9j$<U!d|90cMeCCzjF| z-7@5I1XS8004ED+9z1bQ*PX5XJw?4=h7Ja#=@cHSD7XHqKJe{Xp zo!pGJ883^uZeCJvIHeBcP@T6-yOV$ptpQ@(4i!XlXijEcc1mJNB6(gG$7WJ)eoARh zD%|Ifg*Kl&>7(VPv#Q7c)Jgwy=gxS4_dRoF^X8-tN$2#vwm)JOs)}5x>YzHa@@Uv1 zjhMYp{@iK$^C(2Sa?PPC*Of$b$XQ*nQDm z5a@n>ynaw8V4Gf6YDrR2VrE`3dA>0t-h6|2xLr7XXTDz}R$qIo%1RAGJ#k_z2yAdg8brC^89N%#*Ae=b_S+TqTZn>v-=?m< zR2k@VMZCVZB-vGZMXAO4rA5i9WX8J(B{mww!)-?iliHx&e$0jfHoxypZkh2Rz@yov zF=#n#mwI1JmFY$|}%KSmo!ETv@ zoHGjqU1BP7+s`>an%B{BzU<8Rs;Su%tc1K<3PU+BF3IubI90VIYS{|Ks8C+<)w#<* zpRl@p=;o}gpMKBd*fq!C-L96cc{|RZyCGb0rRJbl`t$z0xALX+ja9XUXQizf>^}=` zskr@e=YzfaasunmTkc(VRzq3IZKM0?<)U8>rC*7AuqSD<+VmQJy_x^}pH$b$gG&2` z1RK>1Mh1p(VBLhfw3ovc%|-e7CGpU5ki1-^LeN-)c$Ad!7^wtg1ZRwtgA9W?7*sJLz)S*$W2+|7O-HV%K-D4w{3PCVT$LocWgx?0 zUIEp82++ukKb#O=!K?|Qg?DZhJl^`o%9s^Zt2vE;Ls>iTZa_IIU zmxG{64FNtz1H4&*9s)I2`57Wv85kY|l`}8^00S(3ng9R* literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-commonMain-Tn2Qyw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-commonMain-Tn2Qyw.klib new file mode 100644 index 0000000000000000000000000000000000000000..3fca093538e883f149f6d2f1f1fcca437fbb4862 GIT binary patch literal 13405 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-iosMain-mlvQUA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-iosMain-mlvQUA.klib new file mode 100644 index 0000000000000000000000000000000000000000..7b97a5df25a8b583298e6e88c97bdd001ff103b2 GIT binary patch literal 4142 zcmWIWW@Zs#;Nak3=r8n-WIzHO44e!pscDI&IVJj`A*>9Ha(;a2%nSkE>>MCfOi-l( zI1La$G9WiGFEcH*xCCxcZ0|;{Lk0p4-)p*AqGdx)Jb3V6!DI{0hf(LNCd9qEyY#{R z)g1wI?pNDnX!L1#&2)YmUiWU6)5#7~KF&AOmhvBen^}Kvr`dOA)hV6(zkNM4(Pe4h z!LA4WnJdz^zP|W?i*0h!OYQGrnMX1dWM{E0|E?n@S;f;S#aQWfs)`{ge1;tB{x_e` z_vE}{H5Jbc)SvzT5i7`JJGo_UPXc=EA`s*Dm>`nJax(L>QxZ!O$qOQVY$g>XCTAz6 zr^e?OrR!y-mLwG=X66;^CFkcBEQ)qc}EK<>sf9=A7LWq_43o*cIu>$mY2?|p7Uq)zxkdyvw3sUhNN@)UfUnB3ROj} zRCTy{W>1oKpvXG88!H}#XjiT|#PN8p#2klZmJ4S+Yq@Izc4hOz-y0%;E?kV)mFn1B zi8YSMiyJfI%{Pcgqz4?a(ru0$D-vLTajl=HJXbR58QavI zr^-$VD8)+fuClj2`#y5nsS~}fhihlb^)AhsAs@8%Q%_O%uhV}tkJTS}408+r>0%ipoRznq+l}#DP!VmmY~~$+!O#cLlEE$>9$~Rl%QLQ zT(5)L7zmIA3^$AbLThoLn+DPi3vN(b00B6dv6zN6m=K8!-E`!-8PpO$fDGbI$JH)C zw+v)B%qyVk9sxcOZ5h7GAKgCWY7A7_BR~=hu|bE$K3r8ly7eIIVBQ7Ql?bqi6^r%Q zYff}Sk*hXPO^E8G40Cyt(Ok%|)*c@tF&%{t)0GUUM-k!vJqqVESMHR(>K3zkw`SuwejZcI=A) literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-nativeMain-mlvQUA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-nativeMain-mlvQUA.klib new file mode 100644 index 0000000000000000000000000000000000000000..4fef005fb47ccb232d7b9114b030bb6f71d0241d GIT binary patch literal 6576 zcmcIo2{@E%8y;IB3E9_V&t4K`8WdCZvZSPGhA~ZysWC%ImK^73tff$CQCTZ-LPEdL z$ehM;jafS@!&SXda5 zve$Jh0usUq5rjWJ080y^8hd&OA^22X#0dfjH^=$Hz_0kf{M2nm00{^H2^&ldz=u%3 z0+EtSMC(i>tUp8~2>PgaGXUv@-9^>SKp%MuzK-tj|fWrFW$e^8?BpckK~~-B|Me z_&@n(JIzvMonzb3vI$}$>(EKj)!q5Z(GO&D3AK_@a?3SNh1)dQ73F6%o$Xr)ROaK( zYEENU_9y#)=E@`?l?4%l1O2g7?A&@}%nNA`)-MoCz+=c1g3)d~6-U7mgF}q`$fP~w z5d7ToSpEAvCYUc7jRJ#7U+30?lfb3o_T6HP(jCoebbXEW%QOpgO;=p?Hnv1vUs7Ws zGr2;3*3rq)VE0fRwvTeWSdqy7v>-f~@LuW0<`%=o7RM%iz5DtOhRw!?4lah}zcHPb zIT#cswm2Fv4IGD^S*&Z&d3$(0-PV8rRo!8xtEG9Avyxw}p9SL&N zIA?v;VC47?z{z(ALkmcJLNPQdL&8GTR{S958sj2&Dk)tjR0 zqCGyku6?A@k+9}YO5LfyPahwZ@`^6deTn6 zL}rzk>Ji)ORI7gaz`VV8vOW!?F*UD-(K~7$4Lg1k0bcEke6?i_?0JsDF3BI*PZM7K zBzfEoerPYPrAI$sq#5E=(^uh)>t$3+x0CpcE1C5|D!1ua^_Wx@=VX-z&0iFfmBTVT z*Pcs=*cho@b-9XFcAD%V*bOB zT};;cAzdWjrTuYF3ZkDqkG}ankz%th`qPP_6x_DbP{pp3F~eSS)g@LqS|0(@n8k6%eC#SA%7%u0Xps=3_l%POmo&phS36H=C_H zZ`mirkF;rFxTlLUyMLnJ8E&^Wwy3pTtmNvDn|6|j3K*cKAMbd8@o0_buPl&|x#D0} zsz}TxNvd3N>DZY`!dZxVg-X1TSS*=FRk3@G2(u1fjRt%c+C z_oQF9?awQ$T8d0f+8uSNqqCr2)obF&h3%Wl|Fb(cAducK?|Q6P-~XVG&dXrASFT0n ze&LrocfOGtej@&LAeZ_KHiT#44%$?2i z1bRkxNm9`&hU&j22HL$gAa22@jR#%zYmX3IP#JH>W7elXzn9OjrN~izLMp|JXnIFC9rn*gbXt$i zSMA0iv!dGT`}0(rQT^C4*F|^9AJ^>q`4b9wt3|bQe4GRjh#n!hUE2ElcgeYJ&rUxe zu?gnOIWf~YY{=^z_PnZFW>HhBYgy*~`M?vNJeV6@ax2W(JK%EIT~KG%wCC0q^V#E@ zU_c2pLjw|4K^q`HS*LK^Xs!~wMg`b9EoaSxBfr4Ydv29)_@0a=7*IPvdx1>38C+)~ z9d{aa$C6snFI{^}$=fNu#IEpcla?yiHnBA}!r*S~FsUv3 z!4722nk~MYB2VnT)9JS*>^Qmk@}db^Qs&Z&4sOcwo22C36*JvrGbc~#9N~>J6It}l zEV*|Ihm-attYsjqmd5SVsxMGF%GaHYcWX_HnUHI3o6rH?Oz&E+(4kbuD6K8W5gXOQnD-lF7&W*nIw@^(c?F4ky zKnt*}(N&qOAtvE>v?QDVBG?+FAlbey$+;1Sx~64&c7Q!1Ka^yqIuaoI4BD z{{r3{jHZ8|g|`#uP6_p^fUyR{kKMOv4dSxd+-ShloOS~q7YuE-+M0$2+a~bLoXPQW zXNP($HG`{T0n^t;?lp!#wulM%rm)(4(Wk(&w71I|PMJqreleIfUq69M-F?zB+B z2&h>w?ATwvH!V+X%S{1D$*CMrreKWEn!?NlLX{$*OTpMKI@))^#xT_fJy_S=v$c6H5(jZK$L-@%vPeD2J?_;a6nT} zX#xa@qpQB&&ceX}f((pe9xy!Q85|%W$G{L^OH@vQ99|$Gw>X2t1;iK_zOcB{r5POZ dRK_=8k-3GLo1@S?fRzIK?-w?~#S*}`{{c)+gE0UA literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-skikoMain-Tn2Qyw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-resources-1.7.0-skikoMain-Tn2Qyw.klib new file mode 100644 index 0000000000000000000000000000000000000000..bdd424a620db38074f93a5098c981eb60824d178 GIT binary patch literal 5700 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-ui-tooling-preview-1.7.0-commonMain--i3iSw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.components-components-ui-tooling-preview-1.7.0-commonMain--i3iSw.klib new file mode 100644 index 0000000000000000000000000000000000000000..9332db26241ec7b230a6590b8abd4e17dd27868b GIT binary patch literal 4651 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3i_84+C81OKB-{aa9$}anh<$k~-HqIL%m%~1M-^CI8e#ha~ zzrM39x;Ceo=&muGQ!^o~!YG!1jonAR8QquOPulFu-e{CJW1|*Z@Pvr@l=n_2PTjsPn0D2#Q_~z1;n@=DTw6AoXouJl*E!m^1LgK&7|D?l+v73xUU}z zZ9I9>N6SlRRgeF<^JmYV|Ll9_%;wEW8C7;$9VuVDK7B4W`h01v3CGF{+8SQEr+swGlM0wDPjX)M^t&Es258X;2+KxXS@=j9^8CP^S^ zLQ=(nqd&U3E%$54g8k6gebHSI=m&nhk*H3 ze7{DlzV=p?l^TY|>m|Vc3t<^-Va@G zA`A|Job&&j)quWN!5ac(IZLl3KOb1Kk(rU*$q5O#l?L%p%W(#aB934QUaw+ruWqal zDF#mTm)Pn7gGL8$@HkQ8R=t9v)UwRfa`F<4KUJ(Yh=)1?CAeaPHx^xX5SZ$>spOtS zy0ZGl0uIK@6&f~rcTXisShJ`nORI(SJc=<=+LW?nvT;dBz=hA8Jog{#FIeU?b&_rI zgPA73@7=E5t^W4RA#?6ECcB$Hu`8b6Y~WQ?u>57tyk|@if{ogjP5LHj7d)RC;qr*> zPO$Hs*C9ci3LcX}+Kjw9Unl*JVrqG9vrn(+rm+5{Ohe&L5%B;yPEQ|E?`{J2Et{Qb=zC4QVXKkU4e z(Je{ONpjwCrhxianKN3AtMr-e&R=pZaXfSONUF{PL zuywZFs+}IyY{{tYVdt1ROYBKunEh;LOL2Mbi9Vg5HZHs8FDxOIP|WPxrDoK{quV8R zOC(pP@v!%cA8eMfkMxS-OLuTAIkm&lE73JMR5|O5$-6ZhT6XWct-iIDzjWJ1Cvo{q zn+xmIR>symljdDqd1k-Sd6Syu>33$CZQzS%dc2`U>;8uZ`wudFbG^!oIeCS4*PQ-b z@zg_g_1#&=a<6WxWPkch@c*V+ZF^UxC+|JFV(!DZ(^5NkT;Fb&|3-M_cgcy-n-|70 zA5XsX>PkcP7OnelDyH1s*Zeo_fd17Lw~Du(IKG(6?&ZF>v(xYAnzDY#yl?e8aXnjZ z@aeuR=4+-`9Ojq4GI=B}v45d!`^A6t;<>eAZ~qXt3WM71bB|kG_37JbTg6L zaG-V}0@wnr!f+w7nV79abi+Z0!5j=~1|q;}0)}I26r!7s+$;k%0ug{4n8)xr9m#ZD zO+s|bK!(G-0&3|Yz+|E=!)*7V+k)KI0=4rH;5X^EU~l!ITM4oP<}pws4gn^z5F3gx zkD)Z_&@Do4MS;_zd1|f_IA0EktezftqFrz{W<2 zh1eTv=(Zz!7u487fK8Oxj@k4=w-~u*12we}K$o2YZ^JFd-taf>r`|@kt;n=9f|<@T!aiot5MO71{no&FR0c;fEh?eW2r*}yjg+q$-p2Cghs#s KehgI3zyJVVj^wQX literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-commonMain-Z4pWpg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-commonMain-Z4pWpg.klib new file mode 100644 index 0000000000000000000000000000000000000000..3eede96fe7deb1603430d20d0ce69f3f434d93f8 GIT binary patch literal 163407 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

  • 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�o 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%0DO>l$i~XA%i>gd=C5?-o|U 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 Vll<$p)=NMJ832$B{C5E0{{fkmD{KG& literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-darwinMain-qEodUw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-darwinMain-qEodUw.klib new file mode 100644 index 0000000000000000000000000000000000000000..8f7fc38397d9fd0bddcf5c883b0c4134c2c69401 GIT binary patch literal 4196 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3O_8D>?G7xb4{zr^+TSzu^84vLngPG9DCMVs|wGXE_%xjTi`x8|2WlWLz>^@qIuUSoHlVO_806Q$kz80&&87+5DW*$UP5 zoS3_J@wGXPH@+{|$f&=Y`nmowE69g8x4G<`4fNqlAja)OK_nmMWaee3B$gzS7gplf zOv=qqDa}cR2ifCI8&2wbT|e!m>#5~+=8X0=?{nvMPw4wy^**hC*4tC(&TK8VjM%L0zAWgSFPMBK$Ou2a9i}U^Kud4 zlO&KdA*tfP(H~vi%7*$&HSCR-GJ*YdSZN8D7|>55c>SeCjOBXC`MCx8#i``^&zvMH z4C0}d;qs=p0@RyM`j+z^w1^!3&`tNGDy?H6AijT2|QpFi?AywA!9N&b-1 z3UN2P3}76i%uf zICS*bL7f9y2NhJ89Z@~-;Gn?81D6h*{nk0LwfkhlQ#SF>%zAC%FXyi}+{&{%_b)X+pKQy9VSZ|W9!$_I2i z4_@~p*L@|4Md_&}#pJnI3dzMVgK`s-^NZsv%uL8LQW39_dB99wMrQG*jMwDMyyTqH zl++aRTrGrTc2R0^erZv1Dw$!5KLE1xOMrDben&Dgi2y4T``IRt7op#qFHRDd_C zcI37ODBU0cs6htPj?scbHwL5)<_b{51Ob#85yoIPQ_#&pZUlguB?yp<%^b8w3c6_^ z-7r^y8V(2`2^5BT4(=-4%?NaZk?V9&vjG80h%y*QBLdwTkg+iLgBl13@R1m6Fq;eL z79dyFpymMrgfJ5kKyVANHx|%s1DOu<4yXZu01rs94Qq1%-7e%h7gYTtfFBD9K0~$( zXJY`}ZjfCte}Zat1o%v*-Dq_@x`oKq8mLZ3fHYR}JPWZ9OAU{1HOMNMUqSUI0@Si$ zu^M|Vif$-!H3zCS5#S0zL(%F`bfZB=!Q6{l-r2Gv+zYGh;LUq{#(-)`1Zcxz43;_* zpMjt%0s(H~H4weV#Ahz3hC~2kU{4xW1j77_a42SdiO*zE{fGelNG4;cE%6zI>h)Vl c24Ol8y{-)KW(B4WP)AFIK?)dXCSW%K0D6Y-HUIzs literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-jsNativeMain-Z4pWpg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-jsNativeMain-Z4pWpg.klib new file mode 100644 index 0000000000000000000000000000000000000000..a1fcfd62cdb52f7c6a22e630a1d0bf6cab77e27b GIT binary patch literal 7099 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-nativeMain-qEodUw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-nativeMain-qEodUw.klib new file mode 100644 index 0000000000000000000000000000000000000000..c7e46d61d2051086dcabe5c313a43dba6c9e89c2 GIT binary patch literal 8083 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 IzdnNg19#qBJ^%m! literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-skikoMain-Z4pWpg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-skikoMain-Z4pWpg.klib new file mode 100644 index 0000000000000000000000000000000000000000..b53f16e415e57e1c311ad293e5e90011a1d6c759 GIT binary patch literal 25929 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 TzfAM^=kD=;iC~d^`rH2je5C-z literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-uikitMain-qEodUw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-1.7.0-uikitMain-qEodUw.klib new file mode 100644 index 0000000000000000000000000000000000000000..0fcaca937a550e89e0c8bafcb0533e94317a15ed GIT binary patch literal 15085 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-layout-1.7.0-commonMain-Nkt8ew.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.foundation-foundation-layout-1.7.0-commonMain-Nkt8ew.klib new file mode 100644 index 0000000000000000000000000000000000000000..356ced87353dcce3bb80b0c3c648c8477729cd2d GIT binary patch literal 24909 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-commonMain-G6kTFA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-commonMain-G6kTFA.klib new file mode 100644 index 0000000000000000000000000000000000000000..19d967104e673ffe1c9e95044f9c5f6d10fc9074 GIT binary patch literal 47555 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 J45C~h9stSnno9rx literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-nativeMain-hgkVgQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-nativeMain-hgkVgQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..3e98d6f8e6a622cf1287270e2ce41495d926f703 GIT binary patch literal 4385 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3O_U-06gr;?=XMnV(a(%$6p`3Q~X9#LI2O%wbIUST6eKT zNu;Z-i@K_|=n%7rm}|1O@hX!A;Scyi=S&Pw`^u@bi=)d&;Lnpe4U;rG?O4_4?cAJy zWtzLfxAG~hZ)5J3{r{y8^4sNY`y-|T{q`7$ar;dW$!|HCdD$t6C5hyPk~lV#a`RJ4 zb5h}f_1I|RNqw*Dr@eGNwY<)p(Z1$=?!4{^eZQ-xeRVu_Px+kL*kt(VvyivZ>7d%i zRd3cvtg#UK9Mtv6I9O{9OM=dfIBm}o!In%fi=|(TJ~#C2IU=LZroQ8$pF|rZK0BWq zE{Fm8cOzauD`9hKL1J=tVtQ(PVqQv7er8Gqd4XU+l+gxoTlBK?auK1EB#<;Asp7!V zA6?zbhWbl2?2VT)fz#<>r6pWqKtGA#^_Lbgmg^ugc){t}!WY(aTLNNiE7u%puR;j^x>85D&8!B?LnI z4E>l5MO<=^-~7tgE6nOx)MOI5Ht3?VqSO+RhYV_lU0ZkG&-m#m(;yraxNO-O&Vn#c z$ItHnd(%vQOxh7=+83XE-Oln`Y{A*8=h6LZ`tGna)h#=4!hGTl;l&jfewEOFn8wB6ly z{{RV_1E_~Y2B z{^R`?l`|H5{}Z`W@$+Q&-5ocbCc31utc;3@ejXO$IJ+s#(sbq=)wQ#aKWjYFz3frs zzOKC%i~me+$WkrQjsDvFisxhZ@}oKVNxLiFF8a$3imH1mm2we^FyCktFJ+-8mJQqtLxfo_p zZentNaeRfD33)~;<25ofFFB_)B{hXSvxSh%E=n!VFD*(=CDZ4MNJe4$JUhPx*kmBj zk@!u{ODxGOBTz*#GKm1|L*xb@tR)9(@Sy^X=3js}s&?eY5-8mu0H`eq(~i;jLpKJb z4dx0^%L)Nxfu$nM7|eDSx;e=07*M+k0n)LVgVxGIHw~m4<|$oRD8e8EjLi37CjtO} CnoWNI literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-skikoMain-G6kTFA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-1.7.0-skikoMain-G6kTFA.klib new file mode 100644 index 0000000000000000000000000000000000000000..570f24a2ed9ec48c5646a9975108a5e3b3b7bbb1 GIT binary patch literal 5894 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-icons-core-1.7.0-commonMain-OY6u5w.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-icons-core-1.7.0-commonMain-OY6u5w.klib new file mode 100644 index 0000000000000000000000000000000000000000..e4cc30577b3e5b30ae038b7fdd34fc8a1f101f91 GIT binary patch literal 21037 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%0ATTUOlnGemE|&4DqMG)!mav+dGnP+Jq&2q= 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-ripple-1.7.0-commonMain-hYj_-Q.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material-material-ripple-1.7.0-commonMain-hYj_-Q.klib new file mode 100644 index 0000000000000000000000000000000000000000..0ba1ad7ba61b4b0574397b2a51142d83a964a7a5 GIT binary patch literal 7567 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-commonMain-HpF0Ww.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-commonMain-HpF0Ww.klib new file mode 100644 index 0000000000000000000000000000000000000000..fb11420d1ae4cc290a33919a25e10142db50df2d GIT binary patch literal 107840 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

    RHHu>QLpArs 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 AJpcdz literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-darwinMain-Kuw-mA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-darwinMain-Kuw-mA.klib new file mode 100644 index 0000000000000000000000000000000000000000..6ea3aaf62aa179d3298bb198cd91bdedd74c4ad8 GIT binary patch literal 5128 zcmbtXeK?bQAK#GKNVB{>QHHow%uo(Th(%JWDPI$lEb zrnt({l@^ub$jeb3j5?jgiIONv)D`7*&hy-NS98zIs-4fS{jpuUKcDaCyYGE}KR+Tt zRZSPBp`ihT!Q6p21PvGxMy1iodzgINkl-aSI5B(zqY5Ju5a4fNDj$DIT$BJUMZhAn z8FU(tKS#vMs6jQlp}l5i^~3!9&Nk`;2v5ze@Dmz-Gp-Y5`F0}xa8~1V5wDtD?-In3xF10R)gn}EC?I#YSmRk88 zY0;+#Gu$rM+mtz(Ul$H7_vGv77GSO8RK@2j5x%7X?_Rt$r?N*@Rt@MJjwiJwjpv>0 zOf=XD8Vn$3TAlz54gl}P4eCf4WHQ*%R5G8eT&oP^F|jz*JxtnM$NKHBHrx7kw))!m zto0QN*L4uu@7nxs>;Is2tF@0!i=WW$TGG|NAWT||!&uzGq2Y4Fawp7K;E_>>pta>{ zyR7rs>(=mfR*&WUyY(e)03Nn4)!ARmKc@dA{wU(ZzuJi%NZtV$u2N{)OkSxm^w>z z@T9BI*V@k!$3=2jF&rLEIe%Y$kp!OfQEV}r1nftf9=6V|*Rgd@dLQiG{3+FT6=2m^ zq22XgQVWhn=F_+gGSfjh<6D#z!;|KO=Qm-rzmMlH^l2mbSdTUbs0(g5p|}{r{n0dT z^^HfPgo7B1f~kEG#t9Ahsit3Zip9bl6mI;P_)(I$FBsSUs3}WSENn84G_}B4!o6|& z+UjsioTIikoQ_mKqoGOsZ`c97Zv`3^K1jwDBz`wO6dy;SKBd_2`laF4^ntXedU?7+ z>ZS_~KgRIj;N#*+qSw-+K)Wv}Y`L;suv?@HA(?f)YIf+`*|oFTv!2MkZGzenv%f-7 z2#P6cP&2>g88(0G@qDj%qtneTqu&!w*N0UHG3f&{ZC|OH^f+ZyJuLg9q_ARJyPKAO z3G48t7(MUHA%cc2k9thTTV5HKC%9K3XVIs$hIU#kzr-DM3d>5#=<9hb?p(R`ZpYqC zWQcLRpca1Il_NSaJeIp{y1k~;)v?ag(wW;pJro$@9Bueh(eHlx!MrexE!8V7aKlC4 zB#|g{MaQXYn$5V$4T;}aHU$r@Y%)LyQZQ3tjup#vT`B@9Q}~ZJM@$rs7=ew&=ZTA- z08O=qD|!xZQf|C(3^p*;Y%){1p(gxORXj;jz`Wt61-fvSyQ6R3>4_GHpWbI|idIWs z_e$3);vU+pHPxena-Jvw3U=)3T?0-bR8*v*@|A9Qp6FhAKjvK^~a;n zsuNV(qIKIJ4isIAg{K!B&$`g)`YM*ibLUkh`5PG5DgA55%O-aj?U=sNayod*oiY-3H?ixiUiWs73~~OwGjEE# zE1mgw+Lu-a?0?r|dUj$4KAjS8zuLvV+T7#;)otR?Q|;kp=S~i%@^`!^_imxaO!~Xz+53SgB{7-L#0ubs~RK4&86`;d$^G_C3~v40nr>j zkaraq30Kht5|{MBLULjN4;J&W;Fv)q%)eYZkArgq0X(xvE?;oSkfi}HlT-nQcL-*{ z?IxjF80BSoq?0lj-61gL@yG;uSvK%$NmXFFhF}1Ey`ZYav$ia;bnpeUH3aTw5igRo zWo1BGN&R4ohVbTdWEN&>Spn%p3ub5tfxr{;lMR{^ke{e!)j)QM9WW(B==l;gd6`*O zN;)@!=@0@z?F)=aNiCL`WtF9a)qLe`OO#VyETzgSgB~UA1%n%eGIgbt<-|ByP3eUS z#x@98#6Q$rB*e*904hpcgNqx&8Q{Z$5thHkWl5#?EV#BIOnj15W{JyEgH)1w=Ra_F zp`dyt+ji~{u80O)(-1Dop^>w+6%m3v3W8W6q3p_5#0#!y2-`Im`h^NzxUdy5g9{ph qK#Ez;x>iIq-}oFdN|asJM8Xo_MuWlhfL9?f{@;Ny4fcP-cYsy^ literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-jsNativeMain-HpF0Ww.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-jsNativeMain-HpF0Ww.klib new file mode 100644 index 0000000000000000000000000000000000000000..575ae1de1c448e220fd303a72240a2a9fffa35b4 GIT binary patch literal 3373 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3io;Kt=WFX*jvF?16j!cllL*)aaYZ${a0`@e1wR*nX$?Nxg zyLW45S3S>CU0!T;DmhnP@73-a&&xVrZv8YmQt&rg|EGcH-+8TX-a03ByubRMIkS0l(uPMKXS_8}o%dO}L8xKlmr0+C zxj%IWuU&G%^~-~25t@&uT|Rw=dDADM;yDs?9vrhylz88AyaF60(~s|383gp@X1qRC z!sfn$#N_P6^wjvoyp*E+%#;f9ylz00(FSl^^s@7E5n+-fkTfBw;=s`#UERut`b#zJ zjh8Zk{dHJr36~hqPa=5zrA3V8ddc~@1^LCPBr6Q!p_bwDrndsrn@;+c_S+Tq zTZn?ayKiErz8ui2GI+gfLW*1TauZ8Zi!u{)jLGx3Gntkd#KSGd836>nze6n4V$!WtUrX*3Z+_hmjp&vNgQeuwH_4aV%+_x}4F?Z+HX>$76>NjNS_7&Ih z)l@v4U{&J0%rN-&Nn2{tOCh>iX1^ zZ!tla>xpUnl;}5m8}~j=dA|DR#jAgAWtD9*d+?JTR79Up4!HUn7`-u!_=;#bY=K>r zpI;IWExpK#LluI?8pNYS&SRv4iV>Vdo4N&_@&Vn?gExr^Az4(ETAW{6l$=_O-_49n zBEV7)xn_n{xuBXE6=2lU0p6(Ekt;$_y^H{$N*|^jqn1WD2BZz<3Q(tpOPeb3dpiLx45JSc6%wp<94ltAOe;1mI^T!XI!8u-9tnwt-BCc?VQeA;4@> zY{OP>p<9JqKY;2f1mIvH!DC2P;i|RJZ3fu{^CYPLL4Z}{*^H$&LbnsSs07tM2%x}9 zmTwVu;;4(zT>!EX=4()qi~zlCSX_X;fJQeIxda6j$O!O+prL5RGrG|rqhRg@6~PGL d%Z_j_mI67zn-yp`0|P%0)&m1~22eQz0|45HX?Xwu literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-nativeMain-Kuw-mA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.material3-material3-1.7.0-nativeMain-Kuw-mA.klib new file mode 100644 index 0000000000000000000000000000000000000000..25fb86668ec052f1f0a3beb91f76a1bb1ffa5193 GIT binary patch literal 4234 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 z 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 S5Fg+VBr)J~B;daT0sTKe*DTKf literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-darwinMain-bWTFyg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-darwinMain-bWTFyg.klib new file mode 100644 index 0000000000000000000000000000000000000000..7051d6a47f6382ec49fd5a1e1a2fea4c9a8b7df5 GIT binary patch literal 3659 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3O_HE=kWFX-1y{4NbS|;Sgg9i^5Ot#>Bn03DDQp}fki}vTc zw(^~OZ(DI8pk{$aD&N%kzgK2+eRW&&@mllT%}X{!zcp{)YW=iiv0UmC{Tkb1mB5wB z8BCQdly#+l6hN#!2XMs1((P4aV= zeh%N_#esL;!{xc`Z3WIp4Ww^ZQtpN3=lfI?>c7^>G zqG0dto7kx@2lT28Uhf)_;ugK4(!7$)Tr$0FPnJ~%@lZ=qz3=s85(mdej-t|%&hNau zg}oi+yj-97i@p_@Ak|0yqDy^G$S zI$Gz?Tt2P$@R7$EZ_QKZeO5k5@`q%cr%C#doFh8vVUke7lcdK90tu567&b-jh_IN! z649u#nPK*nHIo)FG_yOqG@sVqz!A)B{#o5kOizvZm~@N|{|9Woa(;1qg_#L?Mk?YpGB2?tvy9ASt&G>?%)I2B(v;K` z@?0&1WOh+%aeir0aw?f&ia!9d^Gkqr6@EuDGKm1oPUIE=tf~jK2v7k=`yjv@RXcKB z3Q9K!0BUT&v}3dm(2W6UgSi4!@gjgcBf=QWY8c%dq>ixPwr(W{LBZ&qMXF)#=Lp(>Ci0PYb205;)Ki~s-t literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-jbMain-9pDeVQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-jbMain-9pDeVQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..2c32fa03aa87a523e05cca1739c3c3788d4b7ea2 GIT binary patch literal 4531 zcmbtXdpy(oA0Ep+VuqcLFy)lXi@E%At57(rO(t|9*2Xx(Xtr8NBq5iCPE;JXT?@3)t=ndzcuuf1OT|Tw|D&lTdUzM`S})ip1#Aw+Pd_c~K0yua_b7_xo%mpR-B> zzwDEaT2a%J8m9e3Mh52Gd!2X)+pt+aY^6wzwflLe?eNxH>QbR#fji^!;4VOc2Z8V6 z1|ljcYI?05iHtf|G;ZfdbhXxsM2uBC;+AQtzdTQHie zHf&KbEd2U-@;^aRZ{i%UtZBCy&ziXcKhQKn8ak7wIH)mXqHj`@aFB^w`Dp_poG+8n zfVa3W`coHFRUpB`m*7pp6Ud&F03T2K(hQ@%i5m4;Mc0??&s_luEP^sq8>@oR5tPtA?VP&5tdArEqg=V2I{o!t@ zHj}6*6(%FHe-WC_#5hGtJ#0eulD@1(tWtP#dYHUjO?azMxo8ro>M;800 z`g}cS^WXhBs5%XA@&*@Qb`C+b{67kVUGJSF z)`Tnsf$Rc$^Wt64d?|aZ>qDlJC}e`)(yr6iAJatPIr8&PSjEm}@_kGAg!bfg{?=&R zNzK8I*9Lki`PZr?Paf~R${iBSG9#t6PTje^3`>YVMA1C z+0gi%Oh)G^XqFg5ZK^v27vcb$M&8pV2)h^r_Nx42>6(}mZi-C3ZS`!@G7Lt1K3cKw zO;&PgM`^G`>IpL3u&`{;`d+hB&Y3EkA0-?MFOOA?LTu>6-U_$CT29nnDQvW)M!fW4 z2t9dyMZU6TPaa*d!@31IBqtSPQwPh5qKi{DJccCGTJn(vUfY5+*#$R}I*Hpbnx&S* zQ~rjH&_SD#wd?dt#KOiYPuJ2T+1){%w2ZdBaaK9P>#VcXOVApgv8*guy4H#6KVes4 zU4hqjFoU$B{8kNIwk|q-sqn@LhxAN#Ny?tC3LP?nnTq@9f+X6(my^nOIu`CfdGEF+ z@~quqTJm-yh2Yi)Np0ten6fIgInFI(=x}Z7$6%MfL&3;`hIhGMS_Pe~qPuC17Wmy3 z8TThfWZlkEf>l*-Pf-$?jH6Dsl5-i8c(YwW56phWoqy{lUtVedw(InnYYHzy8uN}; zw37yQyOH6+^=qHf80`l}>y!f&X2MJect-mX*9{7@kE6DPZekEO>-kl|D+6~KQe6Ky;;q6-U{%Xvr zz}(~QvdiFG{6;Pac|dlg#KUYo5YDpB$3IA~G57$zWUdw(o!;@Wp7msp_H4!O+_q-j z7?wSF-~RaH;^|P}uDt*P(c<^*2hYB~;IqFmQQv;EzH;5;H}0-_GSVqEu?a=`*oG#A z#`cDUax^rmvue`}46FPuEwLprOjvspVobNZS;HcgPx!CrnYb6vqN{zJ)+qjL1ep~GlmbD7b^AK?R>c9 zKmIJjKz4JpaZ~*V1TzrLj=!}p`Xx;hBbkeP&Kl`2HPzOY7B!BnBn+^eR)?|4ZwCsV zn<8TQJFQluMeTpw7cdVMfJV0XqN)gL zD3pKzDt<2CEUizi`6?|6Kd%K1@I)D*Pc!{koa~?sQ2+8T&U6@$5QP*JK%;n&g1%g{ zkT4v`MZ8I!6T!ixJ|7EmI}S7db>4ss=5#K=KLMQA7o>K68t^qv6=0g?q96Flp;?%% z`FVKrESROa&;gFY0v^6(&CdqD&8Z5^z+5l|u`Qm6`H6YsDVTt{SOw@UD02bvB6*l! z2BhWG4`y91&V7r_!sN>@z?(b4q|3$o?-CH4d->Hsc8(n|%W@G5{f1TJ*jbot`Gt7% z513@R7+;c*;9SeE3aW7If!T_SZjmL}6Ogp{6?x|lI9<5FivEz|A~}m+pSMNN*GB`z zeDxaeZz$LCBD0QPAN0#vac~fDks&ESU+`GqC*|$i;27Xy{HvsVLxGIHhwPL cq`3787y~$r2(Y0Lh%E4#01i_j@HhnWFRHO>&Hw-a literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-jsNativeMain-9pDeVQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.runtime-runtime-1.7.0-jsNativeMain-9pDeVQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..ae14add10a35705ddade6c159d831a0ea2b7b15b GIT binary patch literal 5609 zcmbtXdpOhW8y_QzoHkQJ8adW%sOWXhsn#TiNZw}JuwQI!LT@C8-pVSILxf7nv2qUA zq{5IKIw+@*4t^39(cw+rci*noW)9W5ckQ~qe|(?M=l(qR^L_67V~++4K|!LTq972+ zob~5~C}=SVPw>L+^9|H-b`k~&*t>m@0fX$(BEY*K!EbNc&kG>M1>lDx5xof1!0$kq zJ1B`Lq`37!ueZ6hxj3Ow`pJ?wf&72+>!A$;Q(F^V`?DLg$5-zN@QE3a{j2-rc&*Dw zTsHE!&>dMafvgsuuNefE4e0Co6mWc%gJT+|m=cG_C|ZqYBStFlUK+hXnwkz}t2|g~ zhO++irzy>qrZ17S7mo|X@h4brE+juPexEPlyY6Q)C7N0-+P9lAC)%{$qu1PCgPz1R zHK#>VoaT5%^{&;#`7Bq>XQu?lsT7BJwC=lim!Sb# zP0iYy*EXS>13djBd)`FjOutrUn0)^7E|%PD3rdF1m8d^%&t9B20gEHyDP$r(gugvN z{uDIwI}2hj$&a%+o>HE4&ybtUk1;eAl+Gm$Q@u-qUv<^OGnc?vnxG5n()t;4#2&Jr zKbcD4Pv3@LqCjH5kk!`uMM*S_*y*TJ4 zB*Z8CSR7)S`l&Tst;FDM#w}t+jG#2;zDLS+O29eV6T@RyLrw<3{RMZ>?Ocq`R!1x! zXP)wwPR=)y9fJ#I*B2B-sm9(+rpDE2E_)$fb;tg>IVIIt2)^5|AB1oRM?HnMo`lIw$PVvPh&?Y~1CT;ya@8$}#~m9AR3&@@3_4uKLL;%(aQP zCPsQnrne5$_UR9#{w0r3Q?;uT9(_MOjC*UN+$j_zU2UZ@59RzFU!YDAL^S|wNuL< ziSBxOVd?2`YvtvZO{&?=1T#bWs;Bx17d-0f+ii3+s`H~RINDHbvz<&{ZSU%+@+j!) zF*PC>dLK3z3cYwyKlZks;#i60Yp18Mu9O7E%IL={#0`5~_;2?@^XnhsSI*98RJcz%2BvA7miG6g2 zT`h9iVMq_={w4uOlCv-boDQ#RFN!!UVPz{T=^;ZqlV$g!;^_F_RRSt9D^#`}T2Vtd zbnE|9CjCWgzJyHPgVrB?u^)wnC&Sje$d9;bi@BYFp1@m~Lq-e5uExj&=B#y9L(}{( z<*#YHR9yy9P|f}G=;L+Po=W|Rr)%;K7|LvEaHJ*OU;k+uA^&JYDJcQwWtdcx2`O|i z-lG57s+umEfVfoTik7Rl^=puI+!!x;G`e+bMzKgV5tS-;$BOm@9dW2W7jk%&_W#$QG?ZL>Bn{Vu?>lv~JnXt400l;BnKeupKuJeqbo8 zo47WZW{7sz83rt-W{({o6sy{x5H^aq>LS;XN(+a55CCesg{;`<%Bt&EaGH3c-cdG z=k{^4(faoO<Y(h>B88_lt?wy)QE*O%?Lq_NY~i$`xaBhVQ!JTkgf@uSs}^Ux7`a z=fB;pVl1SUF0#8y(uppn)ON>l(kqx*lqqR*j#eQZRi>>NmKw&08N|0lAg8iB&sq2^ z%1s{JUJ2WN*p8lOc_)ooD);8B9re9_a$ct+WWBcwVwKmp-0hI_tryyMBCrhdUz^^G z1l<}k_t|LnU@S$XPu9KfYyJGSb$2zhn!osh&0lG*y`+%If!J@OIDaKl{UIz8J7f2s zaZTL4Ow61x65)e&&iR>_lY49eh9gcC|1Rge(=%@l-0gj44op@; zKl}vQN0(h=Zr$^aYrHuCy4iaV3=*8k5aTBYc3rhrRZFp7-trli1q6?t-cE&NC)5tM|q#{2*iE^^1D#N zb5BjsaPD**`|*AGNsWz-Msfkd_h20%k7Z}Z9*KnN8(WNZs@sZ39!D8x zS_}7|%AO;3N>=9m8|+!EGy6okW3jwQeE&%Fb9Toq;Rl_{^AACz#pQ{y4{T4^cpKho zQ29e!CXx6~1d4UKXbm+`*pQ7d&#`Od_C$?}Xiji7g~gO+|7()ke&r)SplzC1c#A;M zMy9;KuT6+f8`2x)i-2R{%$?Ha)sXzqh#;iLx5FAxFKvaGKYL`ZVy0+LBr0`VkUCUa zAeK*+6x)?riHFJ~A5RA3ccyt1)ER1?wB@svzy~Y97Sa?p*|MsM9?T=K-{I<2hB>K+ zqy_IRfCb}qEcq<`b2HWAIltV`Hxck{hm}c|JByW;f)zyn)7b)-Ss5@3_VzO3?&fQ}`Y8%E*RN#XlW8IKRi-gS$DmTGUVGCQxpm2S$To^pi8bY_|4c8cm>?9^ z+mA`v224?@xqc;GCg1O>}U-9&86HFx=W?ggVocAgk@O%Fx$**Ae+@?*2Jqc1AAYiux(%ud$sKw!dH!j$tg z(gG*Ss;yct?Z2)yG>K@K3jU)Z-ITD4HCrjlCfWQN$lyw%iQYqUL7VXINE0pFDS7?I z3As8M(GxjRIHlcYv9e>=)w61{NY?o;-F|i0GYA9O8p!!L&C4Yx=_IktTZ2KDHV*IT z4!UwKRJp`)$_83?TKU*vo@U4sqqaP!eB;`TbbEn>&s}F#6%14P{C6!1OZ}FXaT7Wr zVUJ$e`!~79$b5k8_Mi;<9_o!QsTxye+1C_QBl31<;c2qa*qBU5)p?yHX>I2K?!gh! z=k`c!Nn!Xwbje=-ByQ4qr5-1+>Ga5rICrrF1t^=QDdny%o0x(41H&+>dCP_qqE%1a z*wOcp6Z!2Ke;M~SS3WYI@9u^awzoZqY_v;o*3jlH&uZ`PyjhxUc(c$YTh%wa^1)tS zaKSFmM?E)6PQ?%Dr_2bBbB0FsoDk~j6Pd2)>H5ou^ToE%-im$Q`~i)9eoL%(XX3-k z*xaH?b(^b*z9|tMHNPxaU)74*Q4sa;6Wi^XNKw7;{(U}wnp>cA?hKa_D!Qcqy_x## zEVuN<-36{NUQmSOb6g9`fwv|H%4-vAtf_3{A)YyR=F>=9vk%+<%74-M^iGr@##2ak z;DG#DPR}k3Cotje{5noaIhJyfaMXclO$c({!O28sA7tCbVw_y;^PC?Cb2A$ z3@yh1q{)KB=Bm1c*E56mBr*G=Bf|kD-6f`KlKA6ZmSt>l+LD{+wmS#d#QIhvI7I3# z#Cp&i2fTG;IQnpLQVU0qWg?+D)!_YSB?AJF*J#|jA71&p>CEM#NsR~{HV7du)!aEJ#$;b%&=;Xx@XKZ^Hk*rsD^<)`whom@?aZ%4BB5LB|59uQmZ(r8<#VvJAx?=ZO z?ybjLF^2D3Jbc^LD<0vJ4j7LU7T{^y2@B`c!|jJUSaUz!AF);7H$(IqalmD6^Yq*( z8s0lPt#nng+Vw1MCVuoU(BG(jSa|(-w59E0ekgSNTxqD}xU#Xmim2}GUz<|uqL;k; zA$tf}76~o$WV;Z<%oe@RUY=DjX<3LVlw|O<^w1gE@XK`A6A=Q%g+Auq?Vn0 z605bWU=9c$NosX$X&cj47l=$H2jc{?K-XjCj~-D^&mcV9{l?T1hUKNi#q5fG`J28BraJ9WkrQedBbRzOqFO=#tZy@YCr1lhTkwwx46PJ$ zptJ3`%wSQc;L@Oh(0R4EdT1k@Gc~M%Z&KF$RH9qYcv;#r{Z6<)zi3yLDmqjA!`>?H z^t9d&d;Tsmb$(Uxq+&#SxX|CEP}rzY=zSAsi5XHzr{oY8FX@)rBQuNVg(g;+PU9`6 zGnJZ-9iA#L-yVMkqkH36iKH#8sL!hc_hJ+qniX^-+*6J7f*#**c^m)mx)YPvn)}F| z4_T!l>SK7tr#Xbb&KffN&c61E(yX}srvvr>c)y+u*Mqt89xk5PR4dV_*_TtF(8<5p zEVj7=rJYN1CZ3#F6fGNEP<83W)Ma$u?~_z-(>YU9=WeOv%Yq(HK1Q0F7|RMCB*ISP z&Jr=jiHRF89VfYbxl|Pi8(nTS`oXgES6tRA5wvvPAee8Q!if; zx*1`B%cxxdiI!H9l%E|HW@Wx*#G%iRK%S+Q=V~|%>6Q@B3n_MedTjcD~8$;e8-IxT0_+Q1C!>YF?xE1->f zsK8oAtH+c-e)twrwXU+HF*4GdDX^5$%7o`XF@9%7W8??;sEPs0rd2-0A6F<|-M|?^ z=^Yj@Y+8L@7nH%i8KD6vYQKO*)5?pV*6%8Yy%x~&XLT7J5Y=VB{a0%(7{H!swYUn* zs%E_wBw%s0Izm}nsJDdL89gMURj-8%STn7P)r|9;$0^Zk)udQ zy{AMJL(11U5|JF8oDPS&>Ud)+>D|+1HZ!B$uIIYOwf}wp?*HTY-}i$?N=T}JAP@)$ z1af3wTtGlFARImzOADi#eYZ~vB!>25DM^6PNHFkSkoe*^(W??D@DPM!NrYg06m^LR zpIr}ac2EF)_@HL%;abwHs-~vqmv$y1jG6_%ol<|SsmJExE=FAN;bMIROtx&osQ!9X zpW5V^i*rwt4k?3cFk5at$g;hBy27Ps4tdb#)SxU)@uvAgUTvsPK|E9)ou`uZOIP{B z_(KUh_eDCB()wK>6Sd!##oKQy8JFLluk`ocH%`h&XS1J7L+&-4%q{+CeYyYSyg1M^@y7Wk;5a%QFzh(*?f_N zIc8C8HJeD-qRm}qwul;7<2S0G?Kb43ndz{tZWe0S@=InhrO-%JLb!;w5h6*MV-`i1 z*~jl|_tbJ!DE$6O^4a@g65YGnoYgkBwRbR`VcWLCY+)3qmRfCt!I6Pl?U(1b{y<@} z{>`2OqNBEMsvWK13g(kQdhk~W2=o$<9i`qPR`F^KV8vf zWaHb&zPhHK{8_mZy;QH`;nD}DVl#JV>Ssco9f#%!N=`%9&%((sp>t1|9!%uH?lPFm zIB`xvYW(kJVoF@4K~>Y0AK%*Ut(tyRX+=7&dPE*hjmDNmUt0LDkJmuDVG*fLxqx^M zwXx*^DARC*)opQlhtJ`_n5ov$!#PTEjgn)~#P(~K^FPL38TxTtbMxe}SqzXWjmhX| z?d;IJASoP&o;MLIa>`wiSARQbvE?_b zS0sXWd6Cf^dETbTZuVs_=9!VAq}f-mnRjB%WAq`;V|rO1#`_BDBkj)JC+zS5yV=#A z3aE%P)$2kY7@L^g``3*#xz8(%PYpSpd;EvjFRj*BL+7Rt2Ch)+{jpN4LuzpSbd&S` zCU0pnA=Nq6zVsuXK7rvM(yC3ZEw3f#D$e&B6lBa?HGYrmwU>G!d5ajKsSy{=@b3u7 zG9VKQBaeI>W@*_&GP}PU&%0sTS3qm79VykkTNLY@8^V%%M4L6Q*RfFw`t=xgXV1J| zO0l9C%9yG4(pt_H*O>GQdmJ_wu4-M@e5p?zxCd!&hUf{ri>nM}nj zCZA}5ptmNiIcC}MH^vikVxLd@#0-TO^6Zm-gV58Sw|7yoln^{MO09>o##)o98ZEFy+X1#xJuhcm4gf!8Y%V@qGoy~fVb<+!S*>z7u!CDsd4ycVS&QxZ!O$qOcNY$oOA zr3V8;ojId@&HLPW-4ptLSGBdyYM(sgyS3@k$E7oG&Q#s! zpjsBj6DHGHspIOv#IZ}Q|GA#N1^QD?-%`mKJ3KnOC@Y> zD@aVvPE1dYPs~dx%Fj%xAkW(dL>X-Ww?!{IFBcIWNdid|k}3`y{n6E}Y^c9f!`^r) z6WCvem6mXc0sSO`*I!!1Sgx0xpIeY$oJyYm%t^AsARcNNE^m4(K)vatZ)v|>VZVha z*t`2CcIwLky()v(yGEqAMX#tduOu^wGrWJ6~P; z*t?2%#j(yJ8#a;tAsR9RiZwKUYP`e6Oxn>(65_usy$zh{S-dGzmvS(=I#*%~BWd8kQyhhBKm;+^wSdAI5%>`4iIJ!$=~LyuTKa{f2pHPhVu^AqDG z|JXofjI<$F@HJqRi8A6VW8|=fWl?^9Njx+Ql9w`72pVe;j}i}$k#ZX&IN3FI3q0im zx}OJcvO}%_N)n6GQ%j1;bFl=Hi(v+3<`>6Tn3<4gpduavGxL&jN>fr($TL|UkIC8j zCBUkJJadJR%q>bS&Mz%WP9-xm@i{Rsu_UvMK-Onu5&;&k$V~=VTL9E#Km`~LhyZU? z?Z~w)D7_#6s5Ju9j?sKTHwL5)<_b{Ni~w@LECw?Mv!X^f2f11VRm=#Gfz2GWY8u@% zkZzc(KvgLMumFWIT!p)0MK>6^mIGC!2oO({!8oc_bZbDy!rTw4G7;boG1g#Kpy(DL zS6`qC69Md*i3lLL1=y=kblX6t!@L8k5)t4uDYju&kmwd67w@175dq9tNbnZiBJ9;8 zx~(8vVBP~&9SG3Gip5s!6$!eb$R$0f;y{3#1Pw*2M$nB083l7MYSwpRL%0`K-ox8| z_>2Kn6bR6b#Tblg1D|oAY61c7;4u!f(!ggfs02m;Gj>eh!kmd-W#BUvR7D^_ACjq9 mDhzxEp*rs-l0mS@fH@Dnx(M)Q1qKoWgAfqP0$GOOt|9q1NdtM}hikcO$W5*5v0HCsZk+1^* z1X$bHqTHR_V8%u?01D)>Ps~&RBw{=9Spem?Cy|>HFs>s&qc9G(Hm+{piFBh>=!4*3 z>gjW|QM>CY=+9DO&nG<35k-Z`1E*n$+9&L!c00xCeS|(T0K0m2+!^~z;R_uMm8_*` zy147unHBuiVR#&_j+3s;5)@m}ROTupBsl$CZBgGv;$F(Ud%LAb{n&P5ty!5eIGfd4 zgI2H2Yh_wjtCIu9(HiB3+L~+jjhN6_Yj-D`@8(D1N`;{Wk){^iXZwzbB6M|{4@c=e zZ6y#|=XG0Jii<4^hP7G{!p*HZ*#*r0g$w>r&|HLJE~HI;AuZHQcsQ;-$ZVv3kXp76 zSZ6PotnvT1@_T_;(dCM+}-Y zCzgzs7cD(&9{n92!7mQW6jGARr2OY=tK+)~Vq5jZ`b%HXeFg}yF1HFRy+%>G!JVZrgG2?FcPQM0hPFq!@F~sVDZt%xagjIR zp`#f>U(7re&&~!L_{wtC_huxbd{_gn)%S1j$%1IGFW>e|0(Oo-4rmvNhNs8Xs{=h% zC|S$xE>Z9Wz1f*o6lU6<7{W&<-p~Tr!^G3|^`kTewU%sDLz4?8B*and0EeE&AV^}H zbxNRjQlth`sU>K}EddyFdx%=9a7^jcXn`WoP;|)4>phL%*-+uGk9oUlnBU#gLuYw>2cS;bkt=m^5nW*jbh67OO2hOHq3l0pT`eJSlbGiK}I} zXf~o-Bh!{wLE@wwGba)+A=(4!Wq%)9d5u0M)a87Y`cWUvIidR(%G+q}Hdug-^87I( z$wSTM;dh#);pnLGRMiehHV!ex9S_~!g`Uzre)%S0+(1T)@_OPI8e#U#2Y)SNntFJe zm$~(ftmb2!Wm~7?+*AETM+G6*mQv$6I~)-j%g0`Qd2W~x|7^hcI64b7zksJqYp?EY zyZ^G?CD#pn!jYTB^p(C#%6N~0`;_~mljHYQzU(XU$nnWWXjX>z$ot$kCFpUjybAG} zSM}vFHqLVN$wc&4#OESIzl!0^NXzFR&q5q~xaNgdIfnq)B*mH$3L4m@_%9#c85>A)6jvgv4L_Zwj zt_x5Nd(+&IP~nn~m8~E1khkq+(%{Y>ToPT%=NG-6Bc05wbe);vZD&pMP+FCkFsqkl zTfX4|tGhNwp1X0R3Jd`)-GMPo6DEgoEN%ndm_)ni0cf`K-knHcuJ#M^#c`76j|{4t z&%RK!@~9n=bIMCCS^_y0F3wfPCSz|5(FWfA(Dh<)2Ij4ich3{1R9E`4(CZd>;PTKo zb9xOFnZukZpr3fUj$;F=6l3$6M z1J6th?@4FR@@v9l+ruVn&1tJ&FyM7mF7_|V3fSGKmTcr{lCfuSmq;n(G>Y;m^^TNE z@RRUrmRm4Y_=xY;sh3?rpubvz-+RvQ6Y{Ie9lq{lz7m)FM5*Y*aM%P``T9KDHRGd2 zk$x1!wk;#%3O6kc0MH2hRonI-mtyfvmSST9reA|mKsfw{Mto(QsM!q`g@lpd#q1~L zx=&WPEb+p-YA{qH`*1I{jwcqB7$wG|1_A-T$p@7O(%vR}b;&gzRIxKfD2V$crSx7| ztXedq3|8XKnj*}(DYqs866a#IF15=Ug}$@CY72&1Hq2W;tRcWdsyHNtU~ws(QaplO z+TKf)Cr10_2(?N&VQz|TO+m?TCX!MhW@2JBe!?Ba))1=g;Yv-H;za-@*ibjD+Y{9& zey@W`y0^0*_l_k+$GHks4$758_Xg{}g6s3z%*CBDO9jb%z8q~Q8q^2pj_E}vw5GYK z-5vzvVrN(i7z!zCF3$N1aA+WxT^fwvuw+f#ewU=raO37Cfr66by0_Yn{6?v8}JQ)wMygp0&r6-SGZr^;TqNBFwrfkigP#rN)K} z`Ly%InZ*<5jkpR$GX!_+8UfS#@6(;3rwuz1s*v8PUgB|cUuj#DX!VN)zA0|s*MYc) zg%XS|=-NSukNgu!p=qEBEG=2s`CYuZf65G``k3~P0?)G{K@&M$eeNd4l1Cc(!S^sY z4~%oO-0A9eQNP&97-1!v>A^G5Z4)sZBZs!p1(@)?ejnal>Q}q%+SjC0Oe{{_ylklg z!b1*BoLpsU&E`}Y^nEr4D*d%Pgv|M*GoM%kOQR|RWO;Qb(ZY1r>H`YL@=sUZGQ+(4 zg3g^DgT^c@yXIE6t-z$G94Eh;j8Ef3zb1~9X`#CXAX&q`^rvGbx3^AT!dX1+o-}o? zdX?v3*~M_x6SHm7-hn>PLeTee@y^`laf$m8?NK$6&_eMr8^0hYNBZL~T9g({FTyKa z%cnnS74Ra{>2~(TTQe-lob}}J;&ReFV}&p{xc55hP)8J@TIR1>GhiSWZeK@oeMyIh0a`5_h<*2F1$A}x*Jmz z!tIsgx&$$<&MS&6$lX)Z`8c}6x69a1kXV9%Jk&ez^fy(-CuZ! zi;d?6K-44^007X37N543Dj>h5g5E75{L&6 zYr}s!DIljI4qK~&7~4shT)kbR`8mXs^Q@1{#L!NHEX4*qWD%a6jW~L(Dq_SYp?f2? z%>y?%@%r>j4A>+{tm^$__b1{_;x@Sqk#?}z(2QJI9)KT-QRIFk#lkEz6=7d{37K0_ z-5?N?E3WUyh+P*69IIX0Z$HDe*SF@Aq_{~OCf8rTME|IN6ZD_-H|YV%^@)DhW}LVY zkif*Sf&RwZ0y*jWb(^>ikYN8?QnF2foSI0rRxfekC!u{E^#HiQ8 zRqB!hVT9>MS_lvUh8UJEoCep3F!JsN%pCSM*JX=Cy1TjALzW8y>J~@$6g!&skekyJ z^Lu52N!m?VqORTtQKlF)gg@J(U&GL(8W_2Y#KydhDS!rDv)v7VSwk~CL@^1%hCV7* zK@w|kT;QSNp%J2+5(LQmDQQ>a9K2z&mwsZ*6j7yA(I*jW*FQy7q-p9YUks4kQ0E@U zU2=J|hJIWmqPSU!bJS(9?+y7CS70ZuSF*18dN^iPbyU9S{A61g4079nd$1tHo{@c& zN8yvdw+R}_A>GwAy zG{Jw<6r$(kZzJgAK>aVey@`?Zcz;pF`L}dw{}W&6TrK||W7hu^g+brd@}KywXj!{p zkGYOs)73`%kp}tzsh^d`9G%nz3gUc@<2$=aMsRQ`d`oH za=YL9yfV6*ISTv~{lY3$e$nab7WoAtK;w$ zb)&#~Rjr)m?7OF%*@)(gWjpS&JmHJ(Q|Zk*)}~H_mH9Li8YOCMq_&`^^+JgY%s6#K zWfX)4jAg#ieYGLq8E3C%p#gLLbW4TL9Dq<=9|^5gbGi;ty#K}=9jyxOqH;q{TM29o z7wO=-LZiu|$GEnW<-hz=on+qy7b|aTC^FU$SsGmIIQi()1u|6y%A#*jhFgdlV5#yv zn(JhMlW`g7!a%2mBM;GNsAkGruRU#8h)e@LL^TT?t%zzO=bZB}BoAQw|}p{ZHM1HQZ9T&vw66E0TWqFSGW73X?^k}hMT804su zZXk!E=hQjL>w~1bo8B~IIT7J;w+-uG)ouSqpi>9V#MKsh5y1YH1xU#?iaT#=@abnqK zL%&&GBNs~eXMH^mSe9nrxrq>rrSnqLG~imBg-g-dBMm42!(-&IQWcp^*kqw51saZ2 zv~p`772ApIvQ{gP(updAUC1>hrvg%K!66V$wOGS23$9Q=8A?iU_w=VfK$!)ef|{o|3;qSZpps<-&fZzg*3-W~&W8~@zVcr8@xiQ`g7=a1jF89)E80_ zD1ERw0$;n-WbTAo4P&pNr{~#${;0U;7KWPAT|bZkif3l9nbK>O{6@MaIfi@yqlX(T zPYB=0axdu3Pfby?U8jwX*03Q?v$%34lm(yH&WrV)s2-2uwlr5iAV3pi2mjeU#l7in zqjGQA3dpp}6I8fBlyMP(V=>N}k*IS3q9O2!y>u!IUkkKU?|k1+qrH-39^LPjM+3u3 zi-VZd3_Yv(nxu-hLuDEpS{%Zrn1NL`Iy`}F{1lpr%)+OglZi_|8+W(ij)1DGr$H?5l;sAk_oSJQ;NE*G8$xNRW{o$E%r3IY zNsED?QhwYl>?W#Hk$|?FYd5cuiaQR73>QqLbAy#T>`tU&NLYzUD7G(~Aw(QDxEzRZ z&zjGQ28QMNArK)gQc%V`*@1|5rW5*GD87+zw&WUa!|tqR)J@`o+mxHab(ee$ew>Z? zy)OML+{8PjjSKtCmR=wAB<{g2``SMF12rw(R&e&$!3`W6^=H}fn`PuT<2mWZQBJmr zeUg%WT2)@^VrhzAfL>H8NgGWG+6mSfX&;fcdaL|+D^<%{ajWz^wxM-Sw$WAN7p;YA ztDwcYM?g=k!j4A*uV_HU&^|ZtA#l+AdKqXz{Tu?Mu>unxdW;VrL2rNv2AN}v=8GsJ z=~z#Z@MlZ{4r~PYhI(+v9>Or=i%c(OTT_w<-w)C)m!|1FxH^P#{1`IueqCGV>ix0+LB2}vt;0xH z%^5Cka%&adTd~_$;I?+>rrwzCtjcv|uU}SMwcacV+j87l;$vKy?QHWs%yau)XKQ}5 zGq_12(@DRJ)8e!LGCsdg=*r+{&g%j7+B+CrwrY$(5jn85fYi@wYz%?wdN)wmM~^OP zVdEbqvpcYuZyX~2L?EI(p}$K&zw}9NeC?XA=GM6ZOsvzJ`8(gFB1u)B54cQ%3s8Oz z*319V(@2NW;R3Mt9E8TpnK;FVAA?bHW2k--nrac!%>*QxTxQbZ9UbBk13MIQLxlu+ zwy!t}lQZKF65_Ll7`lt1IkM+qZnjAH;1W6s8xJr}F`Gd9*vEphdw!W8-u?}*$YBRu zfDeV}zHd8Z`($7hPP-fPehRNrS(`Mm0IaNufnLZ5PCR;gpu%cZt$$}V3bPDcVxSYKOHe)e4uvfB7 z5G1z=;ijmi5T?RD;YDs>;ydRiXihy2WLda}ej?AcwD@+u@`SS(Q9;Ofzuj#xdnt>@ zFGMy zUY@0z6d*G?Qz47f4l?n|?ZmTo?m;7l*)&53Le!v;{TPfU=0wF@cYuOab&f$pfckJT zg9n8Vy?p&Gv?sjbI0G?6X$yn+VIhMKXd?4DROD%-5`UDJiHj*+9rn`&y^1DqRvuv( zzqh?~YyebhA8roHP;UC^+_JSAC4zd`szSh9)M-r;97_Sfl)KT0WkGhFn!zGlSC&mI zOSfj3i2Wodx_4VhXMMXfw2Z1c2pWW{I=oAKiRDjc_dS%B*S=s}h`SZ$!|cTf7v-=w z%2eQZhkY^RdkbWTO|b2`DxA}8vOEOOldV%k@dvh@3Yu$R7bvJNQ%T&}0TsQQ z!rR)6Xzt2C=8J72oU||e3+`ah5CQIqDHO?`+;s-BwI7s-0HFd}M+{YdVm9@3mRmwE zUD^0rw>XY!bXWE<4CTt?jxbZ1;mQ*7qQ_Mt+XRKki=VzFBiH-=({+As+yZ*`>YY0{ zbW>p|+++37uJ9t9p`M@QvFXzAPqi1TG9r<4;$1HSj5x8Wj`%Tfyuxsla|uT1pGahg2a?aGO4kPZ11_IXcaeA1 zjG1`i4|L?zC>EVtZ#+M<+)2@7_ib@?i6}Dp1S|thP(I(TNjT^fPu_!IhI2_e=0wxI z;vRszzmyE5ed7%bd!(Ykw&KD2RTtk(_hIit#qH*+NZt#LbTCCl$6og71?GU>&LG#< ze?<=h8NT31RwzJd^&!+EwdWlln*-j(OmtDZgsrzpAo<(n1PeWMDNy9U^Cn#eUHW^X zkQxa4CP#evp?*E$1Pa}w-1P+Wi1W#HvQKzRd~q-LYXoh0-rAAw#L6Y?mC?HE;@NIT zWB{s|3CNSV#JXXIg0S`qBN+}!eDNJb6T>YUQsu?ys~Z@ z%a9(9ev3?>XDq{J<<0(K9Eiy6U!!?7scW}G4Q}T24E`pSREwqNkt+jwDO$7G_JBdT zkLu*vAIkhX?J)2P8J`rgZFkcqM7jr+Yh{=0}qJqb#5U9pMib;UAdaE0Dxb zHX0VV;YC&^4C61gPlOd*hZ5?asY9OJb8i_`5lZ}c1=Y^dUInz%bE16J3DNP^+es%> z3y!PS*Nx@m1-`8pyHI{E$n>3J0Hqg>vJKA1vE>pt5}(1$4sGU;*dv!j*N#SiYmR-o zPo6}Dj&1T26~0J+kP~!j3e+Nq4LjAs{kHkXqW{FP?^p8cHebg)5D%%xvf0y-uH8D5B!~niO;jdx5mSAX44Ps zKLna^vCJ(`ROh4S6!E0u58xl3J4cT9+>aFZ18i#C#-d0G&wY5EVQ*^U zt}=cb2@qAUFZxzKC4E@fAI5DQyNC$%!y`59A6SnqOz6NtL673*0WE<)nLU9xsd)mi z(mNl008YabF;W7-$}_MVlvBFRjf?(tMbI5#p z7Xw7#iO!c`PsEP_BGa$aZ|vDF@%%>MmDvSog3>ubfFzu8^(9)wdmsoTojVosfKjrP za*Y=oNF7RvVKkj=Fb?q2sJr7gp5L49&alJJeP)0YcF|_co|57pK@9jsf(V$W!fk#5 z#&Qe*f_4;%eM*`K@+iU7o4Mhg8C%dy9Fi?$8o`VRxY}(b@Q4Fw!olnDa4~`qQ%4`R z;fIyp%9s3n7=~sxzUzPz#4GHBPGX*X7}y;Yo_H3fMD+zovd-0tV@E> zR6z&j-PP#jICB8R{j(xS!1dBLBxy@QO5=1I5H6e9Hr&R~cJ}^#&JeRdy!!D)ab1Mf zBt*U_v7>JW>x|eTOfjeri1i5*6$f8pe7kqgO7MuTj|qM&M|@o&i-H&(Z=qia0~_E$ z@q)d0Pwb#7l>u^4Dz+$0bp`5{m@G=g0cu64$I{JNW9UwO8J{K7>E}{$_W5fF?1-ut zGda35Uo|w93+xDrRwvilp0RDtfAmf%efgEq&%qqAR zrrssO0*As`Ppj%C^B)>a1PbC2_m?eBx=RKlF_+1ydQUA5e6-=!lu`W}TmH zCF~4g)Xy4jjfa-N?0{HCw1jSe7>II-T*zjqItEfxU?3PoOC4L;6tSH|BN;VI_1*iM zI;FPYo_o2>-?Zire=#fEH^@J7PDLbEDg+1sfGqgG%QLeU|D-b7s?VrxiJ^!!){nFRj(|9PLpUNGf-s!!{TX9JH~=6-z)G^Css>CM zM@l^g=_KOhwfvQDzo7f80DfMSZO3Fs6ur9f8rRcC-r4NoJ^OBHy2ss*vwsgaA1m&n zBh3@6AxfLq)fdQVMyLy|T|CV;Sj(ch(0-@C6(<5E$N9VlLoReZHvX!%?IsH(#di#f zU;zWyD-x*g5H{5pTi}{6o~W zR!P!&oiT9JrN>}3u1(;>aJv~s+Oziayg)CRZ7RraX9YJ$1QA{H+}Ud5p3@M@oqyhX`{J5UtuPULgTmoDDWh#Blv;v#TkIpR0^%ji<|%2^v*cX}S!IrFX%dcgS;$l^GUe_g}BI z=0ZN%-S(R*EPXDw?R<3p#th4*9HuqLh)YmXVdi#gmEr9;zO?4?Dpq-@IpMs@wD_;f zgPKQNHHX^=S?5z}S0Lnvf^`uGf_)s@oGuMa((OAg!Q7d3|otfJ%)M2qLtbIpr z$VdYG$)TH>rrKfdy;49r9Qa8!nsvFL!;F!Ty4=H059iDG5=*LAW}A+MvhbqD#}OH2)6_A zYM0#F^)jeFLgYq*XA4h2$zAx*Z3q@p4zk!(eYLf6hk62fDt~A=V3S>*(&=~#NpXVK z(7mw_L{(F z3ngsBAC_7u0c(Nrj$Q`wYDMrV))cu)e<>EtOC=?X4gCYnr7p7jTIgSA~6EB#$8=dy)NEsP5{1Y-A74Kz6!& zGLYTk{%jDEXLpr(PKpC2+v_4BgBRf4Y6thJYuK_qQVdj(Q3j~M0o@*BVa`_9#I>j zR)nqJYZc!d%_koltUhUe6?)qx%9@+8*7Wz9pU=#_)?E}Vde={f+#}{S^nUq)=vVgoD0`h}m=*71mQqZZpHBLv2^-w$&_eCSotGYb~qgnN;pM=gt z`@AL|6@jEm<)Y+wd zm1WmxZjAONr!!POm-kdyui0;RvpRU+%YEGTdsXZN_d(41tU?il10hYavbchubQd!t!d;E}5YgnB_ZopNP_+D=^-4q(wx8Of|{v zIu8o}14MMMpl(4JKVN>|Igamred8pmH079~t7&f<&iphR6vF??pgj;hwAUTbi<}2H zgc0;)Iy?!zLzkt%7Qh4?o*vj99KP#}MMA(Eo6MI#U~p<5iHh^-atow-`#lxAT^DP> zm!B`cFK>Zk0yCb7Jwo2X#e)qaL{W%$zHP8xeh1(Zf7GDhtWX{d@ON3iya23Fyb$Zz zeHNgWhZE8gNDLjUyd{!u(2H@@^l=}G*LS3R(V8X9W|=O#qyL36-14KoYZ0AZo+~#l z*P8_w0=ZpE@lE6CqG3sS^^k&G$Pb*K1xb2QcfsL;97abZK3Mp-J&H=N7RDiNS7Wl~ zz&1BDmyGt17P0&M6E|bVG~;auFcjHGANR49?<-M(U`+22w|F`P_7Gh_)(aprXPIKo z?}8}F`prhACi~hUquLo=*r*yNkM zy;nX_ZQhIbhj5wHq-LlO;2scWm{xDQ`H@I!rP+kQ$c5pXX9p#ZsQmB&yZwUjiIfnr z^1`*-&^d5c7`@Q5iqy5p${Ea`b(-Zr99O{(vtFw}&e-^Q*bFab;`Z=cah%$BrV0@t zm4t|x>X{VnRK);UiUgIk1uYR?i5BI|)BE0u0qf)-dM%`WO<`q74Io^U^H6zICQ|vX z4RcRDB50!3rUyMiS129f8o4YXH_W}%$IiW5$9#L#$AR_iqSNAse{lB#Z619iyX#9h zD-1FHt2G);s@NN$q@=q*dm7CDOcVI_$xU8SRj@#}CzW1O++0{w;HE@gbX!i1`B(I% zOR+zqbcGw`XHWzv^@b`PEps%WNVbx{RGDB2PqRQ{91gIqe?FO@1$LMru7#F{T`4U& zsMvKUt}zIqhDMZEM(7APD3lghQMSevwvzn-k7RU!b}`!iDXQ;IZ$lBDm~6mq8dVKE zkj8$DW?bq66>e0KRD)uxwy_(})*d$E^<7_n|89rWybV(}JJ~zYJLy2q>pHQhXpqu^ zs4i#&kZJTY{}fxF6yD!bJfretg5$vj&x-|~rBEQB5;!kerS6+1TM zYJ`@Ub(V`8oS<}YVi89R{!PJN=^m(Ax?)(`5%{4z3OHI$VyrqKv2Ma!q~r)i)10T6 z`Q-6G?n5{bBPZ5T;sp-mo!w8Y-sWAiO57QGzC|}seKV-d{aM-m8G+5Hd@aKeH83{nAH6XrI#I7;V?aUC@kpMHo<*`msPQwHZTAhtKD7PvZTM5^-+gjd z8zp*V4;2R$6~_TTW)+1#BkA*82b8Uh8j0>z(MD=_sjHFuP&za{{X3nhk4@lFVp^DV zs$kC#(Sqb@8$sFUj|zt3h`~>alEBu^nP#T~CW#7+>ZcsMT4a#x=Iz3K=4Uh~>_jtf zotcjsuU@%Qy3`^l9~;Ahk_gS*oek+ zP_0uhQ5f~;zSj4_Fdx&u5;9+*vrvGfwg7v{ueX6=yr%KFV?te@tqZsbIX6tPAwCOO z9ZOBrl(Hp$3wa;P?toim^X@!3jMX&U#Oq$x=hib8C};Q*lMEnxda-> zFz=@-Y8#wUJc7G?HTVk49mB>>BWKf@G(5@q2KvYQYa7>_$N$%gUdF#&xMKPnb=dvy zm3*GR1@&LG-u<77{EX(5_tq#PIYaZDF zgh}hyxGN74y+@Y_EVkJc*@v1zE0!ED$t4#Qi<^rZw%eBbRw;H+|EuoSbHt@MEH{DI z5Da#7uPL%8Xv$?`A0B92n<$gfEL{+P>De3JLQpF@r);)~de)4aiCw$HWlb*GMC~n$ zI*$Wb+Um8JiI;YLito(U{Z^i-HiF=mV+|>U*+Mn@wYHf7+W`91ixBxHsnnJ;Q6Vj) zTZC=*t@doGanX}-ZO2tx5h*#q$#imowJ#8<%dXkMmfunw(0u#sn__d?vRkldrN?!; zpCI402Y2a}hM9@G4(X)zblU?kYYmGw-GVWsqQcbpOzb?I+jYM9s{yZCz1}M!V{mj& zcjv*!Z`&kYJ8z5yO`-L}EZo+eh#0*dd`1T!dcD4$DY(EcTL@%V?Yf9<`VT#my>Q|3 zcj&`{8b86GxNhV^_c~^V@wYVG9T*#_14q(ZxA_OGCDi`2s z3I)jxzi$W&b+Nm=I5b%s683ZV0X@?w41Ci~F0b+GB};dV zPNc+e>1`TjgY!ZnwA~Om-6WpVti`hZ=1G95eS-0;J+k@QVlJ*ZQsvdyqr0-5k}Mt1 zUBQW9d6r0%=O3kCN+HjkA@-9Za$v_yVXH^t;#~-gtc)m8JG*4v%HbzH&NO~?AML)a zm{D)?-m77Dn--=w#O3Taz_y^7N01eVG-e;Q!czuc(V3{5qfPov4K;0q!eyej%vRA1 z*^?yc%Sfp%*|N%%tL^;`HXSqlaE^u?MNmsl*Jkf{g8a}4^5YZyB|lG(5WE-6%RVEq ze!o@QG9O1!{>De#jJuhO(ZCTtaN>o1IV5&Qi(;iVF5Nb7!sSlb%>b3LL>Nsnu#7xS z!b5bWpgRp|JXpi8>Q(t=bWl4fDLiN1}I4L8xrOrQ7cZN)nTu!K~8(A1Fy}?gX(>r=!-R z5Nho`+0*%mHbKW($ii)Rq=$W0!e9s(_eD}1J}JxuD9>}MZ;dz>+8>DiBCka5$3$=| zF4C_gUCW`OT`u}~<}?hLyum1Pvdm`vF_dH~wxMvwaqgYj;CWpDCH9AcL{?d3L0Kh8 zKeF_IUDh;d!L$-ZxxNypW>JPQl$y%{YX)en*pm@HvLm32gbPL|FOHyWQE?yaf^fS? z0oXh<4mviuAM=?(3f4`%pIP&+y3_2T@NFSy zb-?W6dk9tT!+%s8K4ACr%Jxvc{iUn@w5Llm*oSq{n@G*HJz62Rqg|x)AJXP;fYb|Q z5sjtaT;<=scr#cv{0Sfr#Tg%xGu|v^{=^_srA*e5?5khYy$8wcorQ?`&p`%%6Q=!P zB>RRL7P0zh{#IZsR!LM_^74``GG?`;7Z0EyYM{R$;Y|-L@R1vT=Kb1%+N!}}rjrz7 zHKtIZmaIxSJw@eGNSeCXG=66mQiH^$p>7#NDznr)VL4w>xbseGrN2r~yMtN=jOE@(RzeduMU~oegCZm&g>t z$;cvrNOIUxxkbHOM6!D4akTDZNyfBd2ag7(fZ0rbQ@&+yN(IdtlRF;VBY@mm3OBq6 z!(?x?&cx!=$%$5)eWwC(uB^C$vYgH2l5zhDXB&MFRDbR+=6s0_@)-eTuy0uK~vvewG^ic^{>hk*4H zOnD&F!8KK*aE@yGCS`?K_k*uwf4j{jN8iO9%nz97$*k8j^2!|4p>p23Qiw<*4FbHip zF}|?az@d=fp1~!Unk}zMiL&BD%yp&iK4On7CX*%zGBr*X?vq{?8G)aL2Tf=bYY=Nh`b< zKiC+*o)k3OPWltWIZhQwP2eLSDTULc;1plYT$6 zNwauke$v~R%(ye8Cq0i@mOs>^e}Ig>Pmvk?pZvo)FO1}bmnRxPosPVWt1>E7Jtj z9Sl$67mi1on=cw>elGunLH+nu;BFH5a&jr@VA}*T2Wy*R^5%M9u|ZdHf0deX|# zQ_P6&9ta1}odG8rhk@I$4bcf(5pj{*NOmqw6mNiNULVP_dXkgh^*;MlM6>7l4YnKV!%ednb8m$y_jX-tHtZ&QGHgaW z6DcMOW~5&U5T}kb@{r_FqOm~ZV)sa;kp4^M!M*HxWUfcxyP#%8gtBKRxoZdH zM;uGtBEHl;TIKVYk|hEkYS>!?Bk?4lh9Vb&1icJhmC|nwhO-n1?^GRX#tL{nuw0-U? z;Ye2cBz%eLkwhPo201XLaDTvYp|`~K$v(w8^34x07~PZ+S&TJMEEwMRnN9Z} zf0*9VZ`r5^eQ>i8d~ma^S(?wgIbSB3)WP-R1?Hxwvp9VU{ce}{$w=!T(0?5H`+j|B zp+W-yC}RA(mi6zQ!~d&S{pWMItICY}Ut(KZXfIFe0}vLW>r}{&=<4!Wuh~^XI*$6cb6Wv@TB3N?Dv_m*%&uie432A#r!!h zOkU5Kp>y5gMqWIodP^iT9w_+%s5gQWPT-mt0eD6P2zf43lyD;H(%|*re&r!o+5ZuSOdSr%h1gk5CUlfo7 z$B`KDRzXuIQda0&3;w9FY@v5;<>&Bin^@UAlp_8jlz)BcBSpN>4x*FrJ6cHs?`r_= z-A>5_(GE+yg)3()=1{!Q(Isa*&^p_=1rf#?9|UF1V)QvCecX+F!>ivo&sMyFqhL3e z0mt?Bc#WA^ZyqQex$!8b0mteyDM6nt9n@A+9ZdQ#cCanN7t2WpJ$mC#MF+7QS3*ie zIKBiEx?TffHQfTv+JvWkD~$p$1}aX!UpjuNQvRrDt{8LZuH*zg$C$j*i`%XLp<-`?p61 zs{C#-s{D33YTekbq7TLppeg^)*bX@GlO~J_3!j=7DW3 z6jnu$oq9xApDI&mAJ)P^bD2bmu3%kcry$KTs5y1DBnyPZvV`)+QbZw~V3nX*aY-U) zbLm9)WKY4mw#7_>spU+9{CpPat4gjs=`51ICw{(buunm^ex-7sQYv0yi^M7^w{Wkb z;vDJ=O0UZI+D+7_pnG<4V=eN~ug&rt;T>H9SQhNwh64UI_iBE@rtGtMr}W6+Kh^fN z(a7jNS4n+0yUE|#=WCJPw#z`8B0ov?`iJ&iAs*@(XdS_c?q8kzqQ@x#FWT6n#OZ6viHB8OT0#E9a_Z!LE)$bBQVc!q~Z)Xeq-KOpbq>Th@3q!a$} zp)QZl#Pr1c1V2TafU{JN3-+;xd7D#lw)R||wx76XwL7k9H(p~c_S~@E(7dtfgH5rU z(3nj}0Xs_WWk{#;(qPPha5sdsqzm|AqNa3PUWHxrfe}karn%{ys}oBZX#bC8?5|SJTk2 zBNDf$W!xc0WAeIV;jl<&Cf<}Iq*4sWNM`2Fn!@oPj_c{`+w1FRU;MY!>~=eikt|(0 zzDZ+H?^3HZ*;>{q9;HU;8Lm5A%T?@`X}zXh3T?3>8*OB>9!<;pbIvYBN^PF*IjhD6! zKhnAWD8k7_)$d2>^61o8IrC_hXSOq1@h!4Yx#D5B-b7hy@EEa|&S1gcG@Q2c*)Erf zE5yuWNR+W(Pl(mn$Uc-avsH;6FY2~ls?LWywi?B)T~}&ar_6AzRiPFsHd-@xyUNhj zTN|rQobr;K_i7@H*MZe?V_f1p=snhEsAT2qcE|4bn1IfM#ZP0UmQHX7nRI*mfZWaW z-yuFJ&JTOcoxP(&5)@x(S1cQ<&8Rj|8=xh>Q98=!bYEq&63yiK?R=UOLS$OC34#q2cmCoPu zqL%72bEq+tbC5e51c@zkb3c@M}%IAYJ?^@@YgzpI*ct0ULlT1dBz#~_wO}pN<>W+{)gn72c1sDKN86EKYKP(;>MOzl@$(1c>11Npi;G$p-*{ zn2y3Vbe6!XYF*Qy!JqSuPR(pxr*~F3u@6X@lDRDBR#lwQP4#qFfr%6>J+>mA8E6wP zr=Z~36l^(eD(~=Jrc(lmA=mNVM?jjDy{18sEaRI-BB{i@@K*wt>Ls@(rR^n~b-kyl zP@XmSa*E7(!Z-QooSOAe=Y$j=WDhNL#I)1ZS|*htrhEVN3x8q{*k%?U75frXif6F} zU&_zaqjnc{LB92hh|c)rma1mcXO`eB%V0a7CLS$u$xCT{lJHonyRbMz(68vGQKr%G)C4-tC*_9B@Cnq7idQdP#Vfjl$PAl zh;s!Gse@cAouW}b*4_M3Y}7Uw1KvZjmQOP*)(1AMwFud$-cU91VYvR)$Xt;d%W3y==5PS->~-PgVhpva*GknQ%Ze7p{?;g9tCxDL_{xWNEPRC{ zVJn|9tSPG;#iEjSbyPiNW8sPC+w%koqyq_zQdVJF^h$L&@Pi!aN}! zFz;W<0wUe}0Q6ka`U53HhrmuoRd0TfBqQ-$+5Ve=e3tw+0QMOG{2m7UUIhG}Ogyf`)%?LTc8-p>q!d#!G?Z1#TYbU!c5xp) z1dm4MNElzb|NKp1_eQfsf7wpRh$9;sIvxh^u#gLVrVp=srVFlAXbwOOaNZ&D?HbnH zem>K3?2Ujz#EXDt-PEAN;vdWA&_GvqR>ufgH#dU1O~=+hxoRU#N76<%JgQ?6fy{)6 zOoZQ?aIR$#Okj|WRF7%^*atTYxVDdeX%Ef=*oOjNrs+>EpnHE6rhi9tH;KVTV{LfB z_R4lc1PyLKYjwE~Nym0ZOitfA;0Q3(K~CSYuz+ch6t=gC8b5Lbg69}`kuFsJ`n%i+ z;VX@&D`A~&f%wDu^Xd9H`GCE>bPuAq44DDQ*Ff|iYm)4v!*<~9Gk|vP0o)K823!y! zZ8zG-TTHHB6ND-G_Cqg%t-cy-+WU>#P17yn6lICLt%HnH zGH~SP;K&0HdTk)SZ|AJQjShEl`exySPRRvuUxEyF>S zK<&$SvYeb5!JN^=1v`2Mn()@Zx-)VjKF#1*{xQA(m8y4o{^ZlzMhB zs%h#4H9$*4j25V+J;n-XMMsPlu%$VM3v{`HK(&)tuMOX?E9jP|XMBz$kpUpf3*+UN zvx++z24ovZn_9}^tjTBz{jSukt+{ajSt8)FHUTI|~T5P`sI}>r~jfHEo zpFg)#7i_3VoP5YL^Z4TnF!n&6VZ9l~H=mUM+4ZIcAY2WEroDQY(C3!c|-I*Oo$)!E!9???F zhz~sH$YJRkY;Z$UG*tr*nWo4LI))o+GI8d03QerWSprS80k$e13CYL11sL5%?yxP{lSihv6ExVFkaTb_o13Ob;`1muv!T z0l@eN8#A|K>-P)gsO^yXPqiELY61?%G+)Rt_&`pB4u%2*t=wB>Nk+gmdt;r@3?T12 zUy{>FlTh}?9)mVXv$AH~J(TI0Q;#6KrXL~Uy9OU?@LrIVQv>VIGAr>zz5u4mmOkl*E8hk?BR7isSpD@w3#i%#2I)3$BfTGO^|+qP}nwr$(C=Xz_O^X_@sH}~yi z@7w95EB&Ltbf>DiYJB4xLjYK}%X`^jJ{b2C%y#*;=-}fMgQVosoz3G7s|&UayBsl( zcaWTVV{UsNJ->r-NQug76xb=lR<%Ds%n_;pF(47dl;X^8SO?XE>-U>`K00g=u7m75 zduPAsnuY}yK){A5hURix^!KOPsi^z8NS)dVQ-&4ahk!3%KfQ$CPYt6Pt6ZSBFVa*N z7lRW}mE(Fo7S#ep1VOFQ@8Lyc@O;b7RGi4#~vxtQXTX^hO@5(cOzvlbb0OivG zrIRD7hdJuUlBCnRq;o}7TcmVg1U2{(3Ll^4nrgyl`0;ko2#nw26;2PL46O>*a^psLwnY~i-=>Y5g^{Ql+81EkEb zK>>Fe$yj&q-rCXO1&$5_xlMvkjkZ~`H0h1^eY8=Iqy(gcrqcQ#dTwG!8vs`4`q;O+ zAoj~$Uq!&v7q2 zvB!3-!G`V94g*z^g^TD<;4zSD>|9u)1AnyT>}mcu6VTG@qpVMRpSBx@IS@9s`n(E1d1Dv(~{%Y}gx$;ND`F1k55WBc^mV>0xINBOG( zkS04)^s8MUOt(_>kCVt#U3~phpU6{R4IoT-;`EPcdNm3G>8g+?I=TS@Tv5Hs0qLgc zT*sdJK))TM%YU47I7Ve2qUWLDgW0)J>K=Y5l;}X$G7|E=#eM2Gy2k!Q^*;)X+;;n1 ze{m$nOSyhRqsNO)(2o#-stblNMC=HZPH{oy5~t`I-H{3ehl=m7@&q5k`1I)sJEQt+ zE4eYF69ns~LZx!{(4y9Gg_Yj5ZNxyuPRgOJD(veTz5TSqA)WG17yC#jp-QFspHzmTBg3Fs4A*aKq!lXys_JK(qjqo?~qPd8qK_MWO%qU3$t zrTZ~e4sh?E90p$_>@_Brm0w$gxwuezhNXiA0d8#?wjqm920H|Op!;$NANo|gms@*~ zTf3iITbbZ6@!oXNHF(yR{XrdJ=Rruqddk`_!*^9Q1nLrBkMl60wmd|rtM?Xs&+-wb znOAi2am>cuI~0qN%0jsB+EkbE!p%@Xeij~|Up92aHiN_a3eB16&}3UTg?^JniHqno2k0DZ=OE2gxZ(4g^WjXW)r4rwIA{zN;bzV?g{dPq0n+xs6Y!(@f*a_yVSW9O~REbJ;7xu}C+Z*x|iQT32clB@a-2c!-;;WoA{YX4GCwh5DyFucW(OIse{h}Sj?t9B?+u3bGL?>fv@5Xo z-VKrVFmySk0dC##k^5uj^ZBza7JG%6%kFf0#9;pi7@pVZ!byJ==j0FIKfuyZJYr+% zzY0){oPHxx%wp)dTN5KIeQpcAjpol>36k{fg}D3J?fnc&Jww4{hsx zw!V?6u~F*j1|>ty@u{U%qCq61s2v#X z3oIO?yW+|+Me$bW3}YCUStoqFl4-(n>B37{odNcE%sjB6Q_5@D6=j+pMW+4um&taJ z_tIg;YS~GmvN7UUaYn{%qRC|FFL~=!DF;)OLK(xtGg)L-P%M`#%dKSo8Ktg}#TFRj zP;!}Rd<1lh9TJ_%dLBWVhO{_ugHL5+XErD4R%vg!LVFLAmgfrk85ILh5yMq$h*6?e(LzZl&*Jh0)&&ABgcD51*3mfuu%q|~+_s&2DVOGG+7-XivB|rS*yFgl>PD9WJWOSkKj_Q0hoo>Nx9?b+NChM^ zeW>D6eNq^?ge_?ir@={P%{w^-9%%gwPddfO+d)r(VHcDbM}1EeM$WP__SYyV({_;j zY4-#HF-r2^5xP?@=Mb<6f}UHX7I6sGgS584f8qOZ(8cKlB;wdd{in5;MX(^(X3 z9LYNm-+C6e7+tY=C(bn{|0ZQ9!sVSU>MS1HMN$U2e`PHfa>|jJMCckTgsH)Q4Qj?r%P#~-PM;o zP#0`AU-Fy#fVRk^|IAghE_wi(jf#M(p#&gBZ`-|w%-eNy1-eTGs@#O~H^|^j?nd9yuR$;e+5z)}vt3WY|}b;qdMEb64J3#$hdJ@cTljICDa=$=6~nB<121TuNj!Vn80qPjsXga`SSTkb4B z6Dm(vmz34PK)6m5?94Uuz}`*X$Q*)OpUhj+XWrPC)mn0Ajo-sLyCrew+PRik%+1kG9 zkAqO7E5T+lIVw$J7Qzu1<|QmR6;tW%=dWZv__*#9#!jo0!ONPVcvN!EMH4!uGQJNF zY8Ugn8QrrHxcvnRR{_oVQf^GdD%!e*fIol-8ZN0rg97a8F%K(l)sQMZ#v9sllPJBw z3i^vp)*jikTz1sbVGI)rVSSkktkmS?IiEQvvqJ4>yKu~y#d_vF;-aN|Rlg2^sI#9K z?0aEft)H5;(AFs6rw~=Mu4}{^O0QjsM1JrL!m<0WJB4)>=4@Q3#dd{;$=#HK@FTYM zwau$kqtM3cR=uegdlow+F5*ObcYX5?dXdTfNsU@lQ-h}r1x-rzZ3fi%k;l0yeO}`ips1eT!teP2absWxMlUr)!DMpCJf_Mlb|7Gk?*PR&6GRP zjOU}=~DBMA${4ijQiA9jQ0&JCNusBho)cE zrRf0rBISXys0u-=_XtDQ0yLGB?0;r)YGEBTkf_~>%0Pu7{h-|0y08+_905IRVn+B}a<(`Y)hq55>-4r};cSt% zpo-N6qVl|eXm$w5Kxod4^G1B)UJ>$@i-T=GubXOFn%7$o^4bSErb4erpCMO6g)V=^cmSDKD&-Y8rk(Ec-~{GY4cX6UDPJ&|5bk>x-ZB z8bltNFUd{OLaDzc@@-Usy1za*E8x3Hj4jlcG#HTjAXnyVhG^`dx-az|e$r-SBk?L7iOS0cLg_A{+i6QI{VL7@b`kR4oDy7mJ-U9ft zX6SC~-Va5vwL8=wswwwbfy7d1H$CsYoxtl?M4t2U!z&CwFe3R6_RI)@^h0W8VMOvt zR7XU!Fsc#!3U+M&J9}0>o+#+%U}tkC``cgK&$# z)gehni`P-66s=N1(qV{z4IxJ81&4>+fJ7Zw;h94e{1^fhQF3{pACaOMqoATBlEASC z`5WCc>L>tand*Ll8smrP@dQ^>HquqK`t)6;^wDa!4k`ByF-Jwx@%*+k{ zLmI%pUB3T6;plb$SM#690L^MLUdW@Ut5q(=%ZWy?1AYvofMf)OAcj+7!h&IZePbv< z&EZ6wUe!g-P5RB1S2fsKMbSc<;(X@36Sb>49_QVsFA1KW;NSX3%!J-k1d44#Q)Q7BuIWnE-X%rnFyl-H^j)v@Vp_V^ZyTAd*ss-wXOlI=xloET`4*n?R|D@7t)w6bhyak?FQgc5GE(ez{-@JpCwOLb!QBo zTgWj8Z<+SV^HrAcbk6IjOF76|P0c}Cpd-6?o0=z`8FWEHCe^tDUsCwRiG zbrXT3abfq~Ud&-mgK>VcO=08>qv@6Gq~Fx@voqf7m=ivWZMw@KIL%kX>3W@>rdF2u zD)rW0amu_MUz(%!YG6J`p|!_|$Rs>WX$;f!x(fJ<7L(m8?o?InVMyM)!P{2BIWv70 z2W+|s8@-y5vZq}!xGDq4MToUZu$I3dJ4479m@ObC(%IgC;^;L~h20_(cCN^<^Q?uz z*eSby)*r8ZM{8U^!brl7uLxDTPENkZpB3}~9Gz9K9v+MAVBwj>*B&!&EXj;DZr@Rx zn;Lj_@O7Pz^rYm(21XL9QlsOhs;v0r#)gNCq?Hn4FUf&Y5--sKQxfV}rIb4kaa|*I z*0mt-Q`k{w)=isLz9j~3Cu=>AP*OU-3r#$O3yTa|#U0WzDXmcyeUBLZK|t;k^l4{c zmpe90DUr+A4FfqN(fD5agfN~P%ssQxZVnZlb8ZBPX*8|A* zi%;tzfhXx}s1N%r2+uPvQ6Juo^?%D@JeG$;hH*l3jH|YyZKhkkQr6SX)##V%S-13d zm@f3yUN5PxCid5vSWFpD(f%ZZ1e5YFBPZ#}lm#>kCdMr!{>G88lM#|Bq*(fuDOx@U zV~`!N*PwO5OlG7rwk>#r=#U%tIXq@qc3l9@Q8|Cw_WSHn3vN-UU|Fi{x>$_8Gqs2M zNa6nZmqp=|vi`XJ3=(JfhJZ(cC1{n3SLnfuPM(HY{WxE$5DNt zoDnq5iUnCPohIl04i1=Y4QVAFBHI&i)`_kB>C!?KWl_YWN@0LfXi#NTY6*$yz5xZN zalh-21aJrvg~FiJ$Wsnp>6w3$&cX{4@QKWON(S3Xn7#9}V50E^G}}Qx&mzqf%ai&) zl97@Y7d^~i=LS)mKg=LtHKyk89~?v~d10ryLLIM08csu{C!q~r^fCGy@FoFG)-b*m z8pM%^LQPS%`$ckV5Lm@Ba>D!6;ab9DwAVUD)LLb}@0l-IUCxFskA|vZDwWQK!-sC< zQc%agg&le^4YU@7gMZ^ShEsANwofv$;l!xM zk06Ioi=#Ly+rC2Y4z}O3WZU*ZbEniE)R>;d4hlKJ?Hj<;LWX5}D_gyAz?8RALE$Bd z97U?>3_LJGYqP!`Cb9n%uRCM=v=`}VA3sCYs=9ZNTxxdpOkZ+!^-NxRcCkuIR9TXs zUV2Cjb|@H-W)?HA$mq06a>~&~h|}@YK=y`0huwX%g90|IUm&(cm$D7Wa^M)M4&Y4j zBl_rK?k3jJ?eh<4L)wbJ0YmbI-J=U1i8*1XDif#%X`wpEjA;t)pgqLIxdwNU5pyO= zIgzEF$l)%L+q?}_|P>q64u5fs{ zGz(PAYl%?o^7vVj(PlTpK)>eUrNWF)8f(l)ZGpXVxNs{*4Dd-FemD89A*d3mhh$%a z1Xc49QAgF>N4wrVQ|apLx@o8E%zjtdJgXVPHj(Ho6?q^R`9Kyc@_W3?Gr>JW8>Lju zIm0-SZy!1S{cg(YAVStxYQjAw-R}oZfuvtiDZWPfzSAp*4HGI^7vV{}h@14RLw;S(SEPjb1B2px zk?D+f#wT9ciPbc4Hoc#NsUD{le9hAoz||F?mD{fpZqEjG&ms%>2!CfcmU8{g)6vfs zcIG&4a(L^)uYT3VVe_cV?d@q)aHkGL2L!-u~m0k(^U}4yrf4&Q0t2?+Cf>5xs`F9rcXsMqzv; z)v;Zl7QI$+yzqF*j{FfCYJ5?9tD4rknL9%s*loTFzx%buecC%bGS<}_h%ubW7QOjN z(odD>UyD%3#_O|5Qo|G7?JGnX`KlAK>#T**e=1nE7kC5N|C#WcPkH^!mR^$q-AiKP z@hWD2Lbd(@!(H(0(OrxB#ChDC%O`eB?tIq1VaSyp?fddCr{XE+Oapno7iu$3X)$zk zM3=ljz0el-lkOjwaLCt*iqhZ3Gb#GN!i4|x)hxsRc{RJOEaiwLf}kVu=^)iYYB{Np z#7=$E3`UT2hlFq^ox!^ymYMwjXbWM^4MhpCnf7FBS*K!k@ zBy{W}UFbb4gS%jeX4|emgb9vK?e1oo>oQPUng3V+Vj&MXROb`|hV4pBe*mBFuJ39b zCJ*+oYLbHBk2BCm;1Qw&AdC2^q$@%cB(?1*vv`O8mM^v^&k+Zzdnkc!Z24q2{aSn7 z4(R28f08$eiTBE`q5TQaoEKoCdMzS6&ihTE9wbyy?5!0h?V3&V=WGy=zT0$QG}y?~J1 z-)R^pyfaUMZ=+QHzrz zP}^F{@8UxTWJL1UM-&)z(F}bRdkeX_??QZiRenFqHFW7gRcGh?ac5O>Q|o zqpR3SVn?>JzzJ44zM|-vTyC!oIPh-mW~y)Tp%?Vp`&HaKzijgW79Lb=&%JwR_X~vN zeS2%@f;)-c`GmnwvLxE|tvmIYm&}9&iV1e4>Me$6S9x@jIrG2R%b zHxhiygu4>=(A^_ryrvH|S15jtmnlOwJz$O0$}^HtFJ?9UUUVvv&6Ce0J?^9=hzWRP z5i>`X?W>rMKTpXBIh`(llE#?bs#APvf108$*MFiJH8Ypmptm{!x!Qo|*qXa9K4H*~ zs1^58KCnd6O??Xy7CQ(SVk7AxslP!1>A6k=+O;Q@t?e<@5p!@A5xCWOJn>wyZfsLz zs#F>O0&tatU&w}^w+K&*rKaa=aYD{u(|Dap`}0P}i2ha%d`PMGHH!N607Qw%L5VFu&)015aqk|+`q zMaEJZKvWJg2+)S;Nl8y}$G>Ga)nqU=yKg(4Gg-U;`%K<3w|ur)AfnkMmNeknwzR;JCY>5$1BvB*1wTvKYmq)Hhj8?P6p_kB%}LpD&6 zp;Qo>uh?Y2q@HswoLmXecKR}|R8J_#>2U71{xmKH9kt&ATi%2nE#*0E4MUzZh|N&* zAL&FZ2p@m(+P>Gbt2>_yVmDp4af|Ww7e$@pImKa(j$!>Whx4$wSZXWqiL%A2&i63t zxlu_qvufK$_~fI$Ca&$$KkJ%(-U`9YX$LS!tcApCTe_=W3AkPiQ?{kmU}n^ErO6$s zwAr?X<#OJ&nRhFX4F7%EvRqIepRx%y*yqS{1t!hsvsT^Tu`E)mW4R7nFQ|<Ge%0nC^8;eie8Wse;~Rf*fTdo4VcnKD$J8!fl_76oJlSgI1f5e@{ceDOeLk6dC;l?B@gq@7J zm^Y`E=P{@eqH5KYDs^F_Ux&?-F%xk)OPF0~GWkq%{}ZCxeDOlPz=4VQQpkXpl0v`V zS{0&-e$mKg@5pRFQ@*;~Za&Ka5m2HHO>4{vJ8SbEsOM0s&^Qb2Z_84#M?R@yd0ux3 zuBxZi*RJ2HY}L#|f7eBvaEY4=9vSA^YtGMGwS%y0>+~>~UJuNfeFzk2U zY1Z_+b3B)@O;qsVO^x%F7Y61WhWYQ4HLg2+2g?0BRBRTAB`I4P>&_OBA`EjaJ7|`~ zDbPZnQ!WEGCzgY37l>P3>uuO9kiV|#;fho?UCFXkB6r>TZK77pDlX}_m|#EKTa;hT zhMv*em(gi#>xWK7Bdza%5Qf_xHDQ1D=F!yp0qMe{Y3ZcoN}H_M2nhO$Etxy4JaJ>U z#wj}0TPs{nvJUA?I{pHPOg{z3rud-l)@h0Lm>8|&+XEG*Z|O{v2XpBq%Rr?l_3H^# zIewt#UKNqyoReF;xZS$NtJ`VXuC3YIl&v=-OOn@*c3QDyP#@H|q?0_prX`=oK(ZO$ zrY9w;=XDnBcJ7dYWNYah&@0V&1@Rr-2CEcGD*@l5!9!(HDU(8>1TUL3VH~-FL8ZXqccP8u4iW)GV^+@bsK|-iSw3h8 z(f7A`W6>d}ty?5xpb3)tu|^}=Av8Qp>xfDChodE+llm1*j3k&8>evOnTW9yB$v)hkf{dq7COVqbra0x!0#zL$R(n(ESH+Ojni1X7~ zF;pqS;+H$YqRFDh$-%^i?>7xfJewilfd+^3Ps~wtEn8r}%QoWQP4y|a>-v~b)H){X z37QhVin1jUUAtsOLxicL@zuxHnA}(>=H5T&{w}!J(0UQ0^MIQVSSJbJNBu2YOE43#v0zjbT%y=3_?S$NESRYcWe>o<+A}`Ar6+qOdd$DX}{HS72)QoPrF8Ylz{e2^DfDB!Cbwc(=A33x35i8aJW4! zzO20vhik_OEFB6Q3sxD+(-!C0r9efDfECoen!uUskyEgc-NVh!BId<8B@Gd03M7d- z2Y~?gw`R;(hEw(y&7$)!A&W&6wQ(NPRpLv9m30`Fr~UbR0t+}iF0Bj<9*49SX<3|f z?2L?bE*?f^CMIT)=k)e*f{cUR#l%3RKx84U40$$`*>u0;n5GFvb45nr_EON!v0z*#Qm9k`6bJdzsBlU90n)_S*y zRA9pO%4YYD4s$$AYsx(0@OPWns7cHNh{q8r?I_75Mw*iN%NK?DjLD}2m@KuHHtij% z5ejCWXJ`isQoC2dkj=dtXgXrXC%d@(={yN$(t57Up&Kj8vzfV8*r&@kCs)?o9+J#O zjH_ukW{_Vd(@v*{>6wrA4kcW!rF>TM(ZOXlA;0|T^fA3y&_Zm}&X?$&(az!hV*uCm z=6~XTg#(&0LS+GJA(_YiT3+MaL!ypecn-j{3e1CSK|Ci-+6{iv5s-1gd%!4y-{XXb zs%WHM2pzHk+XUP)X+ds&f#^u*iPG>?_<^WN5&K|YAhYv=I9JGW#gsEA@I@O%AFc`F z0pAj;A}P{LkF0bTpC$NK%u{d#?-U1Fo6?EHpXyQcf2F)@MmoF7gs9m7!8F;GG#m0t z^2Q>It+yr1OElfhPwJJD`2z?k{ZfJXp#bV59T2((PC~y%XNTZl`a#mOh5u<>{DD|} zpQ$*ghj)xAbk%y?hwzEhymm`5jz@XN&^(b#b*E~Pd+C)7`NB2<=UdswN51U)doTAW zi~iG;*EGXh(E6J9^xx3Uiwl()3+6!k3tsFv!k0?3y9t^`Q;_g+EBo;xTl z#T}5}biV(qnF+a!;CH-%nHAM$m#S&G)vuoKb#kxUnUTH822QWr@sY<9XH2}#P-{RJ ze5qGVz0A)>NP$+9LkUYq}l|?isOR2NQLg)Bl0}@pa5`WgoUetuLpPpl z3CnL3ACsC?+d9A?Z$alnSWLXPAlm79_>(hZxdEQh{T$BBv51(}v%)Ta!6ZF3>>?E{u4UPZDoU z8YCk*3iLCw$I*hZ@_?IGVup@gSkc{9HFxbcxp28()hhqq(v5^#m>5|EDm+{ihYXO7JaR8NQj z`i4qa4$AX$LNJFk$2f;rfLicY*Pgpp7kUdIpzQ#0!|UN11@9L_q4kR;=l-?Fj-79r zw-h|7?N$V>ilRdTuP1LK0PR#&a{K~~J-+Q6NDJ$QZy@^q?TS4|n{eQGGSUad$px&s zu-^5i(y0HovNt&zdY=HjKF0FV*3M*|;iJJeZNrI6-71J;=em{?@~vTtg$6{bs(T(cXbXTH_mwD_xE5I zP()xGKXQNL^CIuDd*RoVxjwQ6@ctl-Nb9A`B@9tB&8({_&&_ z6QoHUKHDPlqR*HF+(CRJL;ZQTL&*2sZ-w{Ktar0I#MNY_3vD0eRa}yWy?V$dmZK!F z31|N_8MqC&f20xKc1tF{(=ZpEdxLjQQ#9$e*#Y6U5PC0NM?% z0@NkLLcMvjTERA~f?K!dz?u}JQXS?RRwJ@~sHkH`4Hk=dFcf*u6t@!vn#cjo)Lkk@ zz!d`O3`hu$An3OvAp~603a9|6H2TC`*>Q;+1`kp$?Ao$91#62Ec>zFC*V%Vc-zWdn zPmr7F5M7T2Nn33*A|SEUq6_jLI|5Xci#9Jc#n?1H^!k+5JQ-L;Dy=Oy1CqP;H6*RlEtm z1Km#*gc8Jz&=b3*((ge~wwmT+Ok?YSW`pd_0GCaNfCKbMp#^1dEs19 z0!L)&s(7SL8CrS|ooGHFArk zoyzSbvS6ALRj5)J-25H$njv)2o(cRKZ94kMH&v^Uq7kUO|2EMHWFv?VKwt-3=9aBC z{t5Stux&@}Cl(@rPi0RI?N@L)rnPc97Dd9N}DjxrJj1*yLKpBz7Ao#BgKp0XbWGX|oH zD7|=!G7W|@eg*#oAY({_D!d^Ia6Fxb%)UcN8vZqjTJWuUJ5%&u5`5Eq?m3n2u04hSEZx-4QIzqx}2w{nrU1B^s zVq$2WYlza7ASKI%a)BI!+#^H`G(-!~wnl%-fjZR?sxfel0zW!sree$Ay{mM8!pVkA>~7c>3AXO% zel@hmq@;C0+2kLa&>JxkTD=otUw*kq$0`khbFWc=?49NcKH|~zFxfeViR{3J`t#FO zmDYpD6xD;XF027djY~;7hyb4X7n)!BPcy&tIh+}T>L>ts?8$P=zg2cFiVqtT84uhn zjLWR)G>fjWq}%;IZzauAVU;JvmX&dXBulfSJU=7Ft~8K*`q6um^wWWyTL$Q+j&FML zX)1yNzD@yasjUoG1_Y!-02%Z?5o6XNkbBTkaVhuy#c+5aku^_P7SO-c>h3xj`mwqQ4j$Dwut`~67+wK$uRt%FqvwVzfLhDh-l&n z0HOHJ1!a-tkrW)^`)Vo}&m%fSlL-TDDbQV!uJNy8(c#U$SyqxJ_R--%VWpaR|Io`QOW&4&k~vZ9aDeM)m;?-n0ts zTIUAtJb3!!al~P?={X564yW18dU-&!ThF$h(|aaOZ9JCCX!quxy=u0cV#7s>$%l(zew5De zwBByj1CK$+!(GA8w@iq%Vy;tk-)1|=# zr`)=`Ii0ZsJ?CI4%>9*l4Csds9oE`<{9dw0vR~-gM8m*fZGh3KsErWcVrSrZ}a%OxwZ}pEQ59@-FgYAi57T-@(bV>h!LYp7Gc1w z=vQRcvZwG=&=KKu(gV%lygpT95oUt3xj=| zA$_T1&6YnB!qp8GBABk%%5BSrXy9rCW|GA_>}%S*Zqp!~1IBfOK(3yvFCV7bu9IFZk{4)wX+&e@KqMhR`oYhB+t11$qqar!7hfwr-bCAj8?t=GvP zY8}1Io0TlT!c%g3pL50q_Yr^Hj;(XyirIBE3!7=zGMn6-4LV3?MitYJ7%n+<=|CwF zEIoaSIRqKqKXFsjlaw>CF=6s6FgkiVqF>ExvkY}hv}5fJsXGVBUmRd=7P#e582Z}Y zbp)EV;b@MpTsc_%%<=X|y549C8O4OPbdw!?*hYcUkMNOme&@%>u4tzPh9K>)HRzF+5D=U;2ZO zT_Z_9yO69XfYfUrzbT3CA(Hecm2A=irXL3E-g{tKaUZ(iuUMh7{#g|6=+Q^D-!>asLavE6bi+{w=(`oTbgc?J$^m)|@X$Iq*Rv<*&3bnq54V<>!qwOf=vmA) zs)+|@<#pjj4dKPCMyQ^#mjAeFJsKlB`Dctjggg(^kT|eguwl(K3@Rg@qS8jq!ap%}9frsLD(ml55OZ$dLs3&xR@V&>#7yn+(Vw0Q(IkYiyDADqXfHqCFioP*MriWpU8uG9VkHK0($blY^m*l|`S8kFg*){_0?iy*8$) zI$F!O+&qlCCw`*vxybH2cf#@OYgyR}lNBe^pC%Tz4z(^iP-SN7;+Zf85&`@45;@ft zx2#dp8_Jo9K87>#vNYWSZJcWD1R(BrUG!?@me%1n_XS#=_OQxeOVBlD%c@>MO{3-) z*v>)b*ZEnOq_aL6k50eJu~bhE6ory6@}>;#+<+Z_E4w?3j7jD!YR_o#$Hi{`6VM3n zXY3E;5A;8N@c4Nv2>O3DoU9T4)ervP){HaLw{tQ#G%+?dGSD}){LeBy^8aq8=YI=I zulvt8{wd*Otk`d}!H@7Jf=Jg-MQbSK50=7&{ve-EaKoIa`mbRysY{hTf?#+d!1I><|+0Jq~tVTed7pYX0$)HkZn%9|hr$eoJ!$Sg_Q zPub;Ngo{ZU|NBsvrbO=*eKAqEThz~+GI6r;w-H7g`T;5Y((TYepcX{k%AnC6j1hLE zK+PFO-6Hv9zB^jz`wjRRMt3d$JirJn@ddH?vcx<{WagNc(00miEkUW_jmKs-M5r!R zH|j4XT~{i7p?oM_O;e7Q$ScR-inoHZ`vtZP(Mwo7_n|xW-iYH?m}}PS_`PSOEYxy< zYmJGCi8mtlYG5DR3xn47+{CfGrL|0RS;-S@X12n^8=!`YRjMR zZkvAH<=yy?{9}fyCJDUyiXltuMzKI}C6;So4~sbP0z<6aC$+gb4ZmbRuO36meem)x zVj~gE;FxL{KMIoQtX=;1oRq5vT^bs7F4sBLqfgt6>b@VoIzlg|Dg)~NH{j~&6W560 z+o{5tmyKFKhSb&n)=LL43o(TKtCvpxFZI&@Z9y}08#`yG|E&N2+x39|9gAM~zpnq( z+qM7OPhdG)cE#L~EHaT@5{O9}Q_GJ`-rdiC2=^D4bOr#11_|#0(L;7TiQEDM3ctws z9rT+3O1Y9!M}bi>IiTWIPj~m`YYs2m4Exv^3{oXH*&g1;{F*GvopfO7G`keR*=e06 zI27e5YjiW9>tN9WT0puHwr6DTDofYSA$T59p z3>Qb<^o>;Wf@#Fxk}w@c_>3C~W1Z&^0omtew&IC!z4E2ttdd}R-3{ye2zMRiARiNy zq(wEP=em#kjfwS=PvYs!5uNC>?;5tTEY#X$7qKG@d90kv3SaPnES{@sor7c86c9P4 zC-fw%ul>H<3g_LWau;NM^MC|6MoAbB6WH2i;^-o0b2Vbkp{Ny(NhCALZ3riexI1~M zdfjJGLqOVEv~h-NHL8>4nfZ+;R$IxrTbzyq7NJr-r-ufy-f7TfYLpQeiG6HTC7KH>z;!Do-ApN~fHSQkwF1YudAo+T zyif-}17EjM(`tpk?$BY6{S9j7;DkZR(@3&+KeWP5mg``7SC@CxiS zyPYx}j|Umli}r(Mle21AFpi%~KJk_(P?s55%RD1HJ~cmuKdz}}b;0&LX1njW4G9=l zX;A?#xQ$S}kR`6Mvvlh`+{HAGQO%7zl)r445R?@(-~LP74`WHAm+J3WkocElf$iU& zpa0)}Y3%-=jR*e!JRZHSrLp@zjfm(BS1;^g)X`>7>)ULn)|5;?J*;@YMQo`S0b*i- z(t}2ta3NRL79~|zBJ=s3oBCGQ21Oh}7=mCFe10I}rybAGIfi^o{_b8e9l(JaQmRrD--cpAf){gljf=}}yliIcW*t#~PD$btam7@j%37VvwD z(MD;kgh1!cA-qc?K^1wt`Afc9Pem645ymm$i5X@@cfT+I@NtP~9* zbw+dCrF-q9vv@`0yjK>3qNM~5T7^L4&(RZ{Sf2s@3((;@lNZ%0mRfE?R@hSf3>LD| z9su3H2xpxu5@8b3%IU2=iY3BcS1e4XftyzYrELw9lGE1pY9NxW#<&*Gaub5hR>)-p z68@}EKe5Is7X|?i*5p?Fx>O&KOs*1YAVZ#!4i7IPM;-$qVoTnTe+Es3WzoU5 z1iM$M&*0?Ev(d%35gmc?U9p25L6g4*C5gwM ztDk(4vd_UDCePGqwbvwIEYLMuM!&lEVqrbje`Y@n?gOjnofu-xBqdCS0T4pE5~?&d zJXHSsEivXAgQPZugmW3gXtp^hSE9xXoXDHqAjv1})ex8mEZt|(*udq5fmbT8+8m*I znuuJ|l8m%>ZM{@D#R>U)vz)YW6$A3iCJDwr^&1v@1Q-De;TI0QrL#E9n(@4HJ>Y&h zs~%h0@o$VF@UM3ays~5%BV&Z6e%dgY1B79`{EqpdT4lHD5ldK|(0yli9UeCvzEH#8_hDxY= z?8Z_%_sEkhs1tSYdFPil;Cp9QS(2ze4|!I8r$BwIJX?Bh;73f3MHbRF5sZMRIDNUL zXh^gwfO3Mu6VQ0EKAXu7_CgFa78v@e>zZGS>G~?H(K{aNP7&PTJ4YeBk#yfZxa=|T z*4k$R)T~w(ifW>3taM{(Y!`2FwlkU|Fh!XQy~`(!lb9ue*(pe2k@11W!SvP}#%W}E z^u{XhoWvH3nI&~U_=%%06G5aGM*WTzbCgE&<#0@$a0>U8uuQXe;5@27c9QU!Bt0dZ ztXMUNd9kpWtg-iXi+b#3Z)huegz_79-V5;9l#@)AEB_B`Zy6L>lyr*%jk~+MyE}!u zySqc<-ncaG*0{Sh?(R~!yE_duE{~b}Uc{TY_nRLxH{zVAsE8Al=SS__Yv)?I68@-W zc@mYH41`Q#Ad8uQLn)7Ap`b^Fgdk>K7Ab#~WfrCTp(U1^(7~8O6uxLss*Ci92g|Fl zlNDV*{{(TULa7RIC{qa^Gjc$57A=yD_%v#ZRbn9RLuU3&v}bka8~5nqwWl$o{||_^ zptdF;)mD?&M!x+9jFW6oqoafS5^1h@PmfGDz;ALu`KK=JE%tV0Y}n|mui<2H>c}o5 zW;VB`@A(*B$%>Mx7k&x%%-tkMHfzzH#aQJ&qo68|3$Vp%t6w4ZFq;>W?Z`2xoL}%1 zLx$0mv++>ha-%Ub3C5|PgI2pTRvE^qdK3mUrlG+z@|waZq3iSkMyq!wxfic*m$Zt zP}siibNG))FvMncf|!%`>Eag`>C75KlG((jiF87_@w_CuOvKbF z2&>u7V!WxlV)&~I1ofZ@z&bHhjPUA+;bN6nP>E#%Ipov{l&Joy#h0oVNp~^qJcBYp z&xwn83&#_#^qni5$tJA*HSb?5Vd`TKRNO9w-1}A0`n$~Q*w`T=pDnIz^z}3@jECq> zT;cS%+soBY zV!5O6rSs56k-WtU%M1uqfG^CWa+#gtn_E}aD;4e1)do8o=QhAKpy|}fZ_>Z)wc#Zt z7?)Z3mNA`{X2pl-psB-)8C`N8>^y!%Kqb*qib>`={=E*qHfXNzPYfwfaL%wz1v z0Vg&wUo)%<-jDTuf|+%bgWJx>@TZbys=c6F^+^8w@z3m{KzOXt*A&?0X&}h z3i&`it6i#b6uhpvXB_->%B~-4r(qb<=#2;tJkGEg^_Ws>;21OGKnQ#iYdR}F)j%?Q zDm(^`9S%ND1uH&NFrBD8q+(b*JOWOM`3mJgG(1t_?f|Q=SXkWn4GWH-AYAo}yLidh z=+8hP6->6&iE4;DGVf2|Scstf2|6H`A@3wjt9bu8jG2(0|qBk~Hd5yb|T3LHi{F ze})K(TS4U~L1)XI%!eqD+~WXpDeidyxm2#S`Ao z`A&o1)I01~6IqC+FW|2si<+KZh5ZvlrPmH8F3?nWvL#6^~XpFd_3IZ zkRvebvP^vM6bXuv>DGs~yeaP(>0-cz;vOG(NBv13bhu9wG_n^`cK!P8EF-c(R~vny z2vI3>mYR}}MLW(C6eG$Xn(hZc+*_r9;ziYl>oaG72sub7 zX!9wa^s4l}bTJ3>3Ky^v?Wrinz7Nxb12Y><^#)=^(s({ow#o92;^rl*$V#0j{~5cM z#1HE`SmUcVWy}}4fit=}p0LvJjd-iZy|HTJb5RH^zc?5YrFMC@$qWf|!z-C{`ddA^ zzz;nHK|Y!`QTM*PP87c5ba%Syrvp}HxTR(&dF%0l#N8|(b)MqdB;;Rc92kuc1CQ4I>?$eZ*>-LWy2qqYDnJIWfr`zjWAm@ zPWNhQ-<}F0Q{8Pc&{PEFc^~uquo^qTpu+q;bWq;bt;IL>NIuRRO(Lf*!j@KoniuxO z31pG9JeA&h{!y>Y6XlC*L;wLHrucXD%Kzf1$nw7(6+;teY!{S}NACDmSBd;KZGJ(5 z&j#fH&PDjw7*o(`=+*iPo!I(DO0GlG(wcqli1)US$My|6J@1*mH*ALJBlAyAzRGnw zZpmRkISd47mWJlgR?$xO{*u-I4*HRi3{e6Wq-G{_dx7|t(aC5YYP5*2$2hJNEHDBA z?&#$7BN!msBQWHGAZj4rNV_&3l2$g4DcRZnGI@7p{HrFY5R0NeullwoU%C1&DGe=S zSIyabpquzn3l_G_Ld!-a*O(E*V5~DxkyRZBJdJgqM-rlot0~=@aR`Rrmb|6BUt{(8ZYsWTq{D^)uRi;y@!gp!jaA8~YfA^}=J!tfs2HK3 zA-Nl{VC{SnOT4UJ6GX3HZ3hHL2_6}WxN#6g)_dOxJTzvFIx0`0j$cDti}LTUAVhe0YNa2I|Ketkm)pc1O=-4OLh+$vM~vYJVl$W0+_ck>#) z2mn@wKR6MaXBDgD@hKiC8wO8r;=I6@>ZOm8Aj||v)4+wzi6!+6a?hytETZk_cQ#5e;NmK7guvL7gJ|PJG=j^u%Ysw z6*m4QFtg$R|Leb$I;z!WRq-T|mufUR3R43_z_bI1SUH<7xM4|<;Eq8tSuweX5s^f< zv^B_9Jiq)4f_r0b`xFkLl-dq+a`$DP({EQL6?jT4-6=4mD^;Ws`R3o<6nk`owtow| zcAWBBxL~mlSbN~d1>&d2vtBCfh%Q;=%w*>5@}@$BQuI|rJ51NxTRfGR2EVL)S%ZZg z*!v){#=Zmpym^5)3&YsWL)}Jb#~Q!*2*Zy&1aaB|bhc;ZWw#r#vwr^Sx@MnB9orZ; zy(i3sg%EB|pSS4lfI17-m@pMA%Ry^}4A$G|m5BiDcGJcdmjLRsm0YqdFEL>2ZdfmC z%OcVHZ{D{YGy83FamhzXdebkrpXQIQSTIK8wwr^eUi~&zKqws`79d(FAWg~(rC5bv z#$SfWvH%&78Z-B`GoAJA{h%a;1yA}mgIPy5)yHG?a*sJXA8sJE7b+DWn@9=HIIZTrh{tQU12sA@+ zb=a!^Y_32}$Ea6Ld6H2#_$`P3+I)RJ%vpLSr!;U9^DJ3&ByYhXkY~JWLUO-)QHrh0 zU5+def{gW{!q<+Gr@O8FM_&-z#leS^A)aO4%uHm#T;?Q6P^&nXuH0b#J}-P+0iNwUkIzh z#7+$tSl%GY?)Pf%`M=faN3Y&_YFH|IxfErFC`fEO4p-ogJHE;`fV%&Vx8u4lOSpJmn_2EV@)K$&<1ij8@sIB3+mO!#c%gC?vi# zfefA00fZ+Hou?)@3TS-rVnqU&iO?-3>tCa`fuCa$bH2ALaw2K36}zq_{hEb#vbjDh zfU~KZu=F|_Gm8YSlSdS(Tf#Num!m;;36Wnt=QFBblncWyi$!*-;>sjh+rvmHfwupO zx;ifX)5PY>U@RHHW)3rBr(Gcv6TF%RY~hx8gBx{7c-=9HiSEkTV3qOe(9~(}BNwo1FCcYXY3!#1Xo8HT}L0U z73_#+u|=nR>0!u-Ko4clrmQj>lKA{<^(Jl7bn_Sk+fjbG7z3;fd>Jm_U3>&1ix=c+ za)d2Nc|o4%U&$N1p=BdY}feCJkVO%*p!S};0JM1skGo)nhk40n&pX~T}|U3IWNSd1LxRy zD4wfxV}~r?96m+XCS}%yiA0QKGpsfzxDY3-4{l3i<8GsntRcoV&bSBy9t)RI~iB!_86?|CB7qK zc(>613Q_}leSQ<^s!HX%I06wPoiBerlp zE#4DC^J8^;gQToHa5rCewdbGal-zF8RCtgeAXf1IZgc#M1(qy=-K3m4|$kZGLq2)xA0h+xKaA)wByPOJ;GQxC^7zEVPb| z9MFw4>yW>*-2}Au`3Vr(1tLk@^eyB+3MzUsFB1%7pMU7xzS#DV^&vTq(7qo_))+f| zqonp#0C$lJJ&uPVB6$=;PS|C4!iK(TRgxoEUQWtqb;3+|Vl;qtK8^Y=Phc`tBNeXQ ziCXH@fc4Pmap{)sKM%1o>@k5O={m6K@Df<}?RjvBWXCMmaqi44f)R)6@t@qw#|yF$ z-Z?UPnFoC`O)|sJJ zTM8Wu)toIBMnowu)(&cwy#Ab<#7=s6j+>Cwb};&2Fu7TJEv&iGwJ@Jy6V4S><`JVk z%>fwN?CR*{v%cK<$b2nu+x(F2k~TZ)4tSRFk3PzBx!!QOTD|^j`O-mXlRngWzVb}Q zp6OB|8*8atZ8Be{Pp>}CuH$@Rvg&O8x-?LtPl&Oy6Rl2vJ4^sE4l+mp7WpnIsIFc>nV6!l}uV#ba zm}OmgF|Fd4=7;wE{)USe9F-WzZ>k&qn!Q)#SGSjGzD}c3sKz{z6w4?7>yiGeGwawf zL0C+MZ#0u32QG0;=`J%onq96@Q0&@2UzNw$Xg@cDyE= z&IjN}xJ{DQXoY#wu$yrTYCBhjKCao<@@@n$Vl&19;_AO!uvlUo1cA|fr-6(+s6xfE z{9C5B1idq#H~Y4C_Z`i^d~F;l-8_jisBlHcHp5Jzd)~;)}{Ad=367nr}ze3Go*>*M(!{wPW9;rO2JbW}7EI8IxZ^`=tZAS(H z8aDQGjNaxGlOFTCUmlz1ArY2Zl-#C$CduaZwHE=>lR+C+e#PkD5kybJBqS)Q1S;j$ zjUGhsCMkSn5hR&H`(l_{vvAEVu~xA0X-Kz~TT})qtnIA4+f_KJU@#Ax4Gq4AG!xP%jH{n8tudE|?Q0|kHi=E#u#`($ux{h5z@f%8yu;L9IV zXY$(hRv7Y=0iFITqtPuq9z@^IY!5Q;idnW%TLr?L?h_A077+X)`wDXgPVYghglfoWbKTQsg z^o95syK~;Dy(+VvT2UCHn+#&MLCIQhJSyo8zWbsAlYb@J0yQu^Ibe$1tXOE9y7Eni z%hB%$?Wx-o5b+HLG4)S%=BJ}Mj8YQhf4KG$YW{=~9m4r-bd0r*$kF@V#F?E+THY#O zpJM)RRdtQ+^xPmIyk@a1zR}ASwA^$n^$9uCIYX01M9+H*F&@dUz6ZBCIm0LwhYn6u zhJ#POXjGjw#Tlo%xggBDn1gRO-NE3Li1o;|7v1WnqGyg~9&fOgIQ*o{SjVtpw*6XS z2R}Xlu5nf~S4k$x7NZL1x0Xg`5gJBEJQk)Sqthq6gcQC&acc)SAy^^}cnh?0kOFzP z-MydqN~`|vdPTy_d2|7i{8b};nfqeHtmyi}4&pqcMvruFiKH#7Lk_M22~)Ejdi4Nm zCg-N8Xj!s^A%f2&V5mUC0rmk}w-ABV;ZYcxhY{h90mxzbFlwab+0B_kvriH2JVs%% zsl@_Eh`@J9qZ9{fA}S4r7S@|>brP0gjT;=qp%yX+BW?<)nf0{_gmTT9<+3?rug&z% z_(a5{n_t0N(ULEV#VsS!;f3o&N27o!dc}9CvE%DY6q{*&1om zDTd`#&HQMJ{03blM6mxeOp>M1$`xL3Aw+||f$kX4TsXTqBr0B3s+_qN|m)-IDQo=L3#w)${RpN$$uY#uiaK^f!Vs_PS$fkwp>pC-Q(m9j40!~@ z>GNN&|CkNhFXf(X+30sWS?etoO$u!LhL}7-Z|A+xlJMbfSN(!Z*v zt6vrpar2W62@p1a(*X50Co4S)$-fddH>yC8NIOiHaF$Yu@BKzR0RTD7+`@&zhaldi~C00x{4r8;pfrxTXDcl*kg{_DKzVf1K^>7~3wl)4E!?2Q`7H}(zGoM6YEJCUT25(#_; zALjuwBa-~fA-k#-ro6{p${Ub2k z1W^QwxF7bnfPG@bHCap~v3`+3d4gh3s1c(W9|R`o)Doi##bgUk?gzbGadg1eECKLJ z$J@G^Lb$BS`L!Q2a4e5-IfNy>4BdrG`=Sa`T#(0Ddk6xGv#tBB-A0|_C=ev7AqhQ& z)S8l{2oB_?de9Q851)uiMQPyg-+t(3X1GQAlq^c0{5OaPkQ{pW0GV}ul1{K3JB6bdeU z9l;_?`=68X=f3*ypq7kENxYc%d^MqxGoE?-BNF;eU;-lKE7*F-0bEc!aNllHL41`# z6rgsZPUqO@!d0Arhi;`#6%VfX-+U);>vY(K6@?HnWD5Q^Q>FE?J&n(?X*nOR#>Er1 zAk|3V9W*2=PSwk8_|K+f1=;UQ74x&woLLKTUS^etYg^lDyB;^T)$QPK!z=IK>eNr< z1Ry@-g%_*mi0fe4=31$7g#DZYc-b_qyaQ&rWJxo!IU>$corQ3 zf&?xu!C~)9p4K@`+h-bAA0S#>gAi~E6GX6hO}SeyKnzw$(k$UHxSelgMc0&i3BPY7 zI4}ThGBFElwC|tZ^PGSjva0TgVjIS(`mfOTH&5aFh}RU>QQBG60w+Nan&qOnTWSva zYE80V^lwa*jD4-a8zK7%ujo7lcVBP0724dLNBkO4z2I zrb#lp5xk|rnpG2rakofMWg3T^H>S3efoX7rUByb&-(eHZ%&)|QN@#tBh;;`dx{#S$!mC%`8DgVdHxwRS(9Wg~y^SxQK>SRCT+||1jNz5o zNn=L%!GRgHjXZBX2-I%<9Xn4NAg+bZTr^DHL|BJyyR!goo48=nd!`MTwhwL@P6gQ* zOm)^l)19{DtakyCt;0xcSLsfA%Qn(??m7lt>YGkE&mP&v)n)j@aa-AR+a)sR^TapI z7=Iu2WD`;hsyoD(TB%2BDP(xt4qtb-a+nRE^9!gp)_u<6peH+in0VxDbJo}!aMoN0 zJ-6T^56^zv-1l#it#OYTtWCK-KU`0~hUw0nw(Fg{fE=rwEU#=eo3Z4YXk!ZXK$kF7 z0D=B?0}J*9w*u1-<@!Ji(V00~UW+13=2H#kpxS%BaIj2OpI!g3EW(;5aoV%EMgI<^@g*z1tZaoOMV&f=As4+3o-?eJj7?dQGk-K4A`9f zvN_>{ed-1wyLP;th+SS`|4j@eBUT2IbEoOWEPnt;kkEX zm&X8;4uKRX8BDd{lKhr@rr$#`+y`EM4v$2oCClXPZ%dm+x$5(hljrKmV|(3Sc6PF; zZAlB;GokXwmE1=qwnoRS(I7fj*}`mW%jdq(iC1H0?^HnB{#rU#c_|%X3}swP1M3DK z2UNLG#g$gv5qW*oz4uoiS_ulW(A+%Wufp8C%sTu=BB&xf;oAHg_F^}sxQ zY3$+Q5C`n?tHM8jnX`B&Zt(m38vB2Dy5GFbyZS9p1)WFARraCsu7m5jE&ZC?@ofx7;hF5S&pMvu~51XrKx861}m@@;Vh=@sDaj7Lcd#;VHR_pazn0+p#OBo zfAE24vOx0c!iHkxWE~05^fj5OU34Q_v&3WrLqdg}z$*w5UUIbzWNih`*q0vTcz>T+ zVd%+$!znJ)6T`5E@W*2bV22GizHfsG#DxgTg^WKP;aY%pS5_n{OHlHq=%R90dt|Em zZ`I+ok|M0td7GrI0N(EE;HkvSbD4#wx6@4Nsc@P(zWg4dPaAFRQDhe*2CjnzRIAZ$ zV~&7RGQY@U%+Ts$-Z&Z))K$a<6pZ3V*eJd>qxkCNYJ3hHNVihMnrG(KxePWH_b-P2 zd>!SsNO$D`cONNgUjj`}MD*@R3~yy-wI|o{9h;cGYi_Hkb#J5ApBNB4@(?7$S+rVU zN@zPVk!yo`&!KujEQ-VC)IJ-+4rkkH|(yl;fki{G@-hO;q_Fo(Nn7JFmX z)iA7OGo6qxGN4ij9nqVch&M3!PY0A!MJ>hmL|kE|v&O?9{wQ%)@SEuA_@N=aEN*~6 z8wcoL{G#fg`mN*L2dPjfkTx39@9Ss-?idsy%;c3Rd>^R2WO?Qr9MWb&s>d=rgn%lK zryeZDJZ_N1namTd<07^QCi85$i(<}%a!$=K(wbVXhsJ(S3hxe-(cwMjJ)d$|mA;I336~O#MmOe?bizCs$`$#5EaY#DR0s~h9PoIj8&kf;1RRa3(9B|P10wWmZWW0n`YR*gk;qK3FG)GsVvq@FWkys; zsIgm+;YFjz{`P_BBZ=0M$8(V{jXO~A6G^_z2AQ;+IYaw z+jRsBjRIq#XI;81IuCFn4PmPpgcyN$huR&(&ue)C>iV773%Zsfb!~=kiI|ZnaYS4{ ziqD;797sF=bWb!h34`qKe6CuentQ?CYNrM`Jr&u!al!4k$SR~QWB1rRnPxgI2#4B- z%ivjDQyAG_q+Ef;4*b0!1hXT8Z1zCw-BKhbBySG#3%K8tdn?lP18d-yd-BZki!VA? zVineTvkx&29a;3Qi-X>V%I%>bP?rkwgFfzwDmoJj0j&<)l%10>l*=<^F^VP`>Fbc< z4B5dy4cm;7g1ZLyR14dF&>2bVd+eXDQ(GotcfIE=2<4Sb#&rEs!%00z8%3|CMm?7k z-<}fRW)R=565sM9#y*c82ag61ZX0C@po?`Q>+M9Tn?byyLN52Ahi+?7zZgH5gZ&l$ z0h9lP0xv$f5zy3U;oZh|>bK79iSf)RjrfhHYBc7ekUTpueh3}OlkSx}FvQ<^=Mm_K zSFVVhf51NTqBDcd-?4-9h!G>RbxDU^pJ22+vFH~XT~_HSHngJYrS_fgM>Xt^E?7bO zKAVl`+fa=NMlZGD82XEoHJ_&^jeU^VYsh!MZ)6rt_tlQ$)uvKTYxvS-p?+-;QF!Kd z4hPS>7bI<308UT2@qnrl6ZcfLH%Zz|;8ce3=%DcfLqFfNJU_x$ZV`Ure6dXTg9_%D zBqYgtDkJ{!MHEyU=_2|P4YQ3z%>KE+dIgmhe;Xn!OcUwRbL5u@5c8=~_>3S=9FCJV z$v~NL#a;&aO9gzu`wL_9mP`&b{vm@M!Q?^j_5dlqumb)Q6vr_N$FVX8 z6wY5-iBs=`-H%1jyb7?%2IU_c!Z{v^mIL?noj_UNlAxjA56S*j-s3`lsN3J$;u-bm z*7*gpkN~tLJ$@1}{v$)}FFbRrq=MgX+VpsRF$YX%fO+0whDr2?LniMlUU>|&&3&M_ zl^}$9cwjOw2-l{(MyK}}t1DZ&uHEE71A=fa@(#x_jqnC4Dctdx0Iq@40&hyhp9UxE zV(@r7)2n3xgd{fi%KrC!Vp#7SNu5%io2B0C@=)U8%kjlD?8Sw z+jfHQn^?JzPX4jvMdi=9ZtWfEdI-^S&N%xaywhpg8wepYPQ$t}{Q*(!M8I{_6NFdl zRwU~8X&E%atzVUuOlL^M4euC#49Aaty|4EYW7;{>g)I2#p(3EQTo_IAQ+;UT+T( z?~gQwYpeE;)j7K0>vCZS#7b)PpU2i5A-^8JHE25E>WJ8-KSHd*MrMbgL#;(}J5oIS zX)ZA6MFvxJVG=!|A$q|W!v#ZiYDEGwV{1PV#PH417%?s1OaqLm*uAv->UG)e0*2E2Ak~pe4kRddc(8J^Hb&i8&2BkJ zT&P%<@-{HVD9me@duc0Kd~yn3u9>fU$O=9Y$9C%>A8;AEpr(zf4r!j7a0$n8A)J35 zZ6k5kEkjTZYmu2vBF|XR73EF5|4L~^pH+g|#o&w^iGcwS2iSJQ0Z+*jPy}6K z=tQibQHswOfL#!!Yp|;cPdAE$eT9QEi;h^<39APC-*8M6uTIV=aUIP z)u$T3YSf_qC@41Nu;VtC4!BWe=&Ew`3b=t|kbg~u1b;40H3+g*gV;^ZBhK1^0~>zJ z3|r>3k`wN(fF&k1T)u&o{1}@F$a0XX`soMw1~K%og@Rcbk*s*gY?_-oPz%IJbF^A* zJy1b{uvKi{GRy#7BCg|c#@dx8U=y6V8P8~R&F+M9Oz;4No2z%Era>-d5alllu}8k9 zYd>$wf8-LNIOZJZJuR!fRod82<>H&ucS7g<+Vx`LX9_$n?nDoJpXiyRSSxL`aR#dY z{h++e_^9qe=L!x#CaK#5-}jmVL=4{q5lG11UPb$I(&p@ER_8Z`Qz+1Vm?z^2o@ zDk-RIj$xTQ-vINoaX@fTKc}w)b>R3mFV()>X+bNdu$fl!ou8MMQc#n!+e&_E(R^uh z=QB|EDT9&^tt-=MA5@YtpA0Xb(9u!gvo7!xCt_|VcXS-Tg8m|C&6n}=#&yBj8obX) zfN>K3=^Cx^>d|$P?PGr!e-qiD!EUInOP5in<%8AK=)3MdhNeYxoE}HJ&;HSQZO8W> zYk7rLT{xe|LxN?xccFiXy)>cE%5ZQ&K!gPT9T)ar@=`4SM_wvh>wlR~&_srW6*Q8H z|0;2ecVRhbjV@@UndkiJhOoGTNjDbrYYPlT)`<=|$^@$+eM^ta?KRw4Ve5tHWkE7m z@TgwV?}EM+1XO$ExCkkDGvnF9!o%G{lhju~c<3^pNm75BUpn|w^-P-CZU%;-x5tI0>af&q%9y(76zVORXW@WQ#R$<$cxs)>)ph+oMKaRL zcs!6nKKubE=pZ1|YDbzoiV?E+xF_|b)j6$29BiO1 zn-Bj^zM2usPX2kivV0=`0oH<)gJ?W(|RN7pToks|JSl>GviEt;m+8 z{Vj{$Q0x`@0A~-<&}Z~QR&DtVyV-7nc2rE22E?!#XvEWukVpcco8tn)cc_KHImlzi zCaNti08JZ}5s6b29O;h5&I1b#zHI(=og5A7aPmiY#;M4t7k7+)}NE_Rg_4QU|%Asn$C6mLzWVZ@6P z(Hqo5Kc);9@x}%Cd2k_+t>R>ev%w4e z3>8NBiU5L%lQ9*Tzj=qrc|sW?5jKAp(|(d1%}GEJ?LvecpPNY1rPuaneA6`&-KW?g z$7Hxm=!Fv-+`5rLPF&Lp2K}qwAt_|;408C6u4>}x1*rl8WHVHclOdPW6E4PLK&CU5 zJ-o6B+Z1@XQIM@W6nh>Gr=vN-cW~-NYQH)|hbgN}v8``Pr1#}Sp^%`hQMhQCn2_Dl zt?Pd&IgI-?toK3OChJC2EoYZkQ>xFH9$A9wB&0<$9eAnO<2F17NX^^9U@u7AXz`lzHccAR>M7Fov6O zFSgT)LXi;p0e4AK2}FCjk8%yrdQyM+ARc1BqfN*E z)FVhJMI^FLh&l5Ri8GDY$Oxc^dk)w~6UX_hA7sy_3mr%^@{YzD@{zS+!^!>OD2BN? z+$tythpQ8~C{sb+J7h09bA)&uEtcLY90&jttiBf8=1Avp{__xrEtfB=SPn8d_xr87UEnj;9)tG31p1GM!R|8Y8YU|CUI|bpEHAaC@%x z+NwL$6!f_zfy_+Zc6)X|lW=?S!`+aBdAj;OgX$s=$vDC!x5i zy92DzjDs|t7rK}NomadAgD?LXc11DrsRY#nha@W8S4n)?h!>X{mc=*6Hf>7BW=meh z+#>_wE^VroW!S-nl0O|L@-0!>%&9;9ZEvuz}y;}=r z!JlyNw}hsZ8tPY{DNb!i#qCO0na>cu;l&DLI}NxnV|(>lob|;p)AzA^5q|rm@XOV-!iz3e84tVXq$v7FLu)VQX8yN_)VSm? zT;HhQrFp_nWZ4ZMEM28LuuR`G)Kyic6>3Rk9xrxcbwt&zggqFo=z`ax>{?0XUOHTa zBj!Sr0wsw_10_lntVliya^d@Ncm=r+n0t6KUrKq3uo)EZ16C9eub#91QNm6`Sw7s? zg}WT@lIbkoE+Hhj znB?x;!TI_WClZ5@&UDh4XruBywi)@aPI1+=Zc)1xYo}z-COQpp#l5vQDLgVU*T=CAy7nzUx z|A0$XVhdFh)rr*GzB!K=f$LG$^<#k5jJnto_ExnWFB_}fdd5OG=w0Bd!~YzgofC3y z1S~~<%*6TIKmF6rN^KxKZ|=+Og6PZA>VFp3{D(r||4-iH=4$;P3V~(*D}@c?KLaxx z{^R3cG&cGgvL5SV=*?zbz64Zg#ZH_20gzJSd6X;=Vl?vm6T+|e}HGb)&&FbiCXsz7WH>keyY z=ok?Un3s3zzc?$3R>_bgU*p)H``9wwa#=u>S@U6Z@#cN`&E~R42 zQJ#6$r6JLA+LBb=UEUe3yq@4R?x4O|!B@gtMJI{~Jro875fUqqpO27>>4{`A3&}aB z;~(;)82=R==N>4KNOv3&4coL}SBRt0D&8Ka{Y5{-?S zqaWNil>WR>GXi;{z6e!DKQcm~yLR1?1Ras8G|QqBSscxYd{1I#+)F4-QMMCC-_^7Y z=gIA>{`z@mOn^|320rEMioDq4Gl%|^Rl=)~xGQ^=m)9yWq_Tl8#$X$@K3qy=MOVgL za4<7;Jv^c@Bke(6+AP}2RT&6IPwKoxTq}(j>Q*|jA$|qq|MPS*g`jy!z?8+^Dv*?2mWc>dJ%I z$xB%;!}047yCi*@N8YBkLkzgPZVz-#lr_=Pqb0^<7$wcxK;z2nwX==wJf`KESoKe=ObrByNm9P&<$*fJkg7|?_& zNHw<<^l%jI65`AYnAZ=I=8|c``0Y1l>ZOG^{Skio2Tr;8^$BPSq?~hlL6Kn*{53E{ zZU_g#apHy39B5aoob%Oh;`fr z%sxFjZSSRDhq*me+R(|AZfY|8wOm{qYSN5#)Q!F7M|zWIz{}~X-Z<0Mzzg@-RDR)9 zfFe>@2))=9o{4vaAkv6K@*Lps+P)hUbs3rU_I-H%=q>L+P^=!ciB4LimRCsCPCWds z0xm+S{g|AX;A1LhAI;LlQ{otNx}L-GC4_D@`%SlMCqp^WGLaiZLJibBCU4oRCnl)P ze_*25{N!)HjgxGF?$~pb)ci1Tf6k4CV~&ybF|HSQ{bvIAwPs5l`I<~o3;pjB`2USO z%JRSG(NMJshjj_`L*0d9yBKmRPxgz0;A z2f&mDl^8IH_KSk;*_o5}O2*&Q4TeD3$Y!)<1DsEj=^3<%#AB5Xj=|kI&pLs|8OW!#q=*^3VJRz8W5i67>atvq(#inSn9*_H&$yyFtLu=NHi1jmSVq9 z6z0f+xD0&c@F)5o*R&oJ;CJy!!=E?Vy~UC+NsmPSaK%&r@aV8QXAc$A8e)Yvz>@k3fdrJ#Czdn8F4KDZ5@?3-wo^_W{Ec_=@P z+Q$w#3x96BlN7Va3TFrKLQGf|rn8iJ1|fuR?9)&9hhh$x{n1!j9VS7LgpYoYmn}2E z#z?R~M@h=thZY%u2||hVgy;Q0Fe02M zHdi9ZLabqWY-roHf3gD`Zibdr62zlpPZUjn6f`*9@m*+w+vLX%z?h<8>ws`Ia0mUn ztqzQUO|3?*EXwz-P7#Rs&|5fjULeWBOL#xZOkUAv6l70(lQ$SuvcOls2aP zLVe?X!Z+w1if(c-+Lx z?;34;YyHJVRu~d4$6ej#Ix28-EKYUovbVooW+t24usv&(4_ zyA@DWK8|^2zbYeHeX{Zq>!&H)RQly9S?sgl$}LtHz_3?_afHqVT$+LnF+ahk7)kzC z27k0n=9Rtl6!&|rMPgWvQof!5i_DIXh0%Nik>&ZY0 z%iYh~niFmDT2nv5#%-0hdN=2(8uUBkFOysDJgW5hO)oDnUa|gBCyGMCV@dh)s(FL> zcUgh=KSNi}j;_Ye|Dk1##D5i%+3<(H!eON#Stof)=&rZ>r~B0pm-D zsX=Wngmx_pp2Mmig7u+QN=NSf)BdQF$*!az^)wh1cTEBMn)LIP!ZTHQ*CIMhea9OpJWqCOu!F9`}-^fGj?A-Q>{O~_n9IhpD|-8rg?dKSA|&q zM7g0cJ_Och#^ub=p5UaAdc(&O-oH3&+coR2Fgov32gS zaifq`GqoFFE8l%@7UqKeKG=GCS5dXlQe}Z(sS1=x<0I zD_mrAKYnZ-AaTvl# zV-xG&uIm48iLv~jmY8|`l+3sPhqiZ&5hjY(bi2Q{ZQHhO+qP|dZQHhO+qUiQuWe&` z&fGi6By&%4PI7-#s(#f(V?Y{=VoxJ#Zir86V4qWf7ocCyBS$fe39&080NAxOsNH9K!44YTi ztY9BwmKY9_-+PvtLK@*q;FW8|GI3ZYi;DEK?y@#BP7~6Nrz`Y}E&46%`N$8RzShGg zmct&7B$o9f2!RlR<9x62Buj(_7^;BMDij))@je2z1U(KdKN3$b36{>wEl$mqpa0_Tm2y_dhN0eq}Ddk^hgS(;I zcvCTtLrDlb3=>Qg?10KW-5byhIqI+9iatZfTiHyEbd2lV^6}A;b^;uZvcbfRqKA-o z-PO7-Wmrz$SX%{?NZ|PMhHZt>Je#f9b<=avhXNK zNVTulB{IZS;oWpiE+C6>L|UC*si4*Dj;l*=(!Hz?MOu8iG*ENo4o zmB8Z{11E1lRJNac0~!z@V$v_bSVmz;FFt?q=*TEWQG`Q?iY~FTH@0j(9Kl}eW zzec|A+tPQG@Ih4P81EdQR$F^XyyrX?t`hUCe5ZLLT?SQaW?qgoL+0tCES@R6{0pvm zdr)~|^?KktRC!)Wym=o=>_60hx&gETwcu%k^THpTL%TyE`WHuwA&O7*>ILP%RwXwM zV;{K(n>nciouL9P$)Qer@E;nzYZQ?8gx|T@_n!*bng6TVhP8o*-GA4e^1oap`+tJb z>;12X|6^u0dqbsZ4ZGaVbSFGp7A0R>?)nly8AT4U55UVy`#o)-Ul|^n*z_^m1a@_F zQdKQ)i)(H|Sr|?YcI~ExdIY^NStPdPGZV{*|Dljk6vRw8*$1#e%wx7-vuSYHc;`Ev zn(`6X9NfL3+I4%G;V?UyN@p^gF{+{edm^+omI{T^slGO?C3f|TGqZHC=@=6#{*2<$ zIkd5o8os+PQmL__PNBiwFj$owW?WrOF>^OxsEE=+!QG+P!L3HQy0@%>OR?H|jMiu_ z92vaubLoNBahIE^L8fb&Z1x_X?YQ8sRHTYoDb%7`Jl1qrIN0wWAOEN6>otB5?=-ng zVb#R0+63u+w^3dmk&Tz_S57tT*v#HBKA~1hwUVOX1-Zs5=9XgZCFVOYfwr=KY+0Q^ zmtv)Yn?{Rf#eE?1ME<<9-&VpJI+$`Wj88Tt6iotiul&WtW;E6rAu}8mX``-JrCwx! zyQ>~*PNPm=!8#a-CF$BTBBT`*Ghmc=NRuZUIU2DXjc--Y-Ge%OTn*Hs({OKsi#lb_ z;<$lO$*EIuw^w7B&)P49r0U>ZFk<9!lcVfmyhNKE1fWu5Hz9W?Z_;6`Qc**LJ^Kb; zFvR)iw7{@)W=%)P;;P}i*#$JLzFg6FN$?to#LF2B4vt8=G7N?)VGpThZSisIs|Jv`FStx9H%fC*m-er`i!~am31rtX|a~J#Tca)VydFQ^<`%u#$yQjTpK5sMlCW#vq zl7Ab3aYvWy%;op41H@BNb_o@1A8prW7^_xgnM_BkibKOn&R74Gd~h+~P| zVhfey=g_2omy<)e2hWb_zA;`Ua8BWjgdYQ_s)W@@mDpt??_5U}c+8MVm-ZLSy#T`Y z?(@qb8jAFx6D!79HY+lQ^Hi{Nan-u-%{fPt?081Zr_{UOxSo3#*=O23ATwY17*JDO z*%7U@tTjECfGg^a4RKoHxcR?};gQ(fIy%}0X$L7Grtm~@)z^;>gro~+|kM18s*oZ1SBL1}eQ|;Yh ziqJ$53pz%mo7b#~fzqEZkJ3+YZQ@4=y5cY5)RV7H3Gq)v%hnft)3EUgX75-~|DVVl z*CpE+43C=@2*G5)(~3GSw;NL+v_FK+#LbCADmgsD{k>z2Y_E$1b?$^3|IX8!W)4|j z-Nkg{b|g{)seZ?ZEpFDCE3-r|EUL~XW4F!;u9l>$%}_>-=AdgiJLllX3E9)YR9K}g zh@LKxUR!?+e70L#AU7awtSf+qc(piZ`M_NNpI8-ra7&9wziEfclS9Z%apX1h`Qnb@ ziaQa(r@CU>B)7s8SZRI1zqmpIwl*-IDKK}KR~*nrY_ZWQ`A%mC{f_+`(;P!ym4vW$ z47%fTG5|(7>`E=Hges<>wzwh=sM1NgIQp=Ki+h+np|D@|i?+2Ji^&SR@z%A+1o02S z0D*1!2OXJd$Ol@hlS75A79k=dKB69;i1$F!=<_=PhNnUc%spNpk(PR zErCJ?r;UhK(m+PoAvu(VrV7lJt7@v3`>_0hEYVyqbQELxSwcE(Zwlb7B?*I2)c#XX=77L zpjNo0BH_vEcsFbA+PFN43K;$opQD18s;&dh(xpJ{Rc=%Ssb+UOO@7BQCsm>|vngLn z*h71)0f>jPhP!nNxr$v9uE?lQaKNllS1N*T2;P=0KxOMy$&?MMQs>7vy)~9~uuB`1 zZ^sVeB(GoV3q&)a3_$pZN*KBe&yQJ#;`A<41EN#6Iq$q1td$?i@2|8At(JHLszUA<3^; zrBu1RDOz~pe#+$qkdEo#a_d$<^y8Rq?l5UrpN!IcJL}t^L`D;%D=tu2B_!G=Xv%CD zjeC-1BV%dEpjM7I=t!xSmX=&XnmegDUI6bM)t8fIZ#868$sAcp$lE)9IM*vnZ5$g< z=U9$-lhk2li=R}|PYyGUBa+v5FhZQFt5+n-)Joe<+u_x_RZD9&E2OQ-$_5OK2x!o& z)pvy8rBcUCw~`|RJ1YSYB-a=&FyHXa^m^VKrgGVWHo~o9j*GAj!ZMH*&v>SyjoZL!s0fE2D)% zzLYuJDru~+Kuf{30dsAjLqyBTse>Q}0c4UJ)OWm+<*XQYpq_8jJbpetrR5}VtRIi* z>JVAd1$4|oZmp2NQ*D>eh}sH!su0}&;SJ>DV0CxvO?+=R=}i<$Q0an{sokSZu0c+e zx@gc@xf2z9sdK#+z?If2!(onX-H|ue;GQ|*0-SbR%A2$bT-lV6r!KEt#4DH@ry&nP zwo1aopNV(rO7dJj!l$as7({uHowsD3&8+GHmM3`#ZOt7mf`RV?iE5F^1vyMP(;%A$ zh?tL@GB!ru8upZPPSM{Ss?6He(7!Np?O{psZ#G2>CWa}rx2%FBQ9}993B|l zoS*?m49iMuy+9L0eaoN@eGPD`g<#62E}{oC1J>;{YuwXdL^A@dspVpmTojU~U@r&( zCv9kfh(2gvy=;w(UECeHVZyd^Tc?9tFGvV6aeb$e*-7I*O;$lbTb0A8dW{K1 zK7NHw%SA?dQqX_8*=00TPkLJAIJf~*Ie5+!wdf}o?2arV*d-EM#?7Z_{sZesYp^tj`0{#Mdgj>wcNJN%7OLDz zZ_$_7ZOOtAaqd`#ejBSJjDHdf;9skI6TV{cLm9Eo-qd_rP77D_qvzU@!^A!tYu>?A z^83M?hN9)MeR8@b-El(AUq`3)pr0PUtaOd)+KbK4V}YUW+JNXs4+!E+UNwG-q*p!BXlQUz68hb`&(z45@+CY$k#+64NyQK1h3OVq-Vmi!p z5UF+Ux|CN5n)ye~uhw1 zomn3XwEQEWg|pu%_FrxZN%RtAMRgP+>`1qBgy%k{izjLA?jMyhz!#3e?H;y6ZVO2> zQ5RwuU+2$8Gu1Y2ON~f{L7!>21CEN=H>cO3ivpaB7p=3e0)RW4%GJx)%rORfqsQLU z-9GrKg@zo5M&Z$}A8#ri?Rlo_jux>mh&)t2m0o7Lc^hVVGZo!yM?3xj4a|7g6Za@8 zdowj31_$rDJiS#4(Umvmvq9AI0!CC)3++rQGo+%>6xR-!5o$AOx%ZhfV0@aCfc|As zIwcTd1L~&XhY{p556O$R6Y3d!T$wKOZhdN*dqw9*V3J+)!-!vUeUp`^o4y1dW9|gE z%IHqmAlro^_N~vlAomoTDhi5C`HCU16?jnhLruF$TuM&x%nDK)e*q)@cK0NkUUp1D zI{pZ}&rW9a16fe&S#d|g@@Xe*Hos6t| zIh8{?2zEYD{R4&|2G`I9pr$S0J`ZK7lvc*Z9#oL6V252`ruaDxLXxpL(rffaXQmfW=!2nuXH_R17_*{&C=kwM!)V~ zaSn_z;KW2$>c)Naf5QFNGgd^~)-x7ct|0otx}~88>vUP7MiDjXl;ldDP--v~j$9Jz zkvxX=?ZKu#$)T@9T;b>oSn1EtvP=~85kpIHa)z*PWWR*jG!ZqSF0RnS1|Fdnp}%P* zt%RtgeO&sqb6EFoAm1}(onAk_ov}Wriw@UUv|p^e*X5_U3822I+`xnkJc+li`y3vM zs={xJWx<5casa`xa9@wC3wj5Eaub$)knp#z{rR%4E^qGpO3k?5k#GUu8?V@RPyi5g z0pVSN(ZkcF8n!unHgN<1N2iPb^bq318!#pF(4noh@PSk60#ok5QR=cTKvuvJHlRG> z28>XDu%ERf<)Cxx+&T{~RzAYX;n`HAK-j}#VTO#3Q3Ja(a7(#!^&z+y)GbHapBDmj zCyfFIyTZG~Q@F>3m|<{F?rQ+bdB)I5=@esmMFSgkkHR_+%;dzw_U}gjv;RZ1TH@>+ zmU(I{)Q)o^8KKJ+QH76A;HH^StY&x2rXJryis zq(loDt?_IDN~Jw6loygR^&v5Nm9A2ITXyFkWB^V2CnO&Ck8&s8FFUylOw{7`>=t+r z!Zb!HLV6B#-?VALl$tQQ)r`@XH`4`m-DOTwib?x%?cJw*tOqE5$b!JDmntXl2@ZUas}oWlYiTs~Md?F`Ppi@{ zIL@p+>((qv{vN#QD}*Y}OBrF*?5Je{MWu!-Vbw|CLRd0jp?__HXg6|Blr|6Mm&9!r z_vl0UMITK&b8{Z(2?LxW66T=b?P^)Htn-wWuznbXj!UU8c=%sI zI|I!d%=?MsCfL8F3xK0kt@9&I@oF)NYO--^*JBGSu5dKfzb#q6X3W{oOpZ%7U)j8) z+b4I0XKmxPo;Yr1f5%SSxIQ+$V>&x~NBxORStf^ZT@qJe-%N$tCQpaGK0ds4yGnaE zPlr40yH+FJ-iid);z3z|jP{~mhJ^96{_F*=cj1^hQWyeb5GV7-TP%h&r;lat7{t6MuF<&n8(GR9L7SP zoo}8O1VG4jVxb%?ENtwu5IUEpK+-vLk{=tUQ%tpmOWa`RO4uZ~PXQb=R-ceLLURfn zCKec^d8JwEoHsplR!<5~9(!UsR%3p=$6r`b?pgpA_7G2Jx#yd)M4&Mt)1eQCVSrPk z83UOMG2!2l;NR&cy;8c4XGcvp*pe{`CR6Tuaa$VD$a==8UzJ-mZAXTpW_Utcom-^Y znrR01b}j(!2MVkehNIMt$rO&=X30h@Q!FD!h@|8iDe{=bd2&u!p$p5m*yPe@^2AqS z;MdxObk$(oznhL>Wf0g|hjc;2XP{9ma4!vVy0cE*Rcf3&8)1v+ign2A=SO zN`hyoF`$HZ8LbxX!^;`oG6sJAfi+XaWdQatoa;gX9k_5!SusGmF+Oq#SkDuOmU*BR z-5Kp4qJYl^k>xGw*xIH)^ZN_0z74Or*boms1qQV()vo$GF_1Xa`R8oS;_?w}Qi_X8 zhxZZ#&F0XO5(mKOq>>2;`y)a?H4PA680v<2AC$^c!Sn@gJ>%jf0+3%C^Ml^t6L3xO zHTd`TE_X+Z1a{yuv;d-JE$c+0ey~pSyv`q{*39;zus{VD9*N?77$zEOOmlSRhik^x z{g()s=+S{1jYdGmTs>?B^D5LpBEhkM!n_iSfo?r9n?P#inARM5Rv~aq z*TIfZ!NJHLom!Gi)3UHgT{=$3Xryq=nhF367O;}U3kV^ZE5qv0Ic1#r%<@dgEqq~* z-<;NT+`oe9Uwe@eGi&c=r2_Hd{}`VDByUh;jY#AfSS(>)0%ygV$^ToZ=q~HT^1>;* z02y%vOZRsQU?yw2sMS3-DZQEHRvec z@JZP4nPALuX7Z+@VyR0nSB^m#9ZX)%Kwcg$-?LDX1!PK||D8r>1o1TLgCPZNU^jwT zNyTE+leKTGkohh-sg8sFLPGJq@aU|d>6wtk9`iy0+8QwUuEp-Y z7oUPuKkGeC06J~QSVc{2ksca!7$+WWM-WJV{i8N_=#Ay|)$L|H;JqHG^wqOiv`ZEC zQPZlI`v!;W-!qz5wg($|(<7N}CiaxSW~nxf`jbymc2P2v zd@W4zCl5=(58xvZ0VGZv-X#s zHRT@6z~roh_7VA-%&FCr+pzv=egu9v`~Dr@gxql01M;jkFtL=xs{K^plWk3&j2c4* zk^(-)e%j7`2Q`Ya?T&L z;94xlmN{q%1V>204b%oc>`+)To=EeKC~+{#f-0&aU;&=m||?`kI|?^2+{X-wAbLWrKQ<4*O%<0ErY2NN{E zbwVZqE(7C{Q+Z^G7eFzEhqSjXGvE$tK z!vhyRT(3q5#Da+8Yul9ZM^~r_?qgtDR(P2wLG}ZV{S1djxgKLSF;tmVQeYX23r7Ib zLG}z-adg)yk_R`$tqJMEV7Y$|@bQc~rnjin1q8SCti``R@zytysuo)Rz~=nFK$i@% zQV@@+%oM-^vlb1~WM@p6)|Eg$8V@la5pbRWG79{Sm+ZOebo=V)R_T!nXHwu_4h>=O z)yHz=Ouf=f&!F}&o%klwlg`BC=kStZniM$uNio7I-*8;78Zt>xcgs!2OjwDdTZd2 z=}sncCok zihZ^o6#c*+T5ol!XqP&hY+5LxrGGf|-pnmz!#e?;WNUViZKiKpjTye%7U9nI5%5P5 zYY%ma3DF?vXS^7Oe$)xI67Sw544#xWRaH#l*{fqDWYOaxFFf{vbC|4okKx?Y!+Hoy zy>MbHofL+7Nf!n@Ie6#4cm@F56MG|y$lr4xgXFmS^FAytEWsF@Lp4GXhvGiWo=YeY zJ|5il8UG1hMk>dl@<$9ImuP3uPjCzym-KLa0f+&sqI}@klK5q ze%3uQzp6zkyi`D3HT4BVU7>q1FIwalUZuX+JrNib|H+Z~`OurXX#D|0TJMJBybOFc zhi@GYhTu=NXs?6PDL*EpbxuyPa>~DG(w+*gS?%JsyA@!wY;W6qXuSr3;b*hpSPZtk zyS)VFDgiGR@LtGLzemg&N90b_-nzn;Gb^Q*J3`JD7bROrDV01zLCL$`^OttP3SE&s zH=ASY%vdy~7oD^Y((No;we|QG*&3z;hj72${^u*8E{No8MwzJ%bfHu`ob zTScX0l@N2k%&7i10CA!=K!IQI4QA`5S40W!d2xDcmF3pJj*(0j;WOaZeJb;BW`LeB zd!BxoGjsWQtyQBn1e)4Lwzc~A6$%xCr}`x23JR=QjLuPS z4Wvy2$`-Yi3%qg5{q19Ny((jV|1dq#tI89M1`7(%b4;>xvV6;{+`R6XHb4dfXpMjj zCRp|6%g&Ip&NlUd?eF>FCTE$f)ywSFy?NP#(HH%LhWFbwBdXLO-_!)C5nEU8V?H}G z+BOH0v~@}Ts!938V)U*FwHkGXqUysSF#iBD>iu2#;ej!C^Dw9KZsJV~69=6}D_LyQ zhVA?Sr-qvvbxbj7`|uG)Mm#_@*iw_nuSvF7R(~8jKk(8#chvZL@>lJxH7T$1Pywng zF&P)>gVgv0oHOmgQ^qC)L9%HV$}}Mpw-}nPzR%XwVHHvdIsJZ7nWmVN#nq&6l9AD_ zozP~&UtCa~;26}{_{1|8nmqY;b-^;pDtYzFMAIE^EztBnB0ZTmh#yyLzulH4f%45S zMZ@|WKiQoH(=^q9pH)hQ{@k8`;L$06%X`u(Z{(cs3jcL3$E;z7^r!@fjD#l;6w3>K zA^4LE0x$fQV zdwum3`7(4d?RI(`@@Ffzz|pcPEpkXL7osBsfYtoat{~b--(3rc>hxUcUd!CpE`j7% z#{@$Yn_(v}?lbvd!69|m|JEdpCR)pN{cU=3_ae~i#3g7?Fv&X(=3c@2=V^8Z=CPfk=i1JQy;NQLD=?(gGXcA5nDDM_NOMP z656J z*6fyxG0jCfSEd$m*+*RAb*I91??dIs9QQfzQN;&sZpYtKwHJci4!HP^rzyaZ;b8|P zm(KgG!23_Qd$0NUQ~PXg2#Q$)nx|iMwpTE>mrJbyo-Om`AnqXVR^I&}?;vl~Cxh}L#PzF0gMY|V|qsJO0nOHs-l%uNaMEnrMJ)N)^yhz|B1Kk><`j&4S zTzX9z8Sr-H4Ay_0<$lBqL1SUpXn%CdOErWT@IaY6I^1e6%rwwQ+C5K{&iNGxni9TuKX?>6E<3ENauCJFpE!*#$5P0zh;v55Mr}jO!zsA=RH~^F?hoIpa zSTMqVzQq1G~B4w6Go3kKzL{{d{8?&J$0 z@3{|y>J)_`I0DKYx}e8}ry&k?I!j7jkEjXd8chMg0!=X71-AHWm}1E^j^^2l zvAG5&X_xACaAwCa+<4e^VRo?GYntzP6$Nj9)Idq4zj&AmJV*Pac)XJnvhW|ZEncY4 zPjYQ~L+|dcx%l=_Jbb_4?|u^R7^!S>JDrt+m0Y+9$r^Q)<5b-F+ez!PK(BZX~-esXT`+DOqT z?743Dil?fSmwapI5SRV?SGLZ`?ZIo4m->%&pi6>he60-cB%Tpm zGr79>;h+C#iHlvYry(Q;0Ekfk&syUCyNyW<|F^~@7c?m?tW_1JjQOY-;12LWkRkOE z23%|`C_^qrUl0SOaQ#q7>%*P}0VfzFQKkuQ@*&04Bz zb?14f8*Pa2jYzK3t%r_N8o%CSem0%S7i%lLrjS)@4?qx(27==>FkNIp)9zoZ|8?u2 z9Jq2FI%jLNgve_^V@*?|R82W)vVy!S&udobXYkqUkT{*l7HqDy{1rne8PKRsi1UWS zbOLkVqY&3bK}#OyR&2`G--I2H)@86A*Bdt}WR=se$mGWVq`53MMkvA;Azc4GyB6YK za<}R9usww_Zl^#b>*XnH^WIX&wl#eRN3m5d4w1*z5h^E%;qKFhSbw(Nybfpphvx5Q zW}7*M;Hf>>xAQby`(PTyGU~nZHfls(2o}%oe9+^0&cPmeVKA4PrA4K$7l7njv1{wS zJ`b>uSPeCvVdZYuMt-R1Mu3v8q|ku3nHx@V$Z#70R#S0;0P5-COaMlcZbIfxn68Y# z7)Cs^AR1%_drXI%on!&vBY`iNjmQ6S{~7l~z#X9qVMy-#Ms$m|(8y!8_t;-Cd=oKh zn=Kn;1D{1Cqv3=-3yARMa-Xvf2Fu$duoY~{avE^177{m@=;qOuVK4?=PzRkf6`CoV zqAi5Ao5S}$)3EM+i`7DH@Im*1ikIorAG(7Ddo)G6Sm<-sfy;~uhFObgv%=aB0XxV2 zsh2;rG_P!y^r`=bo@kDv!EZz_Fn4gMc5OHJ5NVPhDyP{PbB=6Vj^t&@E?BqZp#G!F zww&*^1h}B#D6V~s{3Ou*ZGj`2BhM#nVK!gis*}>8(lQJ7URzH3)H-joAZGe&*!y@9 zANa=-IwXEB40~!I;q)!#s=@n!P6Z7QvJ2eoDh;boz6<_cJU@K)Io|mjpeO4`4$(LP zKtv86q8Bm#jw+G3=#f|f65^;LtdcmGJ+Q+MU%w@8&lAWUh>^Uk@J|fHD{d%1X?v68 z%t3SMLWlQivtO%i&5m&95ZwZ6oh9k@E`qn6+Y>kjES&VIj6 ze>d6Qs9@#5KDh?s%Lg{9xXf5JG&-0(=F7bn6L0s)vhc+JJ=|p)&lSf$>sK#v9SkYzztRqFR7)QY45})zctr2N0@+`Hu z8D&S#7?m(nQ8G4xNxLVw_8rVOMk0~WSI{Cc-)z7bI%6n@5G@&oQ4sVj)e&;1D%^1m zHvy42uT7ar@jDP2upf==x?=QS>g zOW<8~;hR>%#zGRfW?!NacyByFF^=5@U>09#ynYs5YKBM0v>cr7T z`uV4#YitVN7m(+`U2CEs9KqoH5n)Q&r3#XLD5pH?;_$7CH#F-K@^Fgi znIN@YRU-e~MQB9dH%LW_zBW_>LoOXh4$0)PBn#T^#sXh)jvtwO-3@^&s$6`jK6;=^hd{1Dv5^VytP@cx ztvw))944GIFsEj^Z?#}5!`!UCoouA?C?^`mq&~+tam}4a)t;O?Z2~u1MVXscN7#hg zZ4!QPh2lTUR@2iqhT_q+za*;k<@9QR*ut#JsHEItE$zp^u&{ESqOKE^LZD&MS+g9c zDu}h6?k>>bIwZ(eBjE68RL_zzDw;S(cTZ4V?`sY`YKaXZwcxRkr)g_t=r& zk~UIo!rs&y!WO!Ha3Tne+}CNY(Jxj3r+zONh3u(FPz$If4`^F*7`?gss&NN*T~AbD0Aokrmn^{%YSQf2AH2)ex6lFq^OPK5ewN$ zfiSyflIh1a^PeWoVE5w{mv`0=WJ?+ri}xg-sN9o{>+j8$MeTWohsHKOp;72Ex($PN zx&;-n#l5mc^?v-6vAU)+a_g}3u{nILWdHm}D|a$_U$pG6dbJAf|Bobw@&A^@_@HYD zVU4DvAZqdwSim17)OU{z>5j6Fy(+?zX^#wm2!X80-iUDJK~&+H#y{;@_pDoodVy(6N=Nw+f?0#IBCBC%NgG41KW1A ziDmjA7@F+TJmd`)&lYI9ZU8{MO7O9YQ7KtT5h8N~I#X*&srEUa=IH8z;_2kJPlM`? zbZNz=zt;WZGumj0qWVnWBz09Z;F-QkF3c93*q;dpbpB4hJGZ$eX6hL4;Y)A!hHRsF z=1}FM3#Z>U#`7H3>3=-MX+2u4$fl0^rw9mzpd^LHE|j*;(j2EFbql~VwHT-WMyq85 z8=B^!;kb%n6@_933QqhP|9W{Fz=q#;`p|0%w!J`6dWf<)??iiKc|~&^_@{ zdV>*u8HZbwcE)|K!T=W^n-D{2m(*(TQM8jlBiUhr<+|>kmspKcUPt4JK;a}tsMr9n zU~&ph-x*|c{6r{Rwp-cEhJZ*UIVu7j)qJ|pM0zO19c9z*O5R;>vy6T>O-G9neo1F{ zqhy5jC2E?aP?Tp&g{D;+hKk;M9^tS+;U&G(sIE`nHr>md!TvcKY{~)Jy3q!BD-X_U zYZyKK*csiRM{kr8Qzq3ncok=JP4L6Z-9TZ}T|S?7yD-N;`60b6O}~jnRaHj0k)^zF za@J({70AKZs1osUZ0|!U!9lx(IG8>Cs5IQ6V zKf(ZH(uE_0xJI&X4k$J`5C*oMXR_QVdSL5dQp%}#eE~~e9dZa+9dyPMAJe(NuH7HC z?v(km4MDkVU%|RcrP4rDl|7FEEb|1wA}Xy-goMPkQCX9wpFYJ1if&5dhxQ?$<2Wci z9IdS9m>!QQvzp-yO{Egd8KJaXd|eh~HvJ}fb)AS?kSpmh`tV9f`M_Zl?ufKnHmHk1 zcxBK=RkbR#dbJ?1e+xCRiQ$@otE`V7BN5vClmg4^8W7pG5cbK^k&#>Y({Gi3_nF!w zh(HB}rys~4!K-qU-J`RLRIFuw(AZsPPR3PiOZwN}LxsTCtCo^(Eq?^5VZq|WyL8=) zx{UiPj;7r%WEEVyU8tPhXlodVYUVXXWyeR~qs1=lv))Q;%Ao(dsDAG9op|VGI^~*r zyB&l=iU;44QjSq?d5@!33LDRCJ>U2NSn84e;b*rn$@W!YMT_myWNgOuegH7Ua&ueH z_QNM}BO#Uyvz6OHO-xE1atzm_{)NR@>Q%Ri`G#Tj1TJsW)GO|GQ@70D<_LT}W>j|j zdTtdV&r<-4Ot}rqLD(tdWi`VR`au zA|<;cx|b%XT;xu$);9Hwb@(VAr&96r4tRV9Poq29qJ3#YRw$*j6}!iTW5$<=xyxI& z23NplR`RsQnr26-(sFf1)=^Em&wJR>P2SXfnMOgS9+qPPylA~$Ig;>Wku;xksi>;s z!ri?bNvZ}3wdw{oaKZ=N+iX#cgD$17fZA}1PqHf0+8GI&bZqm}^ z(c*-pM!!umpwK0!hmy!Q|C@Ii;kMW%$~|~JyX&P?#@5i7+MrB87m{sFq8&3ipSis6 zR^I0ywstoqj>Ilz91^-rpv3}GBU9A+)#-l0qF435e-M1My=8F(S=nL|#3r*60t88$ zSgl}P#9{FaY?8K;e8u9??96n=bciBt&Iy}BI^8EXkxI%LqT^#-fqfeO-N27HnZ;v~V3piq zW2pGwX(w!ntne_Y#(6>=@fO&nl?shV`En#K@FfFw|F&zwzEK6wa{I@(2vZx|m;hf` z_N(sj8rh3?_Edor){WK6{pnn}ns+t&TN zYvc%Y7k`>&_62&Y=2ID7G=?iz&mGVxCc}K9JaLmfdEr2KwK{sZ61@8Co^kZfug2E1 z{ypStEipRcXPT86t;f<^nL<9$o1cmdzLZvtk`M6Kp^~1F#u;E^5$;)z@$L+cO1LpE zd()YgMk6&Pjff?h7Dhbs(ln49e@bMI@X=$U3x@SAI}RCRKB2b>$YX}G2a)TG4I0li zKS2&~6S`HJ&Jw+4nwCZ_F%uo4*X=X-Y>)daHXVWggcKlPb<((fXQ+DtzTuhfS}^!o zB|Lcnx%ev8=tZc41HJ&7?po=8uNMDs!|bqK+IzVg!`q1GYl-8%C#$AsB_cC~Bs-WL zc-3Qm@Fd_#r0pq$Iwya-c%Up(|GQ{kK`Ng=j0v`&a@q0Y`iMUt_~Bl!b#+LrG9>f! z3NVgr^a97qn`F1}_j}VPZj8{4{%B-ep20V6Z2v^P{srFwF&bSYPIScKZ%10f2h^d4 zWBu)mI753%&ksB0HXd(!Z%z4fVj0#Du{Um8o4|$4W75AAyDFyQ>L-m1I&=`&#<)j`IDvI zup?~fJoP_ncs0hpbp|hKO@z#`hnx_?9W0uwu!?er8F9X#_h$BgQBxrb!(y8PxR<+3 zgEjUaxND%=Xb&=yzGDy12V4q{|3a$au95&4M}CrjO7swz60ZCs9CB)fP_O$)=BDE)--p)mqR;anc=d#$E(K-!+SdF|~=>PfO-= z*L<7e%H(rsKP-GGGlgOy_Ey-(OL5wLA|Zy(JrNvX{^({Y|2>plSvP+DoA$qQQw?lp zBoasffCS|KEI0ix%Ybd{j4ezp{=3+@|FXpOe}|*j`+pz*53!+(+O!&y8uF}n?-u_( zc27W_zA|(f`qIkUMg@X7KL})m^{BBQ2QkyXDPS2jT+|v*&yI#nTJ0yivyRd)tar4! z>wgg_lRGabCgO(L#5da?*PVF1ADwh$w_=E4$ErTFqU|_B`x08uZH!n28*mfX6>c0BTRg7eRSAn$0CJ#^pQU zTHN_8bX#s)Jo31mG~#MkI+YqwsnwEaZ#3exY}=A&?zZ`*s43IxNzG3krf#DwpCwqF zE?AG%aoNwvA45)orZ|x#HZ15;e^MA`uNq)Oc;CaH^KDSn#7WP_8|Fai&n%%-5hZY(Nhq zIxp^WgpY^xY5K+%Hs@S{wpv~2G}DSTn)TRT49Pyf^;^p}`Izgi=jv#n3w)^hq$^p; zslaFL;qtYu;G&stq9Y^E8M$n-q10XVKcG3v+?z9|6Zr#}J;Yi(_|eY^Xb&->o+A6> zu&q0zei=yG#ED4FqqkQbZes;Jjhebl_ssZ7@jNzqvE#62xccYTyP$mPyC$|NJUDgvteL>f()7>H_@Sp>{6lK^}#8kKOk`yqS6sC@R6ElLy74-0~BTJ_1xd<5+oPapVp^+^2_rxb~Jt+1|00*(vEY%&ucH$sN^ov zBp7YKoaL7RfU}gf1LI&;yge}XZ8kh#C_m)tHEy5>J`CdwfMnvbpk2h|JFODPGvRzo z)_ygaD$p86kS#1`66Zi~mNO0lI0z5*Dk4K1q|?K7;8-VI5=pWk*MwTe?!Hw5PlYo& z2di{lQHvy9gpEo;uD}KMZc@Uj2$z`J!^e;~sDqV&HW#pB3(r)kB;Rnwn4Lq`#U}C< zJ7HWBTa!65a-G7+0VRzpDnlKV)|`m2-AEUyA@}eFnvQIlEV(1!WbuI{M2+U6Ov>el z1Dk6-U)yRrDImM0gQ9Gtul;|^Oq%z$U*PYVc;<0dM zI7b1X?WAzUIS08RUIPvJkFU$z+IS1AhAzAE_ojsxoNcnrt@0L#kP0GV6^HGprDf z(BC=b3?DEsrIk%xWa}G{DR}r(HQSOHbQ=t#&_)zEw&xy&(JE!pw#L&6JracUB&LdB zC5+ntUCxUwmhnFZNYSEu4n`x=vIY`iX34a0)7}|57ud+4-xp z;uf=DZ8x`RLZQe@p18KR+2RlcQF(#rTXQ=y9z4l_msV9U1s?~c)^2T|{$wS(b}F~; zd)vgVGP-2A_UVyu1KOk32VN{Sq2QQ1(`uBwgf02hd;IV z@YrQ5ll{>fZ+gUj)Y_P{yeCJiFKd2!tYm$rklIE#rr}OM{7jKx-1MC8PIEeCLA*D* z%kbQpsTMT}-3vnD@`aap^F|TwSppWGLh#eF8=hN$c!g89x+o1)f88E*3)t{L4vdg# zH=m}7th7+!2)dJyL0V$MbZD~R!A*oCzMQ)mwE0^QR;3pHJ_^s z7i0Hqs1zUl%B&6yI8ZMF&vi$E;*Wt-P=@mQP(cDX3?~s>aP2 z1Mzq8`1AkZ?3`nKiJCq?_8r@{ZQHi(JGO1xp5NHEZQHi*+|hgY*}pc~cawcP-8o5j z(v?(qQs-3F`FsVEJRibMdoQNje&TZa3$moMHmGho`I)mb|2K{71F$(S{!co0=>I95 z`#%q0O#k-)7OOhpv?Pd_YD#zHW~-1Q#|bRD4hEKvOwXT0EEQS_rcC+{WE5*e-8fo0 zg7yPL(Hn^(kV|ZbhT?*uvb69&x*lH=Bc=eI*pSk#tU)8C=~<^ z&`=b?-;anzUPWL=4`MU5!uBz`Kjk*F-#4xVmeI`VFrH451S5jg+b-1|uElKM(8%iy z=DoF$3_xmNiVjeRPUNA%dV2m^Sa^V}XH*%~g83`fj{?9OMPY=6$H_kc#v~K=HZtX` ztBDqk@x=6rTR%k8A;JOkOvwfNk~K8_5`8^lh^@z592MSlCzgLAn$1!bCj5%ZKHCVN z3FXb#MAUyBi3s$=bDs9}$!=)JltOc48xT4BG$@TCuO^LW;WstZHy`os=jz340L$d0 zNjb4;KMg18UB0sgThC^KFY@USb&VpszN5BO1<$2a6{%Xp){eb2Ou}ZvEfoy{EI{1K zbt*fN+sWuAw^KRFj9yFr2t{K1l75Xnenvj$OZ$XrF2Bv|6f>AE%Sc@KRJqbtKBrJ+ zHgDX6(Y#d;#xkX2_KGdIFus9)*oK~t_L2`zyhbZb$4C}N6uD43{ z*S)R&062K3IDSOkSCTwGueL%B^g}5t!2fA(2YL*+a^#KQXqop4N zt7ZbIHG5P8RqG^eja6YWMp|I(j@2F5zTA{HzoA>GDEkb{|BAStAXH{Q*}vfX|3|<0 zvGb-j^B<;S?H{G@zvq@P|No*Y?0=h@F{r760|6^)zafMEdo|?0Bq|WlKTH2P{(Dor z|07e32LH?A|1ocz>4Ego9cf{_^={kA)sre#b027AG-omlN$$Ru`Gc%QUmY3yWeQ5p zaK{zh+{hu>HF-NZ>dA1&0s)tyZ<{4|*RwY7eMiT-1f38h;z$^Hmy+4>R;%9s_M`v! z{r5|q=WIID?>}e?^N|h=?ZJuTkEl@HJz(NR9ZX#6l*U2)*+|3Q`E;}v76_-Q$KVYg zPks7)y2$(Q&__Xf1`w9VDp8S9j1EIHejU_bER}?%@lJl`lEYrGpr9MOPPGXP&`kdA zIUBzNhzCJ4)j|&%0S_l6AkI%_O!oLAH_&WP>CARNjZiNqQ73A|i+YrBrYxQfGm1=I z#2T3NH)@lwGuZT}k5m6vP8mV45uZ++I@4w!A^rW-wE&grZzoO-Fxw+W(kp$ozWMa4 zIkRYLrECHofo!T@7)_c83%t5LIgY6wzl*&5F^nO>?hWu-9nA|BucuB}PC#A_4f6XW zg1k?h=jD3gMD^ekI;Q&vg{i`QX^>$KW@s8{VN+>REzBXj!XcSO*A&OIuVq-$Egq)| z5R6A`>xw3#$Pw-t?BheDHk8r1M~5$p&Q3cz2DQ@Y;LN8+)QGza`UoO(iS&B30a5ad zkd>?4n^4hdo}q)^nI{{v24W%m-=g10E#J4#%y8l6W{{0j1xe$K%<16}9z3HHsp#;g zUWF%iBC2oJ-P^|6+DeI$U!jNBvUiV}Q_i5iE6QQ7IF!$~3`NdiPs4w@qO{H3q=8Q& zu}%AIrJCexK+wh_!fs{nzG+xSdKYCgDzL26B^evcr3NRoMy90+%B+;!7?T;!ykz)Y zt_Fqa4QA2LPQ$4i9U#z1H>Yta1($q9XLueMOHDG z9Nz*5{ph#iNTFUZyuxLQJmLLj^aGd1arolyVWSm28gi!o;&7!Ad$%(fEqWb+{ra`W zy$;z!j@=b*#99w(F=%LBNR~N}r! z#TtxMCB-N%d(1|QS$xe>Pn;9$It$D!SWmV-@5a)Dz(#tY%YqOkx{!7^T}_{H*ia|c zlL+Cc_IP&A6sm!KPe)iJl-+o4F;PRk(!{{mXCM+4vA@G1i%uDVyZjpz8v4DIZ3ML6 zQw2Yhp<-s&4oK>Iu|tIS5^yp*_lS*E7ebnF&<7?7nFSzl2q3O4eFy^6ka(`WLZ4O)XL%&;Fx)Gkpt7f^8)kz%C#K1 zGjuxo=yDK+;;~XA1zj*~stJh9&CF{W`t+AQTDKyAd#72hA}@l|_;do%Z4JbG`Ce6e zbEomKhD>}yri>|#)z;nUqeD{YSGC#@bmQ?~YXi1~-?<&UTU`QfYIVX9n3EOx$B(|0 zRo1LoZ3rm24qY3-RMMFyXd&igf$qk$6KKlw}lZh4mngTdFUv)NlD=nBdGp z@Gsb?4zu}c;3y2GwrU{TdcpMpWS~XV)e&8**L_4;_(Yl;ElOujMpewgP&X(@wGbl& z4b4QfYbDBT0NeJ2R%0B1 z=jNzCFag$r|C+q?V!1{J_pf`+cC{rMin=2>r<~33N8%PA2k!;Y)Vf#JVwD6<5p`KmZ-@?*%jP@CfwuaBuVmIaG(86f`_Q?MM>N zLIRep89FVhI~&Z_{_xcxym&bs+^9ox1G=dqxM?Ykkx_F`!i>pE8V0(OSGBRJ?LPp2 zYZ(zOcFgK=<80#6gD=bBqAx`y^LELO{y_4*`7C1MXjSZRRup3c0?F1T;=;%D~V(qHYN>XH^UwQ zX>UmOsQ%-tv5<&N;9S^Fgh~QVD>2OHb~LPYgz4iu>>8{mAJ|{>8Z)>2wx*J1XyB>x z8!m%=hfIhmMcK4?&<4z_2HD~+quT?8z?f3gi_a$hp@7{eME^o$XdN2Vh|R`S zV5u-`+2#5UsMHM6NPt$ybR!6quaQ|uOMV1M?X+)12q6RL25)5nXg3NrHa(qtGA<$Q zIF2JcUhLqG*RU|3nrtq4SQgD%Z!)?wKX)J*D$Kgqb@<&Xl^VR`P`C>~t z>y8)Uy==9f zz*`v@8DA}w~sAeL59g>r-fTI!G~IyN2#Yu$!a-K zAfEJ zta(O1fH)L~RQLAB$`L&bmW&D73URvhfJiW9OAr1a&Sq>!tFYS|YBGa-6EO9wxLutL zaTWDsgwxyyS&f@-S;9-tPHc%{5H2T~hj5D{eNJ>7@ziV!{X85bs|2FOE~@&1Y(cfB zd`v@Zj&7z%q;oZgrt!?wK~KTW)<1?0dbeL@lZ+k09^`t+O33|FflQ$xUVpI| zcuOFBB~RcMYwaVdjHfk%nrFbpj;kVX@r$@Q*aq3hOwd)+zU;Q;wN>eQ^`bHCUX)dS zfzv7kjiP;LWD>4V71b(3#MTH-vy}_>&ya@8HVtB-3m;jMz^+hZG;KtgM^5ZY8ovl# zQV6K|8o2cxm_-MgHZZ-sJtU5Y@U!9XGA%~KTek0-D6XS=6DrRxbe1OOIoc3JW@q2w zVU9YI6oxRvz6yzhM0T3h3MGYc-3E^eJqHorHH)9SBel3AE8lg*gxG?`1e%{Y76&M& z($UnPSvkfZjPKq=`EdlbNi~81%j88rcmV&o-<3y;rQbEF`|Z$R-*Uw#iLWE6H`vkh zFCPO(Uze;q_^--9X~`nap0S&Tk2{0UJ4tzahoNi&t)>?c`!u2k)c_{0z8_?&2U}z( zv~D)9&664)M(E@sh-jL@}5Pjdd^QAwS}C4ONN+? zi5u4Mq3AD>?@x3a8JWQLu%VAeJ+keWcezk>F-EELYofIz$P9_9lHYCx9?0H;#y_L| z&@T$zj^x4xxQ0yk{2xj#d}h2V@ZKqzhe$Mcax#VVm#_sFaBCK|O0cdXEA%xkW&bfm z5kA5}?Sd|GEz9e)wb?|&|IA`tEzez5FGA(Aq%fyJ3)&&l&rA$ zJipIA1RRlH6k{DBrOQ;+Vxluigb8S}|Zh*X-oag7*W%;@VJ>CM``xy3Id7s3Bg`Xsch>GN zMnWfH@n(4QyFmyNVd2MYJfmeXwZt7^tXIdq=>EY1Hd^ zb{X#9vR`LqR$aTSZ~fkvYm4vJl%lUd07d9Iq!9)=(Bx%1o|f#qBEr{6`J1wG%5hF( zpn`$K-HIKS#eWY5b|&^XmQK;sZwamc`nFU&XvATr!PPRY*Q379HHMPTM;Et8FtRLY zfj6g}G+kVaMTFXCBryPS4HLx(^+A6s7#(79Yf=^(Mf4Uw&rG+^gHib+oN9>>ZC9dT z-qE27g;|eWmSd4xUuc zru!*dz4gyM1H{hbVd37s3t=|||BZn>STt;AjKP0W7 zxNF$^IANg%X81$Xy5jxWV<@70EIlm*-CeM^EVfL-GsABP)f|+gEMpxxwEYyzIe5w| zPWY_C9}qBXUBMyk8oalb>^$#%!f$pTYvTc|F4UFw+`wy7mfPU22oMn~N*G(w=K2~C zhYPEmeYrT`$C}dFjk;l8EAql^^E^Cv%<&Lb16iUusuZuXKlJ6~U@v?-z-NaT$@2b% z!I^_+tJhg$TNKcM_UT&<}i z;ciwqJLR9cPJ7VRU$O0c69eHzxRzq6?J1t3$WaqfyR6DMqUyj1{S>@&j2g4%VXxQb zQLo2bYPyQnygym2k&RWTEWJKs&Nd6efk83Tt36fCYufda?DRAI-bp(EG?$!5MEmO4 z;9O?oR`uIdIGyoO?$})~xzEm^i8@{pcp7qKz8M*QCq;Zn7*ky&M^-B=6d9E|qK8ee zt!?-zxWdO<{M)z}eD!_W2hM@vG<2h}vROT`cpQ6N$5X)<{XDA7xI&VXP26`t0i_wg zVTV=+zt9spUAc%TpP#nFg-=+s;n|}N#@_?Z6_g#D1xe+)>96`b!E}h{23VyN8k6xQ zhkRRee+^4mg=iC0_1OtI>WiQ+Kj2HG8$m{si$WuWl}%X#gLoZ0Bx0CncU)?dXhh=N zSZ#HV5(#0p7JDP`BD5Z1bHN>HMl;HnYFq!f8!f~olSv5!z&9MJ(YQ(3g0qE?09h#f z=`9pS2ebWKqp1BU)tUJWIf9+b>BM}QPnRP`JUm`r)bbT22HQ$atiKwW6~MHIx{OKV zar;n_Zp=oUdO0R)WZ$rsH+cE?QqE?nU#-;z84{bx@UP4UH16cJ3g7GQg`-Q@)Hi0) zr$$@P({bYhSj|Eqa0MKpnC5Jz;pi)4#cmc*YaYt5=^l)QBtAhcdJEdA;Lq_3U(+J@ z5&$+w*7X1vR~%a=*AOUZlx#(0`ys1C34?HR;Z+Q?yNyh2RMxq;8pn>c44?Pa{v}`Q zqNF)I)P$pNNi070vhIvq{Omqua*s5{CUXX4iY$Rn;5|MpYh|Znw|*vt>QHB7>qTg5 ztkgQvXvQ4|n zqn5THEUdMRv-3nIiLGlV?SP-MPUjB{s;=Cs?s!I6?yr8mVa4RA4YPHQk%josTwpxx z-?mvSkE60&ZT<@LN=kE#G7LjEVVmwj>RH)qdWt5L03xHyM1EFc*VIg9?|iQF+|}NM>G7MP z`-e=7tpyAWYc@GqOy7et6z98xzFuR~o5)(~^U$%g1JbOMMciT-ubQgNDkK-gMO`u) zYT`3Z$1Bu1nk_S3&qRSas8AF-;NC47wxYX_3$# zd+C?1Bv5Ix0YV{qyLlr=h zC9aTgdVM=F8Iou^!$OJ{1W&A)7aF_Y)G1Vw^xkjGFJG}74cgalG@};v_!E9&0S#3=tAk@$8DrfQPG8L#apbH3j}$>`13CX%P3oh;oYA0Qv*$PW z=C{^}!K88gD^R_)-95YKk=MDxZM*R4p)F@@8OFmujIE;_`2fC60%C)^>zqBDV8ZtQ4k zCf{ZO+`P!eyd7yFf^#z?;FpP%vL8aV!2z4k2e&x$s|BwWMT5cZ1Y|s|*ri_G_DMv0 zw^$zwiHJ6L+XCl*@|OxR4_|;&4T0)_ox#=!h|`L&vQ}m@jGypLGSnqNwDQ4?8{KmW zE0kt-*#ZIR)>HL`O4?AJ5a_VJLp>e}jg>dW6_4AAGLZOrTnRYB<*4y=rVv^$W7wE> z?}7~qWzCj9xSiaNITk2qH8gtt*GHd6$2^sFrL4%Ro=l~7hN>EErvpg(3#Ono7Opc@ zFs*Q&wU*u_Sud$$Fk(yrwrH+nQ&f*qMg;fT{48KBW!;7Xn7-Y5tHT(~Gz&;4?_@>P z^F7kbRy7`uLV9T>$!N15L&Mk~@xk_!lU>h#5Fz*4=KDb(i+?r#H7C z8{)zu#~SSF1epcy-uY`?eWb|kc0%C22^^EYMSGZHF$d+VBSS+uT8= zvbbqLh8^Dl`(Y6aKh>q&Knz)P*zV4RgnB_FkmQd*L?1{G1YIFFl;NAT-aWGF4`UjtPSN59D#=Rx+v7!rkMZS0T*kc*K zqow$JPkyk=_vF#Gcjv`dq})MMq>1>z4A{4;-y_L#Sl`pmw@k(9VF-(CxpiKleCJ4g zb2bf;_YIewYE$d&H^**Tq#4O?keCrRq_uA9HZbu`sEnmCjj<}3zeiKSBE{aq5=80^ zR-6h)vG~=Vz9f9D9$fn77HRc`19Y6kr=ojDOh|asxQa$~7Up)<_k`*YPO&w9&h11R zC#??K>7cs_2P6TMw2qaQ-GW2o4NdC~syCaCbUV7vH=(ZdO7sE(BJSqh_9xU&lW7iW zL%})Zt&1Yq8S!@mgxn>!EL9PR3hdpL(bT%N8p~?O)T7p-XyIq83%4Foggd%Oc~@^t zFjX(rv!L}?E~(j;gYQyqXa=tc*ZJUPBEh}fAus4#NAYpmJUdQkdCAr7ckcn33WYgT zmDfXJAfnNb7c``o4}3bR=L{lpuQaAnzGXqlJ?kBRtw1d!8L~0QsT5hHd8hFMF!Y+H zSs55*;`a3PXsExlOrdhR=uww@`(rCfmV;i z){rQ@LO!-H_^sr%Vp7bOd`Ix?zq%bQSW&3f84*RAqdX~ctSA^}Rt;wB`)_+LJ{xRl zZ&Y*-FmYOIcdy#~lXO_azn=_|RNEv>;rVTI+*Gp_A6=~%;lYV{d6`6;*xj1 z&O(cPZ!J7M0J%vV`JeEkPtx3C&=B;qbyhOgbYW@CZGEt8p>Ysqa5J|)XPB_zb~gwf z3|OM@vN0}w8qC&(^1k-fX0RKvh+?Yp)pH|YORLQryvWTHqRi_qht?KjJYv8>px@N4 zLN41Q$V`4Bz53#^BQ-<3hqj6X4%N+%%~p7aI|r8LggB$FLqGm|e_+Icc_z>o4nJ|k zi&qejk8JUb8z7|^rcN!uk%v$ONugca7K5>#Ny+@%-W@>?mL~9Cq@xO)@KqLxArEzA zU95O)f_Vo+?3aX^5`FFPaDusGA!9v({)gT*Fqln*sQ}7HyU|`oDVQ9dxBvFw<@R%Q*O7a)k0H%p{siL%0b?v$c~p zvF_p#dGo|17+Fm~-jt@UP|+$H?vt)x#>-QgZQgVy+8xAlJ1mlPv)2(g??-^`9V4E? zi}gooF$Oi#3Xk`?_4y7jR`GONZ_A}TL9}H>8DNoUni6R=(*KeJ(E~wjG_HirFAX#I>;RAMV_8BpkV$^}F4XTAn7q_aBR$ z5!Ds1Gg~#Jf=XpMDV%yOezwf$iR(DXZY7_(*mW28_VAK50+Rpzu{Q7C1!=e{#(3MZ z4q!y@I{L4L5l})&Af#h0^E(dhX3Wu*ZVw&zXh?~e zXJIEeTo*Hy-PyD6u)@>|rm=Zy&4`r>drcOa zq!h>I@;ac($JxaIIdkP8lk&Vvq_$k*V7W|-K|g8D2Yqy)#MfY^^{#NkVT8CzMo=WP zR$`Y4s6brI;t6y|K+swutVCK>y;m1oiASoN4={bP(y3qo{o4X#cjY~vrM846)R#B3 z@9;}+j+d{#<+u2Mr&_HZP;5F26py}J)q3WociP{)8o(LQGLbulZMbaJT}PBPg4hd6 zKx_IFl+D!pb5HQLiZ6qz*$d@m574I8ZO!IG-E&XVCx=*z>Wj4az{i4n&$Wu#*|NLT z$t%sDAK!O^0GWxOlJ=BOhCgwFc~x{UA;$x_|D@8#1fi1fjDSB$JWImj8~3YZ@MF)h z9x=->9y#$ig&^fu1663%CarLx##vnVdG&6=b9^QBBj3M8^-HO0PXp-cOkiYo15ja) zW4S-FU1$7)k@z0fbI)#YGZ=m^W$?J}+vBxMq(4Q#^Hzc?I2Z={$eZ|;tM~$#`qlyk zF8bBwoB%J#b$IbyqE{4Hz+;Wh!Yk|?6^|JaEpc)r&zgGkI z&inCj0m*Nhl}Gr;g6TfXW%$=g@moN32@31h{dtS1b54em{N+>8YxHXxm2Al8;^5QL|SGWghv+YasITIHY=V5*_) z*3%upEAz0NXT`Lh70^3n5^qj&uA%U{6)f#h6$;JAE4qo`k6zW|5Qf5K?}^=7C_m%{ z*xn4~L7V&|fYL`Tx#z~w?orWf+V`?J@3jKIawY#|wZF2E@CcP~_OO+Qw~UxGo^Rk( z#Y=Raeb9V{!U$ROBIM7E;q2OvNGM**A^1ng=Hp|o`x6D1-4?8;9R-(P=|RgXCLVyg zw&Sa;V>!9UR`~8J(7vUAj#T$81I@nzfQnE%M8M-#f=ZnCGvNZ#DMC;of6oUdyX>pV zHA$JsBUIe>3PJAvb7Lp~1;63=1N$Wr-WIxo={*C~?0qf4n#XZMCGAr=*=OV($l6tt zOn|Xk3DRa6DaLEsp*$hmW!sGV{@=G83dDcUf$v6CU%D=3G;P{QVz|oCa4FhzM6%Fv ziiY;BB>BN!)k9IrfF+S$)~#S#6IV6pLsxnnmJF&vQv2K^u5bSY&LRi|`L>*>b2$XX zqkbZ>Y%0d~h!Dc7R2suvMk04ffyT2FmT)>}k-`5hOyOWzMW(=7_!39$2MXy&tgtAS zI~WM>*(u`s)5|**C~9Nt*($CZ5)o|Y$#e#(lz#D9J0Do(vTu#o9#^rpvCS9vlvFAr zvH1vk+nC}rs08|)QcSwTqPgAB>XXJ2F#nWwDkg!zu$W^xmF`-kfz&XNR(EmQU2C%I zVn`|9aH1pWSV^~cYOBz6!h;L4?Tx!>IkYIv`?G#Dg6@V3wQ?Q2VPV$@$ZO2}?M#SnSJ7&|mlvzL8 z4AF&0kpVR+xwvVPlf%eINkMM+XD<(~|3^xS0!?l!TWkj(X(KVp!Ej481vJ^!kOyA$ z1eK5=c)+WJuOvSUm1^Ongo4FdVwN9G5r9ure6gRzHn7srnHLdLLI(#$wNyw}Wy6)j zc+hSu=}LrpoH6R+F@cS?bR2EW7BI_RpxTQ>rxy9R=AaD(H*4vyLBA7D7_O9kw6c!3bBl28tQ>XL8nfBY#ZE+nZCnt_(Cj6-xyE~H^R6H+hd z4@78p;EC3<>PZkn8P8lXPg@8(YT}}&ToKpUGMytP@`38{Kut~>R-Y4iccsY>u0(0L z$k^`%2IbyRcf_d?dX6uu9%H3`&DM%gW z`bx-VO2im3(92)t*BCYsMJb6e1X3{GF$VJ|sT%srG=)H-`)J9k*Z6WPjK7iL+9cWG3G~>1UOKR?|g6A~<#01ZQ z{jmkjkG!`EpCkQa3!6W2zX8v$vY#9>r~2nwQpJ!0N{$7^7z4_6&_V-AeqFxciRaJG z<~A3e!ycMjXZ}8W{}bsuzRx!_f5vV8!4v48PelH%isv8LL4hy@4msv7XL29&0Sk7Y zQvg*5Pb%&%HM;BPcE^9!~pTT^chxbPJt+GZkfExEI!`CfZ9snilu9T|zK+ z!E|7L`nd){xN0KH=v2kjBl8tQ*EZqDI3BvQ0(x3wdv{W#q%$4D1DxX#&hK>12}9}x zKlsTG#Kd&sM`l>krd)j+6lQvcHXyHAVt|}}p%g&ejrtgQa2lFM7_jw@zKlx7E!gr% zOtTW}O7@5G%IC@ywz4}msn#3NdsrE+rf~O~QlIOoL(~-qX=h;vv{jGcrlO#_3ruH# z*R^_SmFlilu_F{lfGzsShtxq20ZiDrCM^*`NqyI}sD#$NCq1Tm4@{$19E6~K!HwoK zF1=Q@KUA4Px4M&7dF68mS>^m&&4LOWQG5d--|&oIGnQ=Fn49=I{`?=0THw$?HsoI7 z+K~A0J0g_4XqBL0TvSqFSlzK^#j*9ow4UayZO{Cxzjx-+DrrrV5WB43Lr>9$8!7DG z%e3yv20ChDqf}`4W*mRzJPjp*{ zlSbsx4mPC)kzNAz1zx;oO6ktA0Tn#>iBw)`*%!(STLOozyu3h#N6PrnHfItP!U=IS z@DE<5GaNNS?u@9=6zjPM&JCd6*kSMritiRwedTc!uQmTKe zDkHr>n4woqF)=^zg2;gQdj%Wc^}ZozfiP7N_j{&573O3CWv#h?Kf13W@Kn(_(YY^O z0#IeLzi1$;cH^m`j+lW_A-2?lPBs0A3Z+>3Vn`d$&rbO_xX_o$=bT(QAwNhiNRbWA za={Vy3LaJ)PnN4Y;gl~tX3E2^K6GUnD^3VG?t%_-P--GUm(Y2)q1l;Ozz_}39Nj~c zHJR|*=ZJEVj(dt7w{>rM@weQ>O)2q0$1|1E(RF$Rw|@(=(3lj2sEEakN)fsPh$B(I zuYII;O>oj>H^R%NkhH-q_~{oi&L1?EJ8PUVtkeToM{Hb62jEbfA&8J;?Cf!-REkT& zE@BF_mXV}9@?p=F5VSL=9_!bIeLUl(O3#p)DsxJ-64yJ2t)`T)6=fJnZMNWMOk^-y zEG0zAI+2@YTwM()&2Yhh07}$go&2Gjp=yz9I`!~MEp+~`JnYv@Gi8Rv@GZPOvx{|z zAWLu;l<7c{hU5H_YI>Y(FH%!X4rk2g&{lI+7-R}yz?AYW{Kc)(MExqPgHh;c z_sBe~H%sdaJ_mH0T-h_PBI4C7ht1+PDW4~=W#3F2_NK81+PMU1%7ZGJZ`4lzBJ?Qr zP5m`xshTG`_~Edups*^WFb6L2ngc4iGa8#fS~KRIJQD_HkPorVA3M2Zm!gB1LpWD2 zMHmZQ>B>G)%3`<9> zPrFdaupXaalh9IiTj~Q?W@&klmJ^z_X9oJ0L4xEwZO9^}?A7irX=!D{vKcM=X!AEr zdxie470nX@+Y$RU&L&pAq)ptwLYzl1fdtQi3LPI4bX$Y;rX0!Q=_ zEAt4g*h+`=tPLR9WcMS$t_cOny(_^q=AX_zdGUiQU`!u#aHI1bewZw{9sb8d7lIL$ z1|;9((k)hEJ6Zk^v}S0_WCRm%f`(+a`@tw#0VOQMyhlM>3KV)vW;5g`YxIr`w~zgudi9w&*huQyI=Z@=XCTF@devHu+D)u)lF-Jg+Jv5W^OLY;Cbsuiuy%QY+tB zf1wB>wM=|Y-5z1(y_)l@+?n#_#NRdkU}o#bPkNcFif;aczeVcqW7<#pb6m@W?0e&V zTi$0a^6r4M2t~D|ZLQ(b%q4EnfdCx4D)5pCBbU7>{}{tr#A zwR~x3*Z8JWb1c)XC7oKfUFj)4*15-$@vOig$O7#NR>n|fJ4FD<8YF8Nt9~rkl;L0m z@GK`&fk#-uFaC2<0+&Vv?h(k`%V2p}N_!H^WQJQ83@1CuFXDO6lG5WrYM{7!O<-Mu z^Na~?d!A*#(gi1>v|KzOuA1oq;MhaFKqa4pr=gmF+xDG9UF|na3)&9gre~K#d3Sjr z;x%t#4pnh$9s7(>7gDrq7@}n5AZ17F)4e#;o!Uvn?4MI)I;@sc07+n}JLlr( z0aDUIw-6wwK2y`|t@n!%HZ&!dnif>*y#ZQW@(?zSwMu#J;70XuF7AqWejv-lchHBC z$A@pBM_|Y42EH$9xx`%@P(zK{YNk9Si+aw_#DHZ_^cMk=pIqvt<82EgJ^CP59x&2! z9scK$m4$Rw2?K3B-%Ns@?54khIPQt%Dj)tx4z~z{eUSHi!GG?EKHnT1qSa&~MMGL) zG5)gj=$dsd#P=3)|CJW->Z~0U*9(=XpO$#oGpXE+KX`7|4mtF(2$f2%n|0m^lsJ<>Vw9( z9P8xjz-|7b&jC(#Wq<2QVVAcZ`nqj`SPN}B&e+1 zba+#3jmM<7a1|KEagavYCsc^Km_)PV`1x&FLCuzH7U2-u+6Bh}ww<(`4D z`i99EoIBvUvCC3iFvV-M7{zSL|GAnRMftPEkDae0eB!Fc%k}bvPNN84zO_DG*?l~{ zE^$jZIV3@g#}0YZ+l(K5?kM&4V>{+yb&tX6-9Ad>^pTJ0QigOW$CljFy~2+hD@B|- zII3uPr;lwUWc4o=*(R$vtEz(WUvr4-{>>NL)gf!2{@uK)D(gMaDU~0`X^7(h_s#KZ zYD4(_;57F;$Tox+$W4JKo4f}djOAz06}mlyqm(je-EHYc&k2YWoHB&eMO-4A~qqhJyZaq#$r zsT|NZwte97V}YCSvA1yI>0)X-5qs&_H_Yq7)`YI$(zVEtb*R+Zgd*QCsb6KPyQi=| zPz2TQ>`Bp#232#l`}7$tL{2^lZ8`|d;@E56=E2-LCXg8ni#@jqZ7TKQmWZTl{JB~o zysl$9S__)!cj+DvdB1__YM2qcPg&pn*AFgvHf>0J8bT4P*sw7ZL?>th9p+QZgkOBx-yKiBF%KEm zM|zcFKs5HrDuMR8O}nCIV3>Z^ASkjzzS z)js~!w}g&Z;7Xw>jr&90Nmc^S+1~!sGRFh#1w0HDJuhd9ZE^pmqSN)y8jKp2ky>}w z_0Rp`(_?*td)80SNEG$l^kbj9r|+W!?QcCwE_sfpJAD|o+dIX{x|2lBNu|PLk3Zbp zDLMOi9sWS&>QuXM#{vN=@n4Y6mkmFP@_JP9I6b}*oct-R(4sTJTVxSJEK>hOxljftt&!j+Rdxh>6LIM*8p}hMlDl*1Pg@nL&KqDFwZ0g$hbeEl$~_p*LY3y!PVB<4*&kNUS6%Hn|enN*nM5r8=Gi0=$EyBq(Z-_-@Pbav!0z7_hL zS|rbfF0nIIz&X4dP5O4w_wld?`sYr_hQ>i*OleRHM;2_sc+V?Mtk-%^uBE7Kts^`^ zAym1=@_q1riM+Z_zXdo5>gt4rXfOtR8arGmUAx)LN{THB7L(i?onmgq(ydA?BzW{d z+tNURF^99cdvR*YSFNc5ID?a151t4&3s z47;+mCfE7nG;*`ez%oZk|eEQ{*LBQjGK+n-hJ)CZ1ztWBV=+Dbu7 zb`QVLOS7JW1a9VEb>g{$&g{~{bZ20}V&f;qddzr{D%D4m^^?k1F5LMN zmRTmyugqn*WK$+kkjXShCOx%S0CBPh4n-FZiR z2dAJ8vie&c95~U6iw`fdH=B4YX_=$5+9q%nYUtSsFi#uYX>F(swtnaBkM}V@{^LVG z^jMtY#l5-5-cSCbk6&M48#+IXLSYzDdhaiCNtH;XXbL5qvL)@44M?KsCRac@7WM9w z)nL`E>pUVPWru*pYhz#9&>QbLzMFS{B>NwRM_P!-X%b_6ckdQum>Mji&{jueiZ`%14>e=KdFp(S)jZjX~`)i)smy+1L zdvb+8&js0IE7WE^-Q>g0<>sV)!Xxtn=U_w`5cP>RSxCUy^vN5AlJ!H|4ne9nLzSpk)`O&>y z?9a=2|F!pfKd$_PG+>Z}hZ;A3$L235I=OkpR(#)$QcoYE_Ll75^_xGVy|-IPx&)r| zNpOL2-wa7Gw&?hO{Nep(gw~D7Jq3mi@rAtKXaRZ^Sv7pLt@|1614 z%I6*1syqmsz@ za9<_HU7W6^SqaE%36LHdO8B^Qtbv&rceVZAGij8}h!YR_?Me%?LKHjC!Qva7SY56r zTIE7OV_rSIo91BZCfw5ajL>mju8}=Fr5kWyOUPn6o1ovFAi)_f`^t=? zD37u*KKSN-;eDinR#}EjaPm&kTjn;J!eRzP7;Jd~0!*bXuwZCgT*r_;#Ie`r{t$Zf zFL{l@Ma&`$GFRmHeR?iMNUmHHYq7isEIxWyuG|9w*^|bUGR4+=#~~kV=itlRI#z_+ zhjsjHfRW<&q}ep0gW}iVcl52LKV{LDAZYdt9L|df?Ko&*AbK?y2F}3Nm$1r~4 z0n70B3589Y-o=_>PmeH1wS|`>PUWmEw%`icj7rXh;yMvaX~t+hQbAO#6X-<`?;rr zLrA@~!O#wl#)iYGrQvRW5bIA44$CzpSZ>6GWKs%>6pu}lk=Hc3*1*Q$+Me}atQ3zB z(Wx{DUi>>F3k<3XDVW@GZr!2K-x2K8!Q8!wsJ~B!udRGfFGjOjhWu-$ZYRUJ&VbjJJ8;f$*<4Q%6qWKhB3Tt{wg{D zBFn1kYa@}elzF?6qH$uMJC(> zw<7U!6rMN_oWAj3KED*s>zBs>FE9JA7!<=%e?{dz3`pH0xdcFhbn{NOenPj6f@>WP z85U!e9>>{rshK-SYFwQ|cd%4tokDrWKF48$uqw92DWX7k@Kild07-g?a)9qU=7*== zk0Ym5iW$^A8@FiiGb_V_4-BjiQB8cSnJr+SdXE_`C8f%)kC-Ki#Sr~fydXK-(0VB; ze-HL7IyUXvkdR(2H0%KNBljBNK`)^e&AaBsgNS${rp&ojjw3u9W7z8KNZd+tM3xSQ z8ydE!FiSXER(Ol2jkK+Ua?|5if_;02ga>0e#*LCdR3wxyNJ2xm3c7aFw(Ngi@0Yk+)C7% zJF|@HBUuH}YG+?ry+OIG;wcqH7uG!lJGx=G+CHaDb9ezL$oz8gc>$ni+=Sd&5rfOO zps^9|z{#Jn$Cx_j{5>rr>>p{^KZ=2_Q@5erY*enim0O+Rc0@zay^)SHhk;?F-n>k{ zTP?`_F}+d9tL&6~{ezY&Yjl(rLk+$0Li1>s-GXoO>B`6}+JI{)^?l!ivB@N5p#;Ee z_yz#_XWXIonp*%f!k>hZJ!(wIS1mw(EhzDrLNmL*&}gt9+{d;zG__7LyZ&YwvVBh( zg~ir+*so?VA2e4&U!8FgA1pPDQz$M5knDb>9q*!X1>_l)o($|Q?h}u)m)W$NN z@?prR%ab=Y)E87ckgoj#mo(zt?qg8J4UK$6TXla0N+{7&JB^!MjQeP7e5r_wbb1X_ zr!w((&TGiL{6{Z=n>~i~0^%bk2Fuqf#l!L1GGd^1e{P8Ghe72hjm`R_qW`tbx{7Dz zCiZj7a&&pBpCRW_0omBh0Km}XL(L?J-T=c^1-%O&jAY?(C+_M8wXqI^3Zq`V#SUA0dLoHV6l@U45~imY)zYCapT5Ulv5C*{ZdT z#5OHzqFg3BE;MSiUbQCLVJGTxMtBQT-%sq0wvh~GUfN8yf|JoBO?r_GapaHvEjQXJ z1+!ab%2W#{p5!F!`(N_Z{-;!+DEb61hmlBwj0T9hP{Ye7|Hq zN?*o%Xq^XL{NZ$N|2UNNthnLPo8Ugxg%~R^v7EX(dq;A2u!XB?sX)@(NScR=d5u0& zUKT%eAz3-|MUuseiTP$UcmXU(c>0i_OG>~w0%O-Gq1fwf#Y5*y9z<`p18VyiIU z24>@4GQ|z_*%AB2cyn^%hF5n+cgvNj_DuPBFDUa(2tqxI`UKbSk3AaKPjZOwNbrN2 zj~3}rldM*O;Iu<^r{Yc3t$15>ge#%8fVgJ0PQf3sE7bJr6Ogf&0>$f#ln_@fT2`^RfS zW8y4b>gg8&ZyVC-r@v0d_rFNfYipPFB}?e5SmTQ@SS{&jr$=lz` zBDwojh$;&HgR6Kwc484%XyBKj@%u_yF18jHTCuIKzJ+*8YkK0Msw$0Mvi{dI!w#Y1 zl6KK;$gQFYl4U{DSI-ir*sAVP^6f03o5+TuUQ$*t( z(e_HiskO7?+$w*YL-Jjdh7^{|wv|Vm;}vyaD9fp;aNjL$c-eSTYy1YfeUzJAX#V$A z%w6M%>Ksy$%RNcsf!+cA@dBE=y?GZ;z!M1793wyDYcA+@+cyT6M$}! zUlA8<-YpOD1)|1!Dw7@>t2)H0_wgE5bai71@o1C%qs*=l* zcT)8rJ;Cvn6kRAp?>cg?SwfXqXj_XS-2N6D9GFgQ26iRcI=EIzC&_(!psjy)p8RX9 zQklC_O~!1CJJrMjM86BvbqYY8{lzj9l}sParCo4;Bw=N~6kqF}cDN+rq`nYu>(nT& zS4N>N+Rdk>BGiM7mA;UPyybmw6`f|eK(TXd-G1Xvens+T7wmKg_+88=_aVA}?UwAs zC?~5^@R}nH+$mG^n%x?-e)u8wP4LDK{MMK88HDUyhoV3A!Isz|4I6zkfk?bVH00u0 zNOvyne%4B9WzvuR_90;631%Bb@nz;Ckbe6XXX*3TzDd9KW_O(~Eaj~X z;^6)G%AcKL{ZM9`DHc-OL8S4MR-;dPeSw2dP^${aM$nXAqN&)=t84g_B5D- zqZqn;@${r2f9QdHgxG+09BeGgfe%T8@%JS@7x;1VNe0J*oA&x6rXSJDO ztK(2(c*I~&c1p7KEC8x>q*M2XvyEVWBF-f+qDVQ)c5`%MYgCLgxssvY+R>9J+g2fg z+JR$zYplzM`z#pCCh)=aLPt#PzZ133+cOvIsS z9`1s5*Np`=230(ysJHwY?5KKFbzh20&dil6_2bd&*41NfJ*SBc6Q=KbkmXed^gLz5EM;mG^d~5jtrIT5+g zlZM<<_@8U()^a9Vm%}@BR}%2p-wrEIG3jSC1{CKUkg=k5l8LI+W`c=)!g8BdSP0Ru z4;GkBw**W5y|)iOL#iZ+r&Fe@s+0 zY#lO}3g1uKVv&4m@Ce^0@AG?a3*B6oZ#P78&sxJ{+;(@M5%{Ga(_b`+6=n+q-UTDBj9TTKVrLIl8JP=-#6bIr2pl*OI?NFPa=pd_&hH2!fGdV8tni$(BH14TVjUc35GqYT z02UMl+QQfX7x;jqQ<$R@8kaT2KODC?rI3u#g+h3P$puq*16ag**Tk1D5wE{z*pPX> z86kK6D@k6w=66)>E^^B~T34SUUbaM~5BSQO(VtoZlAKCCyXNLX0xR$pZb@m&wJ!R$ zWx=hfzMT$*wPh$@szZlNd04_q{DqrajcRd4UW0|-ki6t(3mco6wqF(>vIzW$9V)yI zvivahXtRJFW%_S`<$~nvWt*L zdzR6WYu@;sF@-yqz2GT^P;b_+S;)jiYlV+78yQ}>k=Jyn*t<309n4(7DF@SElbig? zsq6@}Yp1-#8&`L8=?w{TECxkJk6P)}xEIbYene~?UK`qE6zfqFH~xez%zWZMkhr#; z#buC;=Y*kPETX}(V&-6!#3P9>0|?#l$WJD>P-YIEf4YQb!bz-on!Q{^u8i&(?Vs?) z1DXFBf7IG&m+MBDcxHR}9kZ-fhu zT&a_`7*%E4D<6|KFjdKOte;VasoOgO4L(xl<%9DShP1-`LQR-XSjMB>(k zW6$u!Ia?_<)aD`yiOL%k8IHq>6@uJYtfge>GAo7<;$n%) zN*k0qnRj7U2HC&8gtyB8Wic_HOz}=}WRgLU%4L5C4;d9fo5qdn7Y_=?NOoIR5Q&w1 zVqz;A;Gd@N|5%uUK5E-fy;rlh{*$ZWg^6D0jeO^4!SHE^H4aYNh;m-mSG$rfN-Rq@ zP)#FA+Di}~OlB@pES$8gtUkUNM0c!=;+^>%yw&$u5Ba%jTS-|UsIR}| z?N{P$b;6xoRVUgGRrszpX$y**KDoz$qNeXIMXyny?~VVxaUMVC8Fp(5KPdR9h%T<& zO8YE2WD^1S(m1`)@yG+kvoT~6q40+s#n!G+E>|8hmPKWv-TbV}8-{sDhffpSW8s5k z2p+z*({wA!{2Dp3x_qg=LFxDTuJrGp;M!`@S+>H5k4#YPq<|i$d0RRc1Jp$d&@H3l zk@i_Z#o1!abtByvw&=pU9Y!`R^q7Bk+1DGe&(>|SM$jq*sO+d8w*B6PyB)088=6nI z7TQ%q)UUzm`n5)`S&tgp)zC+t%-o^HJUNk5u)bh3Q`nYtFopmeRATE1jJDJS+&PU| ztOzBZ0kW8(p<{m>eUf}7&mbX9n;gJ8(3A zawxtcq+w|-Gl#Ae6%ekY-x>1?sc1zgi&_r`+j4!UNh4-Hy}~T}jN=`+oz4M@Pu4v^ z%|US?qS5LKz0Rk)ibbnNww3N!q}RWt1kSnjrQA(hg%|-3?S#fJWqta^L+n%edWfQT znu`_@z7nY8B(H|_m)}5v*R%Nc!6v8UBmCj6-B;fUWl1weIJt#%O8l`(Z$TEszG5uH zHY+l{oWF{5VT$pw!pFo5KNl>(c#gsG+yb=TL|B%pb#S13=OIT9l@*`s$aXF5*=8_- z{DK$1qFG`eg%+ID5 z18z4ZX%PEHFKvSTUdugfM3!vPm=gL3<$~Td@?OtgiNh!aM7l#$_75wL3g!^Ct|8H- zF+8=t50QAgs9t=$5_2onX~)>T+C4^cthcx)PPGi-TvhKUmkI9Z0DL0xdABqtQbuuX zO~buuVSd;SdRGclP(u8n=YR%A1$LTCohXxTMnczYc69glU*2A z-icl?UZloq#cI%N$7#{TjiQcy6k1W`>@@reR6o8JwHx{GA}c)v@db4 za4v|tM1TP%8Bahu zfNGkJEjpG0r`aMJkpwqfP!^U%Q;P2hyFWPq@ODEIEv1yYk#qKR^t|bQF)QVmlB?(E zepOt5ybhFPavuZH+S8;N!*H7nYdnF$n`Vc`vel-n|IE<~8t%&c`NGPOC6(^(yB z)||nLc8(MBm{#}wb*ye{sNn42j?QT67<;WcavC|{B7y2ysB;PQI%$&bv1b+wzFb9r z%x<_stB&$CZyQTxq)CujB0XVo0}nZFJ6^`Ep|8Of_3d}GF^}o2X^BeLzQrBT3fU8z zofk>$_z*_Z59pv)pIdfHxjIU5M*wAN$UimDiM#`8QnwxK>r_LyFx;yKw^N|E8q z$)r6}u(wlf?8-7fNoglPjA%J>{G)Tgm(wT>Vl5-gOuB(w62YqcFsn+a$V4+$)LwJ4 zE97;(jq91$&J#M3Rq0S`b742lq87(MQw0Mz&l=%|)uFEDc2#SUx?YboNITWa`%gg1}%uTHqvEFlfB9O27c?o}l!atZ|MN z+Vx+5L$s-kX^b|_jAnGe6_K0H)E{>RGoTReqqk((AaffTS~s(5D)a;u3K@9)XyK)P zICXTyEAEZwJn?zd`m~)5h}otl%5%H*763qfWq@|=OgN6OIbbRFg2!A#tXNI6$$IF% z;MhP^Fm-}j!$52 z1Raijw?1%>)@g-%LU$8HD2OcOjO3cWd?Q$5X%B-C4+x3d&}p+9kB+qW&wG>Al1?V0 z6zSzv~&;ExH4i8i8D=O}LokuZ$XH=hHxGB&=yG)|s4UI;#@FO8hK*U)?a@ zD%HR`O+~o2;=t}}q4~Z;1FdRP8m%z3iMC<`g98;R0*SWO36RiyHNtk@KWA(yn?!+V z`U$~sjvI@NMk7ITxY>V|qO`qLi8zQzRCEF{b0Cd`tTL3LoqWa}n^+ZG!a7n~`bDq3 zY0z+SbPn0Y$ZpdDFfB{^40H)rfiTAMqpi1 zhWdb^eZw)V=W}Zk3^QQ+PvlZTx(RySg#T#2gU{{2Ggjg2Sm{ViW{C5o=|i4UaKq!opGv{ zX9zZsDf2I2*`r_;X>PDXuZ^bq;<_J1rcw=Tw7QVtwBk}4+enkjBxww;`s*IFN)m~A z-R1T~6=)9Dh!O5bVV>ql7rQ_NlF1Uc&%zF1nA}6pOWQ+8j;Hh?Pob~>yi0CD#8uzI z=m#<2!Oz+*y0LEQ{4KK&r&)-BGRIl?OlRK6sLk9%1AJ;}4nIzbvjYc8n}vn@7F(a=O0Y#lp_Gs` z`&ki;EdDj4m%1&^38%nB-^GH&n7)JC)>06* zOU4LyDP^tHbbu$irs_dP15NTGxSGp6Y13_Vp`lmgy)(5t=v)!(Ys7?zc*RMTUz*WC z7kCQdL?K|_q}?|SBE1$$bywC(3d&Y- zP(<%H?bQ4W4|Yls60zVq5`xZiU`J%Z8civ1?N%plU&2P_)ZTvz_>IA`?<1dZOEfis zl1)m#QDkdag1JM`dj4eGc4tdwD#h~$D+Eb7k9oUKCpd7U_qB4N4;EV&h?!rv)5 zj+?@DzmH?u8h(S+se2zgaT7Io6Zh!Bd1IH~9F#6`q#>GzWj1E7D&-|a)vs2+Luk|y zpqtQzF>xb(hcm!QuRKUFq<4hqTDJl=`qj4!=-ch?+YRd5ZT!v)@}U#x5euRiewGD4 z%Uo^s79;<#Be)9^*cT^>H|Iw<)&J!K`;koF7W*}fzd7!UBlAU!&=3n}^0BrTgzVb5 z9`uE*I_8EUbm0KoFOJ-%YPyQAtl3jITaRG)ha5RgX<=2qvil8FGI#X3E)mK`of#@m zhm3m?hR^@2YCYhKc`*j!VVdhf1%+8;5|3@Aq9Qcg4m_sb18h1hdlwLZdn1tqm|gd0LV@WIhi@zzH~^If=mY#oq_*0N`g3FqV8v zNf9T`9)vH8(p9q&c}>W*wGkJvHh<{?eRLnq$B+sGKg4&Mq1bxoAN^Tg8*pH4z&K*U zuvepa+5^9(&3v*M9SAFHW~{84q&9ATWFM6*LgJ!3+r+Y%W$6~XM17aSR>}@nI#M~- z4B2Yr{fexa#kD)zfSwb>I34x*(_73Ku53?%$;avhnuvaWnXZRvL!ko}#Zu5^@;HU< z#z)+XmFQLuembsh=nB=^)#Y!gEuExpJ;m0&6Zi_T zL&yZIXVrEC-8UT28-E|&vCvNuppTG*UP??q?J@G8JGZ3Id;-lK<@+@Q*90H^F?_p1 zlYFu@#Ig6OZ_7jz{(KQBstI4Inol^C;M`p09;3uB->H`deT6`TedP2P*cT+bTYYw_ zk(mi(etHcW;n5`U!$!M1b#%>v%ly*Jm)WHg-c7!nS{q`FKt4qRhFI}q|_eZ&V0UWGwz2(@FSU( z;0d9c%&T84P@ahMUf|hCj~w$K@p5c;h%mlVv!UO`JpQ$h(BRro+Hl&q+88d+ArJ#7 z(70~K7r+7;b*mx??svCf!aUK{7~1$Pz&6@-@J16xIKym#w$v@Qt2F~`RF4QUI`lo- zw>TNAF}5EYQ(RGW~FxUq0lN>*UBqH#)!b{H*NtIrbCdV4Dp1GR!;Tx1~@5LPg< zmnhC(IYc-kVj0iInMf3GZa|-_2rwI1B9ar)s|beNQCDU*;&p&(ZIxM~XjM)G*-f<* zfbBjYIVU<#uD`(u*Ps=ahL{*?xa@{eqFQ()kpc5_g^ljV3a1w9;1O}u?>|#Y6kAE+ zR{sSAf#LpFQtH1Qs^?&1=wfE?Wcxo0Mfq=M68-OT4Eq27^8W}&@zL1u!Wlwak)XEZ z?TJ2;#wC}-9U>t@5_hyC`!krjTAxh;-Qs)^T~plLZPHAwR=HY2o0h~yOWPEjqIVjs zmq$xWTYSYW{|W4~%PD{K@qS9q|LkUFPP#_N6Lp-$Y(D*!wI=^rh){zg*XLZ_4c$)i=@rq=-P*Y_0BWlWOGK4EIT-9YQdYR)lSaCSGSyV6P(>Puk1`UXRn z#!U7HRkqXs{kW>&OzktvbVDuOT3yFH-mN32*@82q`>BrehO6h_AOR(iX%6mh-3=Dp zZPfXbNwnNZB%FckcGvWqcfS(&&8K!d&Ym+t#2sdzTK72}2C5dniTl*y-GaSJ*e=6C zw@5YL@jH*t97A;(JmR)K3RJPIeo~afK+6vZdw9$dbt$uLa_}is>H+3HHdwZ;ByzKW z5nShVd|d6oY_q+N2*Py!qa>==08Nj^!%jST&6p$Y5MB9=k9PK7Maa*jGs&_)r@;?h za~0fI8;`Z5ATN^dqitG@s>_mQ@Yt}n=w9?% ztRE94aYZ&>2lhrS>anR8+o|rbU0%LrHNLxezEtu2GDjXB+I$Y$owf86=b`4i`pnE-um6YU`@IJ zdmcD-``UGNe6w6}$zh-CG`=XG^ja6zt{1FyzWQXRv>;SAky#ywo~Numi%Iq?Hu|7c zuc?dn!k9b0Rhu>9zF`t){MZ?7p>K5Wy$Zx5u?tD8V2m;1_>bYn1B8xLnGXBJp3_y% znFrJC;GoBt@PvC0xFg_6sG@*1(ng+-*gn-m=&G|)H+K0}r84t7A+q4<)NbwM!xaH^ zjInSU2QW*{_+B2@!CzVK!7j@)LsSXpMdOZVr$I~_iT~;ij=GfHSl~-=r?v!yY9xtt z1h@u^orJM3U)EzV*E-HKp4NaH*w&-xBw?c>qvScpiOiyg(M%onB3q9qH>e9}C5e%g zPz|vgrVhXfH(}bRHRy~Tw<=sLfX_VrZTK_XO@k^ zi-ps>JGp(H!ohqF3(=>1XyMwo5wI#J9$SgQW;f?TtMOn+x`-^%X0iOVVE)tEF`cHZ zrCQ!ctZLg#gK?@*D1+$cz6x?3p+CUQuo++8#c#C1TETX$62Zd6Owu1PLwh41Rg;kt&G@Ba!PII=}C#AOB z*6KTWsT)W>kt2%o^(#>2Ur3$tF&v^k4-cPVCxnvX2#a+m>9*-X=V?c%?*>(Mp+%L( zkd!0HQ?L8N;GZJIlp3O8@-k;T(q0zGu@Zi3-dIV+e0FBXdXjpG+?Zl_-w7v}>jvDw zYBkQkWSic_QMha?2xIjvo#&2F(pdUNr0NJbQDH!BUD>2hf?49Cf2=)47(SVhhwN1b z-GySItGNRgICk44fJ$`Ly^P&NoLWGvk%W|t3uLofsJq0kywG^7?VdnU_K`(-tJ;|E zS?KVHI9e|eHvxgjH?&rFAOMk*H=19CJ^rRWZ+u6R?Ng!Ai5Dq|43h#i=$A=7BSg$$hrs^nTPBh zzhiric9yt>>k|AH4kvRxAgDmF60%%j_fUWLDH)N_d$2$`yc%Qpd^Rgs(A@{3!=JQx z`X;`a)U1gzP{(J-t08>Gb(&KGibbfy3xdoZEO|{flEG zb7r%r#Xi9XYBgjvV099%(!`x|l|&A`UCzAgNK-)GNa@rG8`TN5+CBC$5Bc=_%x^}f zkOLw3f?jwm9KM8_)Qjyc+(nA>HiFSK`CK$`__CW*gA4*?VzUiG!SUEnEX!E)>>^*O z^FPF-IW6>~cWgK?Nj5CpG25A5y6r8JNVDETr-n7JoS9-BXrGj2P zXOE~)@9lT%_))N=!2XEc^(z>0P$CyOYsxky!@ELJg{ofY0(mR3dCfBP*%Y_nuO3oU zG?zWvv{}g~x`)FLg*1D%t5{JBmPZ>zQ>Bv}5lMP5h7G*3qzZ#h^BXLb4z;cs=y->k z8U;!6;O!WvErWHTgX|y%-~&P3{)ZrCie&tHI(p~JKppU+RLnlL-4e(5vf+#sjEP}W-WW1qRow6(5tg)DA zyp+#Dk#tX~jBWKDd}@29o-p4DGVuX#UAXu|UZu(`VHV++KmP{v0bH&u`tn9eRWIxq z35N4TKYsJc+;Asdx?R+v-$AMYihunqpm#}jwFZC8Y_$FK|C?WN`iX`^XtNd$;?ppz zJ63t?8kk>rFLlD*OtVDyOT|82`;MD(3G=JV*DfL==$a4XRF>uie`vY1CA|n| zVgE$*5cmq_QK*OL=Z|A|&s|>KY&5suDf}9VF@cPEZprf9m-z^I7&u6+l{u8l@_Zlu z`A;2EqDzFI0}BKchW=makpHq z4Za?$8$U_eYuVY^y8fSysgH878&2Xjnc%?sM|6m8W;8Qe#(Z!qwJVtQy)f&+{+ac!wSQ~bUaO>zf|QOBdmi>_w3`QKi02#c&I2gp(P_TWLQy6 zuR9n5uq*C7$y%r4e5Gx;X*`mt zyoHW8s(!)bX1)0(-HR77_wSibe`@YAv}YZR=TA^q_TOi_Up+#VVxf(sLjtc6j#Z2Z zC&WlL*GL+w2WjxDrl4B#{k@EN>~ff2-@Tp&f&J479cTiDLNdlA0kxKj(p@sAhQmcm zBaRTC)+7~7RmHx~wvC)W!7DVZIb_~~#uQq_Zs6Rrd0sVZbA&vaa+^$eKrh;eBb z!%wJ$k97`MYKfFa$QK6##QQ23w&=tr#XpuI(KYhS`zjDHOVJvyuOlxxWPM0MZMcQy zU&=i&HM-fPPT6|wR*gkl&U;EcUPi6{(S;H1DRJiHI!i4qL`+cKxp%wYoEZ6?udqNj zsD%avN>eQWb5o_#wsWcSJPk`HuQ7(cP4vLt4!>7Mfj71-?k*Qyu~Zv=;`EH1U`KaX+bFmb;|+Y&UQdK}UOlsLvKP|}d6hPK~6Pn-oifm9Ev zh8*UK#56&Pq{Z9;c2;lIS6@!P2(9E?E%+ZE7$UIUd@8V+Hq}j%bl3&HE<5+W-q}hv}~oE&Kbg2N&&iD)By7jL%v`)JvP7 z7e{$q-Pc2AYWT-$225l#6h|$>q)AXxg*TLQR6-og5*~57P?6%Ljen2pg-oZde~)+3 z1{Pna%Yaj7d&KxjW!;SFNzLe%XUwypMvu{4spPOK4q`>(fJnz=)(za@ti9^+FG1UP zs>mQenVLS)h*%eZiNIcY6{a29X7B*V-G$tgYf38zDy#*lUJWiG3!R~@nI@bR&-yS1 zE*FEY)y;$^TuYe&8nO+VII!<5I1@b~3i9IjZ<(!8ay*TJXT*(J9~NSq^ZAq-LP-Kv zhBPFg+KTgExc6FP1fDi{&u;=&B@-!w+=tDB^ITp0V#m_Aj}BX1T z3;_=XS)l`aK@#bcp$-BMc!~CEZP#>1pz$YrZv==ZihP#1c&mAcZduBssfTi7r4%+u zaDz^OnO|&Jcol@^f_Mpbx*Q&RM;8Z7`5{t;P83BHDgd$v`X8nTaGfr}v{s!_T*Tv! zvBM|083K;%-KqwAz@!%IfD+{&ZeSM}lA{LM<6qePD<*`(a_`Th{Wg}a5hfR8-Z**! z28l(jNE}5TJrN&MxNlw8mC2gNxMTiR)p(PT5w=Lszr#2t(Q+)JnbAp@aXm*p-Y#kK z1sLmf%93N+(Kp9!SJNkhB@G!RL*oLa(Q$*3_)H`fl|anJYY4p9MSrOfOLhm4?N-hi z7b(imn#hAHQNEH{65lGZM0b&p3KUyHl!@hK)XOiZT`DJu`G^UxH;>~I9r5S-XR;<2EG_t*tgs%FLN~9C z?8bI}Qs_%~o=PM?Bl>t1rWgKxLj3JT{O%LaPMuK;suJHIF-}|_>JzUCLP5odQDno~`k?mG;1U zRG#Up@0pR$uMkM`rC9a;fcdEvY4!pM{_7DR$mz#!8h+Ldk@Ut zYovppF!35@rbGXn2JdyKO6wNiQvzRndXaIr7yvA(B0n?^t->eCPnCRQHN5aN&iW?$ z?g*c~!(l)z%AcQKFTae_DZ*b2Q2J;x;{n|=XD#9@T}m%`d{FuzH7??y(e$iI^_7%6 zp2%Q~2&~@^i&%7}6Ys6amg^JrP`2`xWhRR}IKIBcdkaai&fi&#;2lto-$Hn|g(v3F z#l>Tr>Kt(Tsae3cLZZt4)?lvj56-n1wsACbAMPscm3@EAu}S<^U@N{DmT$Ic{AQ-j zTpru?zQf4aOaOkDK4Zmxr=Cjd%WvzOkqYK}$0@(np0fCJ?S|cf$D}X1lKuFi^eR4; z7Nj{nru&|lVqNIB98ow>Xcgc$XK?42Y~{B=fH%)Yw!4q_*6GS6iz8#pUYL7bAUj0) zusYsNQUa*k9u+|RMBgoqxrMf6UZAceb7Q_TAhDK$_LpNW6lh&55SX?}G)O`4&vtEc z1`aF`R!BffYFzXE(rFQ&iE=&fUK86IC3`fB<9q6h3wY$7Ak9qsZv)Ot%KA$@EEZj^@*~VUe%e^!kc>*@N`Nk2i(}utKW2Cc?<4 zbtBsqBo0Y3*WzXzTSC8|%HBR8(KWPBPc_YFFwRgim}A56SnDYm%ykw0ZSXK;-Su2F^4^EbSWP!sImJe*p3AlE{i8!79R5oR88F-;78jC<)6% zb|bPA-3(46;tS`9C=8f(MeCIK!j>I43j&vtFC_IZtXe*!}qK4T;<@}^*z$eBu>W&Lb#*jmD6=Z&R ztP?cl0nL7bK$!Osh7CovlFti%W$6NB47}t23@7J|8D~>CJDe9SoaxU7Z41LnHpciM z8*KtP)hY@5Y6-%B|JqxeUkGh+a9Rd-Mb>2L!otH5IZ!(4s0-Th9~;_1t@}%pd%w(0 zHuU%VdnK%5Sw2G_SH3O7fAq`mg+5;{{=ZB2-by?8I}8xe0os3c>1O}$MwC07+8Wxq zSQI;< z*OWw=2u!IteTG&?zz*WNw-qeXAzR7SayjUV!rfv+-i_FL=2IlQKz(-f$hW!NJ-^Jm z-(j~9B&*$g#`+KgE>ZFRUdivzZf~~T<>4HJe}+S>!k%4mvc9C6QPvh+a`7)rc8%ps z8-4-$GD7}?j2dm?ciDvEsdzIGYGwwlfC}@ANRQTYEN%mBxN8 zqy7^{2aF|m-mHvTw&De^NH}w+L9K-<#Ru6$WQN0405YZ)BIV#8&%LQ>`Csr#3iljH zQ2tb@ZmAi4E01&H5ZgYbTN>yM_bRabti_OR&7AvC5XzQ>EFKAv7K@jqW$o@p~5Z9^La0nvm{yOTxZtH>lu*s!{-9u)YHS`;@U8>BQ zbv;6VKZ~xhTVOV8)YP}W2`$m~-DRsug)oWyw3?MU z%uEV?CRLjvxnaN5N1An;&KAmtklg^T5&DZv?B~-L>LaB!37Ijh35hYosF>;SfE);%MWI-J3 zI@pr$hFVS{R+YpmDmQ~nSg#_8X*R*3`45+B2?AxDFHox;^?SG_mzWbAR$P;sPe1P^ ztc5@mDVa7}btbU)xQ`)FQL{9dIJ1spA*?JD>@J_(@@xb0sw1PpZfuXOf zz7CXvZeB<)Th*;{-9Wm|?*FgS&N{5hrR&3+l193uyJ6FvBGM(@-6Q`X{5g7xl#!@WF?B}z(H~Az~-Dk zTm7V9Fvpf$19YSL_$Tpd4~u4d4VIzNrySE&rez)G1Fp$%k_I52*Zvx?oEBry={JjQ zSt~`QZ*9wADbL%oBr%0i8FbmRI?m2S-33WZGh7)^*!M>RjJVix-& zj`@$gG;U9Ivsp)62%2M;;Av-Mkgf9_7e=)OI%zEr0$0;eQI5Qf0t)ZXnI^?^r7NF) zu1|Lm8_{mio!`sFmzA5rVZ`RUK7*XLHo|$w)nEHzu{$z>Y(;SheQ_&;L!LS#U4LW^ zN^gT(<4D&-1jZ@a0C~i!5BgJqV|mi21GmY;joO{5!PLvXl48y%-gXw_(HvfCi8*9wbO!s%Bb&w`9DQlS$MZ#nhE-Wd3IacMUTM9#MoDeG zeu&tHgjx4#Yhg#qqz=k zojv_Ba;AHCS|N}{X$%ULxK_bklsE_DdMD?6l86$`3L4JBGgjnyCI?EE5%hO_o4Kf^ ziEodBGjAwfZRNvQaAXNi^(p08(LEZvN8`VFJ4t#xmO0IXZn+)z zHHHhwK)2B88_o5rwyP3vG=9bMf1V_}((sjfg~wMlwzk3V76Z3M8dsj1P#r-uvZj#a z{Nf}EHoQ(0wJxX4)+0}H^LGJvU|;U8M-z0wc@D z$?(G28&52e27Zb!Jz2M5!L7k4#CSnVmOo7zuK@y%Phq6Coi#Sax?fqy~}a$xx(F`u)|eUE95fS~IJfGUqe06(g+A-cSPPldDO@AsVxAUh z3!0#X>_Xm#a*A6Hx5m*7r8zY|ACXNjT2)Zz-g|>U^w5&nM!`hZN?Zgs0-Y}9;*niM zxoPUVX}6l9Yfs(A*dL){(26!lHf2-0dk}QreiHSnI{+_5?$CQUuQBVz%VOIvLue=0 zqUC}F6+R|$rSn4fFSHN0I2p#4GhvkZ6Fu(s5++qMT5q&27M6dP->pHoU~DOKN5m;{ z_n6UeHU+wN-1v@(9%rdL70_Noqd@4--9!@iY4#MigT{!buketiyU@s;Bjdeb%LKUBOQkP8N%x?AQ=Pk~+DoFs zqctY@qo}fw|3PHWD9%L->EAekrxA=B#Fw@8Z zse@o&QjE9j8v)|-L<+2!$vCWIn9uD5shl^4-&ytxXqcUG4z`R2JAJ*zR~Bw6nuaGw zZpwguTVLzbTZ(of9D$0nhp+8saL0Yti17pUnurdL zzd;9VRYM0n?m?lTuoi)T8$OVa5M%O`DZ)fTm5-Ng;K6KnTjc2p8J_YT3N!{oU8qJq z#g*EdTYc7gR4HkFyZEE?CurZINp4qTPS8-;N=y=mxNXW@>z5$so?@Gj>#%a8O_j$o zzdx%p)#B=mJkty#%wrdxpaAnQ+i)(JPuuY zoM04h{o;Lt-w^I#9y3C3^fo96p-JCglDuSl&B(W&ChWT`$%~}fP3RkfL^us=Jk79A zfg7PedP^w{qkX-EyH?iq-44!xexv-0~_6FAv3~N)$W7?qUDBb zXYt-E{Wbw!e3vBRmP(ZI#?|HPFf<}5QGk^3E!WRc6oQdK)%hJ0iNst8ekunGiz~=M zWeH+9#y3b3Zys!RSL$qkoK+e8sxs)sQ__f+mQ6u{xsUYaSd8y}XeWJ`av6M)KnKM& zhWbv5H)xShkdP%NKP2WM&et)$%inzqeE?6tIbABecDL=$vHu-UF+}ec=sqOPJMHn% z19bE2g+(#0p2q9nXR!*ac6fQVl(SEl3p}>qKfBGu8ZIZk-_#&*OEh^aZJz)aYLKO<4qew#*o!c`J-1eU-?f6DHhk(jf`#ah8DVBBCptlJJtFN z%S8qHXVY~1Lir?yxv#BHqI<^RFU-K@MBgT*5+@Cl!CSH^(1e{*KX6mGj{|TD6>~#_XXx_v4lHSfNPJF zoYmZ2i}@K?Cw%nOM8ppRbokNM*%=+@f`sMQWs`O3m=-4i@<(7_FNB^L^?Pt2hO zo)^{5QfEm#s|m6cZ7G!|pR19+t%5k&+v-Y*nCw6qe21RCcg|PH*`2<>S2L4clLe$u zn{vBEN-xc9F5Kbh=CaPM33ofp5NhC76%Pap9-6KsRknaIX&7#+eej#66W#zP)X2F= zrGs?ur=a{b{5=Y!#L4;(b#kH7*$j54QS13^?F8U~grE`QrOv>vLJy~Wl|CosMSZG# z#$)!kPqKG0_Jv?+NS!x5=m<=d*yEMh**sfQOx?x%@dMMrATCNYE{Ty5QC|^SKT-^d z4g?ew)^Kui)HjMRk={L^o^Gf4ew11~S*zN~M%*=V9b+W|yx$4C<`(4>-|hfNqzo-$ zsj}XPaEG;Ozi1eyG8f)A1KYD*im+#CVvB6kT{=L1el&DLMM-5{O=T@X>SS^&0r9l= z3;aD^axMH53BgmTf}sb)P^m)e58&o<{8@+&RpFjq^LG@~SQ^}3%()+v#~>h9dxL25 z`8VhXxzJUPD%Z@(eH${3awr~|prdP^h(uTKE)=*xhkCRgg%9*AexM=e5edHGMAPq^ zj(^+~%Hf>?OG_v%eTV{;qKg}Za#P<*X23B zx7IF`^CoH?zmsK_Al;2Vw8__sy*WGw?H20Xv546Qwd}VPKOaY?dO>N=6Hp)8FHeB8 z(|Gp|jFFYw(qs4B$dW1pIHYVSn(>P8A8fLQt%Q(`2bl$}8c4aei7vkW%-_0LxlN7H zS8>?N12}Nrn?=q`0UzWbW-&qkHOd+=AN^laCfuwCwX$wC*P1L$|Uacoe*tnIxeQ_kB@VRZhZP)T6ifdgBIqbgeWYI-dNa7y-D z)5(uuiNy!`0z9Y2cz!oW<`b0tSmy_XXNFhiA_s2f%dK(MNpF?BmmiS~Vk`;}XU%i| zRA8VVk1EjGy>U#q;hC`c^!<0jvJqX*dS;%)Nxt~GTAT0hU`!SozZ|?~VZrhG4zDB& zk5G+-d_N8o1X85EZ1?RCcEi9w*$wm2ST!N+!5OEBSz->v5XbCLms><8?a*w%TIWSu zVV5zLOM<|9lXm(LyhuAI#_pgT*904t2uHPO*X$rsR{SZXe5#H@0X+|=U!C;rD(-!W&mqc1 zrD%Dj0c&;8)%`W$Ew~3}=@ z*rzwv-MdV%O(SdAIzuUNBXQhaLTs%kb*xc4)>Q^tdbBLRjP^Ju-%jIbg-U2aMrXymK0v_D zaB(+EgYb~VWwzL6i90AohrjJ5Q4~LTg`52?>)2uplCa-a$wSoTq!bsoMx?Hz5idO< z^?dw+d!Jam9zl=nH(0H^@-@;=Nf>ZzO+3s>)Gpbh*Lzhs4Eipl*O{s_Tu##(VzgV7 zy^<^|ms_fC^FCy~>KXLP5^dihk-2h@-nxERUsfutr5n$N$0znE)(w*qsu$t@>n3z18p|QxxYcRp^rI(H4sO>{03Jn zWBL-WP|)KLb1n4TLaWr=JG#$_x{!bY)%`eKU#r+ewr1URtc!To!(Y2r&QQK6HEdM( zv0Ik&+?|XSM4N=R*WO<5ELU+}B^96;VgPr3wrEy*k&tF+r07qZsM(Fma=gH1bg|Yh z^0I=#0&(QOp?6*pZ;oW4%Ib^I&|bv{v%^nunO=F4oj#b2p)Ac^XJR$PoejS5xCd2WlPZG$=;-OK1I_k`=FotFoR{=w zH%6_;z+0Pj_X3v6qlf||rtitVEx?Xe^Ec}>CBV1N9VBpnQrt)$GtjPN+AQgnXQq9q z4VIr9W0R~dAy^T{ikCe(l$nUs9M^Uf7T&aaQFu*Rf;EC=^JaV=t0B$=)QhqEh6U5z znZi-N+(zU$Mf+2`=vbVb7 zl5|iXFvp}dUZUH-sk=PFz}Q+=!^}J_@7aiHdK_M(owd|2FrD!9lgg`mM6tfj;}x}$ zb)_Fn^yEH!-wGSV8&S}w++Z3IGqf@>v4eq@&kx_=GJb=nlWPBJT>$1`89|fk^an8K zTnNT%sj^8;-mRK9%p3PdLoDI-AFJ;qpf3_~DRtXQC^-g(a7awH+uJYj+=s*1KgwNY zE_xZw%iVxd)Y6ryYcagC=huPduSQa;F%*YOXIV93NNzl=|LT)kB_n9!quex@A-}XX zosHi2;|DBz0-M4RJu#deb3Q956XW+Kafrxm{AhON$0XX`n0}RrsAmImBm)Ljp0QbZH-T zgEP@r7Kn(cY2yfKi(ox(y~Yb3&CIPt(ov*vjauY8z;9wHu#Y$*0OK7B%HRgSwJR{c zEj{6>etQ;YuP}ED@z?|0mNVG72m|dGFetpMG>-#T1>1;MFt0rLKqT(xt&16{C=jW< zOJI=~J1BrmdSo2>nWF)LY*_>IjmNG{sQOC>0-yV*6_kgxx&`kD6{8abIM&t1Kc1Qj zVZBsL3L$ykqSEu!_H_0o(I9?u)2a}Z79J&4dZ{3+jc>AVpL@qA)-zuOoyOC_YOgEf>kE@b zNz>GoqKbks1LwqvmzHMiN40Ptc%{f&!kmp+UE|h~2eTP7S%cpN6bKTeEY&)-FlXlhSG6R)^0fk5<5k%UgMyWg9x3$k;L7TO4zclq@HaUG?aW z(MJq#8SzE6-n+Y#1HB20T&(e*$VBy1JP%IFg1AL!%|3cYINZaj+zV=J$C(uJ*~N-V zqA*yae67%r@{In=!5ZSOS;Hrd0=a@V(RgoHf9rT}JF?v`0WW#3QOptfgN~9%6OQ*m zB}hjKq(Mi^+}&dM3uOLI+j{iAVy);RjEtXYmrMo82fM?GJd(xc5)Su#5QA%V58+jG zpBE$U6d&a+W-dup)SljJ*P>XYRbdT{Uo6sZqUCoEI#v0QS>(y>x0Up4@^gnyMV1-K zLq9|EHR%JYqkN6;tJwq7`UMjb-?+*8;up7I;{5K#c?7%$5ip<%-J|x*g|(nT6ws%m zTuMQHMQt^EFh9oQ4KD*5KnEYf$F_d$7T^3J9#U{TX#fm-D%k=;SG59LG-xD@A1OhX z{3TAHP_VRf6b!pY?5vJpcK{oFhdo(8)I8`(009~uk&gMN9fM&giSV6Z#(B|~MC;&h_F^50(*uz*(c$&P8+3=*crMS>dpbsl@R!<)r#s3| zz3E$p_vdkp-s9rQIX(}X7IzvdS%%+e8X`?4>+z6lq7dsE#nixGK6Pq*v?P{S+Yx|> zCif&@nU}3MK$@p&il^`!y zoC!wF_XpqeK3IT`iA0xp9ZH#%VJ1)iiYLbZ^&Lmo@R1SFZ7h59|im&30e92Yep0-NSKjerPy{zyIhH^JSb7SY|5=?$4^W9pr+^=B|I4 zcXFDm951gV)%J5o+G`-4LeI1RFcFZ9G3i|2ab#zEI`6I*)|348v$`F83y1*fMaRpo zH%i9r1e_MP_~I%&cAJKKZPW`>6KR>VQo|WvIlPg1A94RqZqqTWFZ(xIMnALh(_?XU znIhb-I&v0FUh<@Y7-~ydh1aeOZ4%z|yIvXA>4k(6u7n>!YK|qXf29V;AL4kt1A#!I zP?vSz6(t4MNdHe#y_jmG4mSLt1Wx(RfWr}KbUL;dtqO5!$@4LGD@)wTJG zhIGxmGfs{(JMY6*pQo7F^_Mi947lJ7Mc`i3?yTu=i$Iz!$+s4U<*-^caZ3S*X%diQn zM^RC{2{VEGnN;)JQlD4KgFAmY^$yqAy*xmb9^j)S3j>P{LO?(O{w)T4eiZiKbu<^V zdoEY=>EFI?=PwkS!P#FB9<8R>q5uO%-#a34qoK!zT}h0OSPLo^&%%}xgM-^xszG2p z2qV&oC`K1~?x(C=sL+cyf73sAVt8{P>el^61kQz?J|27RF-32SY=X%e_vlshITy5| zgQrf7y5-NzbewCAb(n}1m>OpWCciz(du(syRXZU%=F_q^jP{ zvfQioJ;TzEsHBQy^x}nZy}Cg{k`JlPpiEStu-*j7TcJ;Ub--tl%-4;o?6FAHH4}?Q z28YXhK`Z%!yK{sQt|It!zzrV$8Op-oZ3+EbMm5(9bi#;tbI@M62X|x`8_Xl0%}&%% z(Tkse9%H`Lz4?B(Bi*db+^y_g%$yw@uhyS3e?nw4ILC+RU03C5V7@|+&f;`pwPM4- z#2^behEndSP{Y6u!jFy6lrWAR8;uE6T~Wu?Og&<2&E+tmy*0xrsiirvHQVCl{`NWi zHO$DmSV12s+PD#2VQ@P&ynFW~2VMjYJN$t$jJ+$`diWgzJVUfDqSFvedF*vH-L6T; z1+I_xGbJX9`6IEYBad#I(=)cy%j6v)dt3g169T3*B4tom5Yk_dm+XV({#jIvJsCG<>f8whI| zK65kmsXBC%OUbxYej}W=xD-~~1F0Mx@eI?02W7F9{h%`RFK-*{?WR|+nJQ0uei0P1 zM(pMxa@ZmsTaJ+-;fi?%Jwox0^~{%wN~43c06!vxzHCz9{N0`f9Ldzd{c3I`dPNwU z!GEX_&SRD!ba#XezvpZ6ghwWK>1t#KG%5kFB4132&4_b~^9+~9HGIvea;oNu_-Zqm zG=9e=i5=!c*en7L*Tw1&L2u9oAMc%hN!WyKlXDa&Sq^+L*B)~-Jv=Z_ncY&Kog`A0 zS5RRhu_*D?=iY)`XC@??wD|>HZ!>Vekp)u?yVt0F@MAv9a_U_ALqNuy&=FDj z*30k|F>(6`WwqwN8dWl_;Io1;JUnG+jnZCTXG-RU+(JrHP+;THnYQb7PwW4v!nfydUKz6lr4Ymc2Wg8E@A1`)HY6arCxoL#u#b zWhJZq-brAcfsQF9+ps${@>lgC(eG4MF;T;t%un#Rtz!0U8f7x$0(!*{p5Gf2wRy;A z$;>HwcdLEF&)IjsG=EBB?(t@QXsDV~Tga~D@ zvk!CG;JKziFiQv24-vYDgiZ){NV2(E5J#$}#3e|z~u*S7Qp zP?WC)%YT;kvvXaD^RwIt<{239FLg_*cs7hW+QDLDkvtct_e6e)5OtXFrHx6-CgG@i z&Udb=*PeDlHO=+!Y&jhQFwQ;$4`7!{qZd?D!YT} z)0yK3Le-?Y-=7vi4|5S|mD)mrAEB&Z2bVUX_(^0W4>mCkC*6WX3GAas^R}93 z@1!h5>_6n7Gx)XZJKa3VQ!vAHyi*7T|7hm8#=^TYqH$ez#kJ&{)K^Adc<@4#l;9UR z$4sM%9)kM*uKsI$Szw zlKj&==Ir3$V&G_GVq;`+#gzcnzgEj;05JtF7^54<8sBSwaTpN^^;dix7>T}w1_Thm zEgqLdf|%z(&SrNVT%AqK{v|;d3K|;(8CC)c{Z$Zv${>rWnYodx?YYoVNfz?!^kAPt zE#Nz@zy}@T>t_+`-(Lq3hpo)b?z*VmfdfG)X&+!-tmcgRcPlU;s(F8|8e1!S8&e|} zqaQz67wh@D7F2lze1jPn?069MFaoadcXR$%kDY_5tF75DwTc3wHfNx*|F5?HdW?aQ zy{WT^66gjHhz+9R{$Hw??SBjiC%UKxQ2YN>Wq`oQ0Q&rE`&mpJ z>>M5Lo*M!e0j+W2tRw&gxMc=(mQVhpl>Zih&EUVNUp9vsg2o5?8|JXMTK&9dLQTGn zBU}f8U?@Q#E(k`>?=sj7T&*s(rzD&(2?3~89{wT=3vi5I?w&Jy!2iZN>zTg?*x9u| zKT0UDeeydj79&>|2XiZ1+n2KO;>TF~I3}s*}pId5O9099pJG)XqA0_~c^s}YakD^2N2Rt@|bM#9Mwu@=a z76B|y1qK{s11PEgpaI}tZorwve=B~rFY%)+04LzTmsiGMRZ3@P~rfmh#iI7kS`74?8Fcv z2PUKU03LGQy>D_=JHfw(J}|WwlKbZk0ba9kPL4|(a=s%3AQZ{S zyHZ0O9sW8P`MINOAgmP=5Q0D=LLks>2;%jJe?$bXC;bomQiJbwhUUHjelAFXpDajx z(bGS|1D7EE0{*<-kdA-Y^(S~1R~M^G)`H$v9LYUEOj3z(aed!Y@zl^Q zAPVXPq991W4Y@Lm&ERkDrMw+Ip~g?Cju!M}z+FEQi}nGWG^qU{|_ zFWHVi{{k(@1!4DAJYVa$ZhIkG1vtP2}IV%KtoO zJb!^Dq}xni8TOOg>@V7R{u&=h^d4|T_*)yR|FiQa_hnv0pO+YN0cw@>o%XXkgD#qSK8q9*zFc}`Q-Ah|)D5U8l(c#gdOn#E5_ya+m<;RiYO#a;>Y4>^+; zk>_oLJl)!C{!QD?CG!1zWS&nvgFIX^Z21G;&(jDmGZ-@3?4Y-)?b`f3BsWGXsb|Ez~Tca zU26+PLc!Kj#C2CV+y|OJ-HF&DIPZNF#sXT6m(OqQZ;5Yj$Pz*T3g`ceTn#%dE`1M%t1L z4vidLo|*Ao_YDXCr45Y5FV>pwyE(sg*Z!8AJsqc&YusNdc=vziRBbEt%}svsYgKSs z%etT)Ui^@imsVu>*zVKs4XmDfIWi=NmdAMf!2_yXFL1@;+R_Kv!rpGZRsH0ukGEaO zWkUBxxH6#3-RY)D2CS?Weow8;9HlH;ER7QKAwIDgQ8gh+WWxAp(Zr~fbwAdye41|h zFum=46bi;&-`jVX*IDm1GHzY8zjZ9Yd%67`#en{e<}gm^F1rr7<&(&QpwOA+q3qv7 zDxccWEbK}sU7`-F%+EuYJ<6je5o*2CKe_T8xDI~(Ci5ohbXB8nVP^% za6*t!Ui~UH&6dNGFZFbk>yGKVW|Kc_4y?-(ca80*L+%hRlf=m4M8x!QwW472#>u9V z=}Q}z`3}p)^Ix=IoUO*>mYqyty$ws9k1Lm{O)n1dVq%I{Y0JXq#fzuZ>x|JGT)fg^ zOmg-sC3g`lcOkB1M=hIi5KCj?37&->#JJeJG0rI`utI$Tn^=y;xfjV}a|nI6Du52p zU@`6-+z9pN5F-;yAyF)`8)3uW<7D&3*(XiLf1`WAHMZrk1$0i6?(zO_QjH7VGl#l- z_!K|NoV$f7h3liT8_c1#{p~HElq(d?Ddt>q(Y5`1Tw4diT$j%k77WxCj#$lFG-zwWHS*q; zvm{_np)K@Hk4x2Wew~!GPWyRx%#4rCrT*jH?cLX(3{&@+xZH?1>zhICFaBrp#e%(G z|8TBGSa#Cf^I(R-B6oq*@sTv{W$Pc_w9LfB^v&T!=^UiNc+wrZ}PPX)_!GgYK zw?DVP-1;BIb8-@Uj%EBkGt)O^6vA=R&Fyq4O=&G4}HlzYT}j@etzMD!3_?>uPu6XvJX^Owe$?K z655@ISsbyepM6$?@e=<-jQ-p|4Z#CJXf$Z}A^b4t$9*9D&86jNT-xB{z%E#STK`4M zK9d<6&A8Pr&R4o}zf4Ms5;JD3S|(0SFH0`&c-sBc!a85@VS1mZbFb%rbq8lLvu@q8 zZ`>(`!g?*lW^{YUEfLgpMIKf^E4&yff#>or9PKh{dCs%`sLw1+aQpp~r1edV(8pKu zUAI81WzWuy9`paWq;=*}({e#&QT;*gnfGs>aY{HEp-6~ZbGVe_9CoTFYwP`!%4X%~ zzrK3O*q&S8Z}JCeuVC=2WnEc$ryiAVY%u+|4j3NywQOw}ybo=0hv%g2zKDtDLlLrA z39)UsjxZg(1IL*sZ9&OrC8@d`>rYELy@xL^IYYBajA;yh*!GYt`93;YDQ$Rg`jeUn zQ(s>BQ0c|8I(m#Db$PVMVg47U+2s1Y-t#v7aJ8t*y;}YvBJ!G|F)L-bZHCYwRX#wc zeY?gVYP)MavU^xGJnFOGqBW=S2t|Cr{JIrg=(2!uj+vmOeOFh-OjdSsfAXQ(ZJJ-? z7bL4{DQI_c&$?u3A9ZhY?COz3f#D^Ow1Fc((RD|T@J_ask8+-^d@Zj1to|$I*ec1Z zi`}lmt2BsvV!o|uY_T#K#2Yt0#8$)Zjj(Lqq-iTr9!F>F#7|5!dtw6jZiL%E+L=TA z*hmo+N37$wP#vp)B>Zq$952CXB{9fFxR6plB;HNXZrS1@i>2Yw@j{W1Sl6>r*s-EG zS$u4`h~P}|2M{HL;KYI7q>ip7Y;Mt+P8HTbrkh-92`|uh^5y761nwK8yx>1om#gJF zEDX3z)dh%8NX>%}L=}vBn8MTpu)yey z0b&eNiPHj}BGh1M0IaHi5Ll4aP$3q^oKEu3Jv0JcgGNE=8!)RGIEJ+Mq@rw_6QQvUkdsTya} zlsvGcfJ7w^gb1Xb5h7KO6j(;I0|h=4sjV}J$edu*94N5#Xb(4;-WmQ)?2X5TYB#|5 z&i|)8L9f~LV(Ece)x3dGL@FNsM=N@jc|#r~STeK|0yYt;$ArnIFpXGhK&8?NtQJ!9 z3^nM~Y`n0bXlDeB7E-Zq1jX1cEHr>p^*i|yc^?I>@<$WDP~pJnIz`HJHb96cfY;g~ zZXycN-PPl`gPpG(b;hA(At5A7JX z)Ui*L-YH#d(kzjED2`pRUY9oI!t;CW&mn; zC#{#dSAd0Ag#l$TgsfK@;nfoIv^#d(&e;)V=i%Uuadq&gu2%5hat;4QfgSfi6N+fh zVIODjU*9r+E?NX3lf84FTsG}eUQNPT8@PeIIM;2t?$1rG5jE^IA`6*F^fTMoG z)=E=P=x3VyWt8_-2-WT8T1vMzK1yaAkShPW=}J=)3k>T@UB(KOQs5}8D@nfSr^UMT z2oA}wxm7oo|e=bQEzB;+OqdY zT~dQ;glu|B#*|;4JOBM8{^kjqC% zYjw%==(F*OqS>}jZCrFcNK4xM@eDK0QpJe6I0n*Fws zRIuRFA8+2_gV=3P(SaLM?6l_XUZ7P1>ppc97ZO2UNQ2l0!$x(EvlTthVRgbRNeBID z4Ou@mx7I^M5E+P15VvXr?lzAX9;|^Xs3sBT*u5cP&zhSS5*8Q55_s?ZwIxf-%Z zP5G;Vaf@uWetgybt@C;>8uj2d0=jJj=o+2WAk$Cy{xq6a*%(GlgFi^mON<2vB=*V0o-@^Aj59aW~@$34Pul%{g~!yST7U zVFK+93Sq|j+85)8FWNjfXm&%Z?cr?RobUecO=fNP-BrxIIf~7sy5yjJrGpG#!%A4D zjT1 zt@KUuM5x2i?3b5);&jE&JZ=RBY3(_Di)Hdp{Isv;F>67g2zt5{);|t7qt)DkaoyZ6 zUZ#{~q>v|de(#dFfpxH!3Hc!hNE8>_tG_)i)JxLL2?Ya>5PnDvTkRz71EVL&>YBr9mTRTR3}f()H?5O>Z@B8S&EY$~fEa z9W4m8j&v{dVR6AGH#eIT@TVzB)`DW!qXG@T_A%Ogzj{dm6{><(-`n!>Y{X(v$yAe% zn5wfmN3q#?;>sB4SIy*)3^DOas`ka63%O{Iy%=%R2bt+U>BdP{(NM0_u zD3AK6ro=H9(Vzs|*HG*EpPodu*N)nlSjR4(Lw|jI&jc>uwH;l$RN3 zsfV3AbzMbLjRP0@|HvdA4UDbX3_)-g!Jq>{Y8yXuv`dHwBT@!LlT4lNY@6BFqRX^j?qG{Nds{iPr0*F^ zEo(8UtZdIj-_+aI<(d19%B^B+?w%QKQ_XNPKcW?0ie#&OH;k;O@ zJ!w)T?Ne{r+9bR0T#Uf6xd^T;>8?opxP5HT=lu~32IJoqtKWHbhUIk41koZh4aQ0% zj+D}1?`VD-$myM7>d^I{zSUQnt0Zy_ect8v2ofcaK382ax&1Gl#$972@2-UHiu0rA z-gx85A^e7S-~&2XRCkOghHL(o40*)KL&6HL1@3D<-&yI%|>0E*g$j9hZEn5q1JMeW<4*S~`!J!$)}ZihfFnmt;m%dZf5)yhEWBmxB@8 zAo9SOw9_FULU}Sa4dNc##4VoYFH4o7nhDZ6=mF>tDLoJBwIdUKp5M{8$+KTQrZ0^u}TPY(?YE%S;G5i=hUYRmj6dymfa z0X}9AglF9NRsZ7Dk14~d{=R6s`IA*amawhk8a(Ee`A5F8wPx5Bjo%M-5qNmVd-t9j zYF#HCzdNyNc0?B@zL zZkulp>^vVK877h&-S)b7*oCdpGwup+2;SffEQUT?WOJ^RXt;#pA35h|X@_!Rby6VD z5{!@e=zfiv-szZNw6_vIaeyyyhldq@YF>%Cw}(zh5E|R1J<_ie3#p)@OE3-K?ef=G=)2@@z^^Sw0jjP98wB1i zyIHBhlKUYRFG0<3dzr7q4D0mWVaW!vi%b(j?j)Esz*`aK z3dd`RpX320JzW}R?oa8jn`*J#_EGz?stQ9&RISb5Vxptt4MX*^$%2=yQ zTI4)pnFbVN2C6LKQ)u<+ zPtwacIf(dv1kS|-dqx##m8&>85=1QLM%u%Jn<&g}`7%V9wa8(_mk-h&R!|LF;}S-W zCeD+zhmW8X=1F?jAqNo;*`z&G+)NEvQ#4p4=(%uno@c x1lz{-Pfp1ud2-jFtK~HZPU{4VAacFR>~5^b036N0PlCW-0kFe82R=?i^IxU9XH@_I literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-nativeMain-yJ1uLw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-nativeMain-yJ1uLw.klib new file mode 100644 index 0000000000000000000000000000000000000000..6fec6d67259a684100c97a00d9b72727577dcb1c GIT binary patch literal 5989 zcmbtY3p|tiAD+vMPMu1UBnP>4$Tle?m37soTDkluYIdVB8?#B}QW1Y=6l&G}MJbm$ zDnvO>a!<&mBONJ`TZM`vDxLnH&inRhy}Ph%=j*f2@Y(x3-{<%J{oeO^hR3O>YQfai z)nPCg26#cG4%2{9X+9(_gM)H&g~OEaJKt-n!0><{2Ixv<$H!WeX>Kb6EGDYiuOCPE5eQMnA-x0UK?&aFjZTkl~lH=ASY>n;Ao zH8xq+pte4=Xecmmh;PCzsa=8_gV#Osup$H*KhMzW^UZW6Xp|AqW9}6%jSS|T$We7r7-#aVUL2s-8@_mh$w1!NyV9%q8j~KJ%3N2=9Wj5i�gLqrzwx=y}5zoFfd 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-uikitMain-yJ1uLw.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-1.7.0-uikitMain-yJ1uLw.klib new file mode 100644 index 0000000000000000000000000000000000000000..edd7be8a4d834c476a3e2604a6b0496ebe8ab92b GIT binary patch literal 41274 zcmbrl1#l%vk}WD`W@ct)W@ct)madqYr4pB@#LNsOW@ct)EU{FoU(-8(-_F~ew%5IB zmYLV=rp1YK(%r+u-BL*w6buar3JMAc2uS$%`F{>5AZQ>na|>gDog1UN8aNQJlFl;< zD3FpY>+GKzhVo&iwpT( z5Lg-CM`b})+_xbOMA^#U*cGeEIX2x#De@`OJ z|7j$9M>Bw(`F|=E_N5DI;@qFC>2-_ z5c844So*^%fa#jV;S{x0YK4S7m7P6W2D40Gxw4~_bL4+$UlTt zpq*6d`z@;0Z?pOL!jk+?ayS{A+8SG$8yY*9xj0&zdHy}6nf{-KX8KPQ23rUF|9k}p zCP*fUCZ4@RFVQii%#6iUf~>_Le|W+GNf8XjZ(eABYA`haFW?NOj`mKDuI7J_ALn0! zU^4tC*uSGGOY~2gB8=REtwcRs=zq}d{u0GV@S7^$pVFoOD|2B0SpPl7?0*%7$q-=u zZ~1clUwqYT*--zWoc?maN&K5G;h$3G`-_udurhXXvo^IbH#al+ZQp-S0j2*XD3js8 z&f;IhF;}iv7+^vI=y5vN7ITy2finY4qLENpr4oTq*-&hy^p|9CB+F_0!e1~yD_Kn` zB{pZvY!j>xnij|w! z1k1ElhFwpur7n;tJamnUW812OFg9o-jv#Iak{uWb=%G2MUt1cxG|a^}OBa zbJJznvC(uU)3KF$-3@x1Tis^(3+UEo1oYYobw|?E4ZbLJ%PD0|E7VNCnYV(Lc>gOB z=T-cPNE3NFQ3t$YRGJI@Lb%nmK`=e1KAH5 zZIx9d&Fk-OMC^0jyyGG%4pRS91r zvigQU z+_cv;MBD)bFV`a!#nnk@UuffM;hs5@hAQ`a_d|eKZi``&+EE-rd5HwUWbL2J#{q%S zTwKGbTE0AgMfUYFRJR`Mfc?tk5*7lF57z8e%YX5#`;-@&_p86a1N8~%DOeeZ3aav2 zyI-BlYIfcM3etoM76p7REq?Ya=Q^c-d%?wd(v4U(1G9ymzQ<$UI8YyzahJ*MwqV`f zue3p5*`xDCY)QL+6+qXMYh9feJO>hwRR|SD(w#?ZY(D39D_)-w+@ybbgr2>d-eRMD zDroPdt#Z2x>hY=#!3F0(?G)Q=;H8Abb|4IGOdrFKH++CZ_&l)Mw)RNG?ZEj_5}okQ zE+4nSZ(SZAI_Sy7jC!!u(Yu-vI6BBAM(Gr}Kehrzab}8^@aSpRYf4Ixb&EA%$~s8l z1S9M#vc#XAg*vW{qyVa#8euN)*A<|d|EilxfLM1EO9 znaQFD%%WOw5ze0g%%Qv8hfRN{Y#!L4;PJuS)j)?^GU^4dy5xrNp-hQJ*98PYASjG@ zRdoaHOV?$yuJ|=A#v!Aggzr1GRE?GiG(<+9B5m;M7k*XaLh}zKOwusLLZiMW+`4hZ z3i`&v72=*II!fhNV+u`zBu0Aaei;(lI#7LvbY@%XmytTWXFJMS{e@l%Hdeynw%^&D$fe`<1@RMO9< zaiu2wQq43Fhm6%GYuWGO?Z?^Ln4dy23O@D$xwdLzrufDgOd?q1Rg`u_c4T%WvB(^v zJVG@=UC2yY)NdhqR!3FRhN>;1%SqBI%Vwh)k=-1!DE$W z09IVh0OkCZbq@8>VR3l1REWH+1a`q+VYbgSF5*)-s>--*rkgxjj91;ncpbe~X^rcK zW}uDPNO3>)*L{l2%fXrAAx$BYSY4*Sv=u(R-$*qwu@v@}ffxmiH+=ZZt2sLl&(Eu` zaa@e|3lNscV2;=t&_n1x2XU3T!I)wiVi}gu_-N(00k*SY1yFh|+XOVG#3%P}E5Ra?KVo@^XNmVf?9`8$A#2n_eJi>*}FYQ zc@p8p+iDWUOFGvyc|=tWfq@rb#`ak&6KqUD%Z+L&stjmS@jO!=sMJ zAXd5P6RJ)hP`249AhMu`4#B!$uchh)j66KcYx!8|tmzFNZFKX3dyH-~(kxzJy|bm!z5w@YrwRRB9tazDk3f{i(av3D*XQ=NLh%m`l`fXp zz%#(0|7Gu{-9*4*+|)=N4oC)*?Wy@$aG@!ne<3gHA-p$2*e%Hf>D*%a?Z5}j6lupp z!YF1IcAvGfElnF^S#D=gxVw{%&J7TSH-DvcvGkz`uSbr!;O_LaYgu3C(o&~}ieQ+g z#gXyn zvsrKm-}W+ikYR3K?y_HAM)7XT=rZV(Alqx$0Bg0fH8@QZ#nag-VvQDmvmb!(1S)k- z%kUi1Nt|>QqE*3YySp|jaf>%5afdfGO!Ot%{J{2&Nf9Jxlw$5J6QTC!9>CmF|H$xQ zt&iPL@~PU-3~=6bnm5;4B1kALZjrP$AT!(zM}$CGMS&;miDC@DHx^0?tw_w5>V&pu z9a@SSPr(;bmv$@H-v~8B!549>*Uub!f}E@93A`5;iisQ!#Yj;_3Wq8IRT%mh3LhF5 zDj&++Z_!^LnvP^3o8nLlF}wKgc2(AqA^;2*e9Ny@uv(Z63?}-M9iaf~3zp@hDq1bgh8h$7sg7^}{RPkR zV->CzXM=;u)?`N*fcAo8`KpRn%cJ4iWNWG;0>F47u>7+MQVX$Rd)S-z0>8?mVSC7% z^Mb$XxnX<6Tkrz33b8?8@Qvw$v?`%NVEB#e0<}u9L15^O?Si#xra@rjjqd`sim{=4 z@QvkywyL(Fd-#p#0=LSsfxyHs=FxuHLu<#}FX7Q|8Bt5n>}TX7)5S>Dw>kpjpDB;5 z%QMsW(Jh!_XDMW$CJ9?b130^PFLx900_H+_H96qxMPNw0X`5&o=<@g~+maRg89e z9fP_4a7Q)({6c0~y{b}srLM+Yf21Q90D2*@EMJwS-CE~hzBSyD1Ax3xSk|xV)PAnJ zHs2cQ`1T0&+r{7G(8QL>?;-^e>YhRu&qmG?HecpKMsPx22aV{mc!pOqrz|8)*3d`9 zMo5Yy3J^iQVjc&I6IlTb1SEp>XNmd$B0*&SZwVrM zd?!r55Ry1&)`~YccD2|YCI)RinwXNE-92ytZPlEe6h}dTjkWz5Cf5tqF(s^;`{t(3t?T>Pk@W>)4G-zGhV8`{i%NO( zbDXW7LfkCfTGyQ{A(cQW=%mR&k&>cFY?W9s@stN}UTQ{YY6BIU#~~vwtK^Jm?K(8X zU398Z=gHFRNCG6q*w3*y%}K$>Qcc(EKPq9^L#9?Ozccs4Kh55G|6VrjkuuMw*y5@f9_S|3627 zo3-8FlS$@(B@@FRz`rXdzw!S?DE%*;GN8g};g&a9sEo<7$Y5DSCe3B3ITFFcBqU-( z?rZqBiCbUI8BD5zb82@{U!l^L(*%MJEa;nFet{BNPG`SD8tAWLQ=7}UlPB6zln%Db`ad)yv)L33Fj~2qA2PuQ0Wlhm9&R)|h8beU*coR;F}?zk;TrKQswfgbPbGG>I-ihGDS?GzOOq2$gdPAqqv)Lr zVWFNQNa+`rwAcZt0}0=o?D_L-mqj}q_zQ5CO*^c4byGMfJ3t#A_wDQ#US>;k_;%TL8YJ*@O|y4g&G#Shov6{Esyl5LenmWAaN1v_iVm?C zNgGM?=k{}Y#;08wZv?4);%yQL^zFZP43)-zl@sBtr?S;w}@VmG` z{-?Fnzgiyqy|Mo7l8#P)&)P)(y0!fW+CPd6fBgCvE89|?aotcuYO!1MHsGFaMByw~ zjfS#U?!{UOQ_9$z?I`9DMv@~4^Ly$QuPGN5;oAfb$tY+3@le&Lo@ zdpu9&*X$4tm-mkbc~Htp4vl9>Ue2@u8I4xF9YPH2#TC)=;7<@o7TgC;U?hkbTks2% zv($hq=+8EeRMjbiSY8VF9oi3&{XjD z1#I#s_`vR}A+}^)@>F4JJgDxvjAtqCLgq8zxmo006;zVjgyonH#OP#{RR#m*bJ60N z`z-dd_EODueJv7cVzGoj2T??|*m?#ca8=H6y--_vFx}PJbMe~@@Bl{1e3RG1qI?si zYI&s7>D+0SZv;hi)LoU@7Q9rjUGco{OuA6eXs zuzAUROUTr-1tKz$XyrjtQ7B?40oe2+z|~|6a^~V=Ao}WF?6G?J7`f^l;V(4$iU&27 zx)pA)^fB8~b6GIWWpNrg-RT9bD(%VR2`aBqNtF+cY!?&5j@}2FaRwV4vz>Eu(fBzI zJm!432yQY`Z}=l>_xhy;hwe5#H&rxeTxw&8_})FUtPIBKdaY2_Iy}VFBWa>K%k(A! zP0|AmQX3UXW1 z+5rv}-p!gafROpzyUnU!l|O?vW|!{cYJddieaqTGI5a3JMGGhSKq+ zEo$V6cQ%xGtXG&k;fdzdcX`%V@|HK+LSfc~N?Oquc$L0kbio7w{Z6%SD-|Y;o{lTm zzE#$(^IbBw-GR9L>RoQ=5#0Lq>yMSss#23K6BOuo*YM90DVDz)66}qw9sXYQ`ODS! zKcJWl|8e`5xZ|hN<+vb();fdvexIEXBZ~rB0hYrej;=bmtdd`XgpRIlE=u{np1r@R zJtiJjU4aA|Kx}F`EEmhiTLS|-@c!1d)0MCg@(nCwc5S@u5*Dmn8^eM=$PR6`SPAEi z@?OTyg_r-Ary3e1OZrN`jFC9QWvVuP{uj9&YFJ~IuEdM}Q@I)=!LKCTn&oxlrxB8b z8pD~3he*EN$~>%`y-8A*hwSMefX;^W4OXJ^l>132p}R+(^t}~#d5s$ z^0F_-O?dbEU^RQG<@Y|@Y}C>n4P@f4JXv4zxgz8?-WZ7CabDx2O0+P5x?tsB{tUm} z&6)_Nkv4=g>=ZSFn|}NL7=6DSS#V4mu%Cl)P0V+3PYDGlVTN)UNI@tkbz}hKn46^N zk+Z?H*@yNxCOH1dV6JG7pa)Uda>HyCTXbD`6tv^0bhB-zKZx@YP9b<%xX+cX8V zn`6GV%9gldT=q&>?TB!quU%(s`{mxknH-?`&@tC-HLDYV=pHiwwLk0~lB$lME3+g) z@54wK+mTis?75e7O+ft47;$N13Frzkv)*X-QxWokuNrDxqgE0Qyc1H2N-9*QYp zG}wE7y!$$qe*LPb!k_>P=GlW85Aqx`s;|TsV+?|1`Z`ghK5?h#%h;?Wb1XJEEL)qxS8)i0V_EcMatOSY?`V@8pjnXT#ika(a%yapv4dahzQ-r?sf=P;OpKb`H9Nbp2Z6_>~|AGg}4v610K9)Q8sJzrpN!Dt+w@7^QlnD7&?7L=UWUMyt5M zcAbvFGER%&((udB(vao-b|6Zu!Qt1>7Fh-hd=5K@?WzU8Sr$w!UjqLnzm`KVCn(b1 zhEiz~mFZ5aQu*zItC@^kz*GajhF?SVwEf#|><_OUv&swow*A*>y>Dznk<&;5i5s8< z4aY(?H*N)&lc}44S(>M;M5syQQl+~|65ER8@%}L_vrUgZrmDjDRN8(w+woxg6`yx0 z|9Lw4jUWCCLx(Jf==bKy&5L)#unc-sG3fM~n>4yTmslbuOuM!E#-E|Cvmi2KW?6=D zKBM=Rr|#MrHGXRb6r10Ve2f&LUt7%I6F1)uqMmS!`9 z0?DG$GbQMfFOpTckkL%o%Om08uzxGOR)Pj=f?j5Vtw+tJ;||ltz^z$zgY2T?F?~g)crh6Nni)(r zwiY3j-q;&!jruX>fvIhl!ev)DDG6HI2xl8%)`QYD#(sha)u}=aCCwl;P{Z142)4|# z@{m2>uv-P8-YCg1+mn&Ce&g9M=~fo7x0jUs46J9S7r6*EDvhcDZx1Mjd!oQxw`5p6 z;c#Fq4LzoQK|G{_4$T3thzpve+WWrShM=alG59lc#CI4ZdgP_o)WhW6KtXR z7Z@JJ8EUR4zM?+p(po)?6*5~nr+i*5DYP6=Zm)zf7yViHniK)P$wAaZ4f_Q;Z*Hn0jczszh5Q9mjSaa6=0>Q>{v|c;!Y8iKxcfnj73YsT zb9jjYqGhJJ)hgt2f?(4UP3l*=Q0SN|sy2#j+eLn%>&B#Sh`iS#GD=HWM^CWZKBxCULhKC>L^dg*qmHA3*&rE+)$LP6W`*5%Mb;q;Aa zXx2PutD@qtnN8eWa`opwPZ~Vw{rFQ=vt=uex+`-i3YXWyi)X5Xh(mjKh_m3PQu77& z<+PdCM=YzgPlOm|sm^dUN;ENLjwMEDtk zm+fn_beFz@7y_4`&0tz!<{8vcpvnk!jguuxltT0ch(RK1TW${KPSEXZjD%jaad}P# zmPjfUI3=K_4AN~3xP>?!=xygz=d8e_j))Yh!lX0t38AGp$$Q44$r0n1sMl2vKIS7C z^_<k?I&9QbB#(cHhY=!TwgXrq#OVn?GQsLL(47Z%2YH!>2?;lZq5xa2@#Qn`QjmG{gya~t$%Qb3b5eTi?jY;ep%vm4vqjU(aghQp zoB?x*hSGuT(q8p!pWi;D&P*Y_Kp$hS@qIsb^wRYRwLRMp8n&PA#6FI zJ|q2%Xv5WaZDi;vJ47iA;1ETNv<#&^b(pjR#;^L!dq>d`Q9`^`p?Vd0nKc&rc- z&)0<5nOG)YKIcH+Ax8Edb?)}6%wY*km)X@`C@}I%YS5(%9nBqBr(E>bm{6-5EhP9Y zbF2>p@*&>PSHdTwSzPnr?ck;toh;eZ{Ev%p^@udi66*9acXF*nxT#m~Z zLz9Y9Rn)QjlWTO6W`{xB>%D^^`_2$W08IQOO;Mt;jFicG@k!G}=A0z8RB8A+a+>(b>BxXJ*9QG?ir6Wl~Fdb0W zfjNN3eCjizXhu4Bc@~wt7PhwPt*QPI={TKgEBnZ`?5af^#g0kCv+Ob2L`@C_HOQeW z>51_moWlY-gESsrWi~k6=;KO7X(8)coy}g6n}ct7IF_RVt7M+$RKs*|TlgjZOvgyV z)Wpo86?6Uh*swTl8Xx!`CBAGuE|5~hHI_JqB0Onn9K6LuK#NQ3rU5 z%1&(?+&xpI;Z=+Bf}TNJ!W9s%%Wf3*+~X|t8R9-4=N|}!BeGIO2=~w#7*`cri8SYh z&fegm4jy9`%AHhdjcN_Czbv&O^zb+uAr}Tk@Mt1qgzqpV0MYjs3W*xX#XDmGa=|k0 z(B`lllT2gqHl#~{o7nCV@|?D%Q`m*9k8OkI`&Z_4;(Ymy?0rMB+ofw z`|yVkC;kMo!9V_n={wv*6lnY@&VE1(^HKrQUE=18N_lg%gTi&NBkG$X$N(n!;%YMt z3*#vb9FQLvpx#@HUPl(l@abryN(o+<`pW<~V76%OQx^DFVcRr-~roj=nUdz`JfS0XDCHFJU?gGq9Rpy5mFx(v@ zlu?>s(IS6f{n?K~q3YY(i+Q*mRhnE)7smaDm=E$^&D!(NVvEzM^@?ewfCBEpxF(1m zy6T(wyJI=7jZYZc&8<;gk5Erto(d@D?bIk5CjbRSFGe@=V8?><3qLFVI1{r6Yaahu zXf{*YVU%1z%iirB?!(1?oM~)hmH&$;)E?Q%*FC$_Tlr{nGxk26c?J`2Mzeea&~7YW z=NA;Z#qvjrul`L@Vcx1oP_ygWMcOxP-nziofwidJhtkWdel^T-BbTB0IpDl9rH`>` zS3&sn*3>D)Uh~g%3vo+aM`Mvpal$2QI;NTWUqgBP4NJ6xM8Bq0D6gY&Wm{_+aV+Hb z>ZNw*QrjN-7+I2@)l@wBsc%!=K9y=}dZn8$(>RG(%ie>UIgl=p%!atR-pPqU5d`C( zHm5hoGgK-^5kfrNKX?ZXzoa^mpd{RL!sw**P$!ER@dvnaVuX@19awoE#783Uzdn>q zhF?01p3(r7W?WgI5(mgOo#M!Cq+d!*_x3|q1y_c9fcMYQ`)=?R;yD8sIEW>vRk@gz88}u|392c7rKW4SLXcuxf|k@hQB0mo*|uC$2Bz zuMT3Z339~e=H)r^4qPs@#f9(6D%xOmdSLSXvK@zp)qmF+;$(zILFGg769y58jCFbvm7?i{ZrlIM8WPHteAQ+D zu3FG?i_3l=PH`Jv(u=#D1TP!J)gvvsA`N|LuhYUUw4HCR3rg9=w?Tm&OWANIbgHk@ z!aoa$!Ej3Y;K$+8J$x%s`TX(`y8u{n%rwPj(>h224TF@W4r=(s@I zdi1(AKTmRi`H9?3!?%)Oc61@{I&(w9Wf_;chhN?@p<-DVh9x)t6O(ca;ADU&^YN@S(#M!IeR^phajA z9oD-9d_yn56LO?ET;K1fiMNUzV#SP&vM+}{v}oGTrsW4bs4JRO7KyV#@x;Em1Ywsho`Wp%7jmlK3S0TkcQ} zxFdCwlGgnNWW>8z{VcXnj8aINz0}+{a{Zn+6nrZ)><4W@CpediL0tlnPr-Y_^!VF3 zyN2_-7K*)70!6@2=I|ZJQPn4iw!8(i>$_kePB3bTs5p1JASX0ojIFCN!u?s1*Noy%nxp1zJ{pw zxI|MQU^HEXs)m4bRP{54Pf#>Z6MrE0f3!u-tzBU`Lo z;Jd)3$pAX_P#Y^jWgGD!O1~K!b`U{*he&dG*u_XX{dXqf#Ny|PZlw12Fx6bJyK79q z0hNyXA;?c|`>*CcHuM{+wrjaM6HkjeEv3s1{Ipts+)7*RX3qZOzXjbEOYn)ODx*Ih z`^T-qJo%U7gab17Im&qGjHx@TQQ}cy<|374S6&Q)QB}awHNt0l+r!LW71Q_NJ{*S+6|@%l?#nSDYp< zh!1f58$nA)x3rh7I89_db1V@?S*?9ZJxdPpprDaGykTuc#<<={-J8siRD1`L{~tJ_v8abkCDZ+}2?IR{tpQ!J`?r5B#o zvLiS9^xFPXJr0qa4f~}Vl1z0NV7^Uy$kPSUZh+~Pkl1>@|5JK2&U+XtvGr{Kr_3m? zTNyBnS7~k(MbA;VxjCH#V;)hhhll6QtHx=D8bb+=8v-}r zFl?E=o}V@ImJw?s4yby2ixRZ~$omM-&Q@K#+J_gG*gIZWxgJNnJK)2=ou07++foK# zXbUb$U%2w{H3{eBZi5ZLdcVP887!aa35E#EgVwf5rq^os3*=jBqrVq1e1i<#(v0wv zNuNRL7bqOqVDA+uJz$kICR}Pn9(NAis+|}?F!nglSVePB&tU-UM`A9m_svph`@;peI0A3K*EvkwabiBe{eeL#lcT7_ zzQLAm;hHDUcF?aX`Q6Ay{+uA8FM|GsUF-(K?UK;YxYB=Uxgy|fo8ecXkI&G0&F43t zC_pGroR;CQnw%^M2oFOJm$B6#+M3M{OPjal3@=oCUryK?v8 zO|i>3b@BMz$Vc!)O&Sq5_k-NC&ldmIf+}dhnUWQP52hw)y7lGVrM9&zxO0t@eVEuV z%gU%k*I9kt?mjb#(w(l)Fdi6$i+EALZ~CkW;){b^uUsL+Rnt z+cwN%pRqRDZ6oREZuJeN1y~WDaN^Xg` z@oAfPt0ux*;aV;$tuI?zy%{RZr7|@{Ug&afM3kj6@1!DVCD)QNTC5`TeRE)s}#_*mj?I=EDPO^(rJioJ- zX2nQDAVRro?SeZcc;5fwZc!C@3R7Esqxt?Ik2*iJF9&&pnAOgkKjoYHiyi?dD#T$h zQX@9M8&q19l!pX5NrcRZ$gE-X)C_S2jW`mQEW*?1$Qe9#5kC1cf>{Wme~WC$ic$Q% zkm|%53-*v%$LpS~K|rEXC|6wIoA~>Q^5x2x70xz-WEvCld;7?t(PyiiM8fF$`ENSb z3BE45WZ%*}Y;|Ni!3*7F#-V(br?>k~c%EL&xiuy>=X?%n$!N?~Hf)C+_P(1X-Pp7f zx)S@Ok=AS2H4%It2|+2U<3P0(N~(T2)pxOnaO)_J+YW0|-qz2e5c!(9EfeoA|A~T6hSaF5U<%?;=(S^a?H7UZr-Py$~rAO&;DWl*Sg|dxX+U$anGZm=*H%4z=&a> z#?YEZG8HdXXWmJ(NkOIrKBac7=Ccwh6?e){q&3Mapd+LsDDqpX@X10Z9)13wpp&|h zT@lGs5$aK&w7!9AZ+|LDls3KW94R;~%eaAuP#KqbtUgIC$w?eD^b*bTX!WWR@XuAg+dgz4KF`@?#0h>iLFdUaJw7a|y3V!Q?ow<)$aOB#v*+FuuM?!dwc}tyx2`?{!~gBENkK5b zs9c=4$%YF-R$i=V&&NPYP3MUu9CAX~icx`aHRe8UK~)}lBKk^+*=W&LgX`oqrs_Gb z$ia>kOW@Q;c9;H;9*V$l@@Tj7`k4kJ)NdWeSQB$pmrh~ZEUY>hn5oV}Swt0c}e zzSC?eo8~H2Cr3yAqz^qfXz74j{aL3!yDmXb*Xm^C#34{Aq)kTi>X`RYJ?FegzdnbY zN$=s~2$y~*EY^6e0u{-~DRRQO+2K~MH#XB!-CDGR&m&zm=Qi!qTJa@qXpDC<13Nu9 z`{cSgq;7AcGo9&<^@qJ)R(!|-^>GPKqb!qf@7sAdzolrBhVuY!U)hmj*hC;y{ZE3b zq?y>-M8w)_CRNFV8@C+sudDPqne)M?SYj0os@3ZZ7l?kat+*uF4L}B-c6}}<_BtC$ z2kgOT?y$@3tlcV2=H>M2Mu|ULn$2JdQ}H)iKgRo6CJL~rz@doz5AKZ?+SD#xKx9wn zRT>C6LXHyK=gODNMi_=TuijIk(vG8vzCD#>Z}g@De^P)G5t>Sb-40ha4z3bcF6U7_ zU3GP<8#>VdOFgT!1{Er_&EnZj{`jakP&w6aYJjS;hB(9YMz0ZGQ_}s@F6#xwtH+U?t~~UnGF$x1rg>p&I&l>F+!31}Z!{}79rQH?r)&Eb zGFxA6jraIrG0p zJ7p?aj_na!AUWtId=>gg)wp=!v@{m0peMe003~Of^k;*J@5k#p3cd8oO-2?4szWjx zUKM^Bg{tEAq0A$r1$!z0ABmR{GN)Y+?ki_MI*571IXJy=&bAqUO3#j_*Jtli$qq}u zmlm1J%CRU)eo`aSmp5{8JBPpVv)r!_=LKMon(|}Ea8)!%9T6U2_4VWjWvf|QZ&4-EjmWY8+CH5BIBFh#0*i2ztNg^rvX<j7GQ zPc|No1|?3_(AV6ef9_%wE{p=DXMqiTqcQ;=!OPGe2S^~yu#wIr>IL_xOIBIl{DEB)ra=BiOhacraR#v4R6e8{fsre!?W0>YKkJ1cqi zos5*8@d0htCXh=XPOC(IH4ai+iV5yL7oTnkw&ATQ1T6EcL!nKx{53Y=_f=56Y>=@{;JryzuepcJv8 zUn(uaLzClmSrwiDo*SU!PWUfPU7ZPGS`zt66Tl_ueN>qGJmRH##W@j4uG_rsumqcThcS(Dl^SGp6vf?=W>YEjUu5(G;8p}^$}-wOjBfbj^(&)8bWJ8H42PbC z3L3#;!?f@qXLgt15T0O76G5s>@%mUEN`N$bO`%^yGja4KB4#wKGe>f#&!a1aR806} z_oS7DtZQ2KeGyxKg3hrWxOUo3e-GjOWKii%ZEX*Kp&PtJ*3jytXe1U|&Pj#g@m((O zE4Q>+tHvvX)w>bwlo&p5fRZaNOvL`#$>Vk-`oYPhU zlUG0#(BM|7vPak(9-v&dDU`*hY>ifZFeN&2M^%Vg`P((qamv16AN?$8uAQICkU=h+ zr_AHpEa9V5LEq7~D@N3D(?Uw; zXXKuTT%ZD?w*$r zM%rnU0>GJLqXd^GPO}dTB4mYp?cVtvqJy1uhQsvMTPZp!OC+PA(xrdYY%#YL$;KQK zwgDAEVM(edYv1vr(%;s`!CuF|Lu97D=|zd%qL1rkul9O3ootZ5?I^_c_{b8ZeG=Gk zunDXEC>ynIPcz3rk90^9KMjdcL@VNCrg2gC$_WE;#i<1$o(p56Dqh>EB%^L`wdG9> zz0O|HwdFMI#|*CA$%WRW*2q8GFE>Weg&`wvE6A7;J6wu^bbZN0vOwvnI-!|Swi>j9Jwc5#4%{PRPBY(K9@7u27!N0N%;E?MSI0iK}qrBkUV zt4H^g_r)i5@12eN_#GVigiwhifhr3TreIW%A+q`d)#L^37hSwhV1Pp0eN*N$ZCS>l zA$qj!%gR#O4)P#UfHM5AAJH%1ORwp5KX6|dVTUX}D}!fWYb&Q2%LEvqO(=ia&v{|~ zLcR2b{iT{ObtkAgXjmp7h$0sMt61e{s)T-* z=y%TMKiU`y_mYF#!U8mqziG1iDI-C?tf z3&+z~Cnco95pNVP=J;~DU9m!DnWhReIUul)tgnzgr*o7UBc^cB+&_|w#&JOBlupV| ztyyNW;)86(mCT{xIbasO;AVDk*06P#>(5T?fCXnw8NXC#kji8qyG!p7>#>csDK8^@ zi^NwXof^kSo|<5mw)9lAZo*4o3v=1O9m~#x93PYF?zY1dAU?vKpiBC;Ktjk+TByu9 zQ1*4y#+Dm*&VrlL$Ly7(?wrqe-$B2Of$qnsoewwR+>lFao}%rHl^i2QzA!Xxi8fE| z^M$y?9eA(;#>Gl>w*QabXQ7L*VQmmN)gh2szgdVp_@pHyrHg#~z?Lsn9i!)XRs*vV zQV^;@UD)gGv*BeYUP52xddzWS&}V87urL!pMDiH&4NlM)A>QU$t9%ac5DvuP7LI05 zJ1#n39IexbUvI1|T2hAmeh5F@+sxe*oIbCM^&}JsS|MY9AU3N=zNSDB-%FN#m`+{N z9VsQA)aLEZuuH)i2sDFE_N5D!rXmQdWk)NPygoNK_`jfWVW0~Ni9^z0{Tjk}i;x-t z`$;P`@@4uSGErglTKkizL3*s@wbq(NO6eK5x`QqNZOv`)lcE8;FLxPdevVUwm#+0D z?r=3La2>Xqt|ia&hq0)`MV3$l;d)knSJ=J?qt2{FzWP`=rajI9%d)Li+t}>=Y)1@w zY)(7tBw;&ftCV5s;|^cu^L+>=82g!R7MbHUy*+^thKrN-w=YQ+21IF^yEAzo6PaGbe7Q@LF`=8gh6^$q;E(X~ zW4Xy{@d2#f*39FrPASh;$3wSmhy)_judQ=6#u!UHSifqPi@rJL_mrNF8Tiw>RfyKa zT@%6i2w_^INx}V~^m$RnX{~Is9LaUT?5j}BtCEEU+xIl>_A}a+%8RxFk4~sWHrJ1mc9gG4VfoA3-13blhoV`vWmTOIa5>!o4(fZ9+9L+ z_|Ez>QDd8GMD9mK^LYJMk9VlWsS0oC>V91b=gB7Vk zY4qI+B%A0>p|n9AFzZXRHDT`fP54FFsp7V9>jXNBL`@1>YN)6q`TB_Vg!#rg^cb|H z2tkfK!ndvri{vSrf!TA)d{CJylIj<}%FTK5!n}m*Y!hYB`IrjaAx?nN7husg7fFC9 zWYGtvTy4OTTvt)5;dO7Q^pAjn{f7pMj9;@d%zfF*b;HxM6R=v#F$7IK@ts>z`*kse zk@lQfJb4#W<~c2K69y*5I(H^bhK`GK{>S61ivM44Ume}WmUJ6;cOy>RU5LB8ySuv! zG2-qdA?^+_;_mKF+>N-sF!Rkr=HC0wW!`$l>b1xpzrCwYcb`68r>l1D*!14100IjeDmK^Yd5Ao;MYiF&gDFM?^IZV&3#!*bq z3Fm4chav`v0mGLy_JDgK+}h-XIcfH_l`}TT*zZso3OtP$Gjmf_6qxA9yZdJ zOf>5M_UzSFBwQz_rs!)w0kM#aCdWcBJMSpC*Z3nR)5A;vH;?tX;Es&IQP=w<;HHVa z!Qct`}S6oP$1&?289TEs&)i`KYODp*-t2 zGN+yR0K&kJ)~d0xhw)$8g`A7*lfn}j5R^U-XMeGZRCIeXOTTC2h<71RJKVsVfGoVo z6X1m7gX9S0g$)Hlt!|u`IzJZ8*jABJf5VHh}#+Lg_e-U=C%gFRsPJh#r{ z${X|mvWwb1&*vqw&PS|a(*ISfTA;!C8f}(NPUrL1_&S~u{lMtp;tB5iYH8o9#_-Yt!Vco?FuC$r zwiRvrM92#z(A|h~j5@$e7SlQbkNeO;QIh~vY>3J<-3U~mNj(sCctGcto5&wJxceP13g zJ+|&x0*9Dd{jnG;G6sU)YUmeqzu4*uzI#{ zNE>Jo+{uq6IJBigILnrE#K=;0LFMEZyv~z_Ir%w7>73j^R4m+3H%N%qDa2Z$I#28( z_S1Y_)fyHkPcdCnV(`RSuiIbQh4^R`&?1}N)%tyPSD>s?nXBPQ-)YUMAQ(9tXTfbX z8sp<60tH5FGz4wj6o+xyR_m%ncdU|X!+3~3)H_WB0mX<+DS0Ks6Nbq~<#4R#xI2q_ z2yAj{RS!w*BQ4_ECw83H_@Ky(W2hy5#a<@W*QrXol_8qL$t;#WW=P|PvMfdclXXP4 zk|$P)u5uRnrJ0QF8HUOwmrBzu39Q8u%q%!0Gns6gwqxqR?0zwhg;M5t}X4n(cuKaoG_Qh*h1J_?N5@4pLQixW+UG*q7W% zdj)3P0dQ?E8DwU4ei0ROzcIeLH+D9;g7@C7ba7s`=d3Hc8lUc+T+E@|IWIiW)LG7` z&zu4niirk<=S%V&YU4-|&e$XjSWd){5gg*+hMs?YU?&q=$h}2Gb3g>ChPx_A6{!Z# z(8~`p1l^trl5rSj3KMjY?f{87yBAu-6Y#~iAKHc{|2#lsNClLN_E5(>_I(!Sh{R= z;mK_&(GFnIQ}iuS!ASu9N!3XBb>0C$s9My2(5wD<~3%0$d|rCDyMSSsGYkSd&~prpq@xs4wRRJd51Q=UsJ& zRt1!ZI;bCbh@~t>`NcW5A?~I*_pOT9v4y_Ijc}2WXIkM&h*DKz<@L1Ao;liws)?Cn zz!H{n=CAo@yy6j#lbW$wOAlEa)>1_G*eoL)K9x2ulGwE_{9{B)2k1R|=hHz5yn(LUO5BbaFtS|YGO z8u15KK4Lo`6I_B*z^~?KJYcy$I5}DUb4N0%$0+gbONr3Q%f`h2!YPEmVLr90})uRnVFz`b^H}owmT}rH+<>@KuM`Ck$jf z++UNUI91f8({qmP@U6BhwImplZ$-B+KXfuV#H0^@${V%1?O69)`lPv8_o?^LtB)zb zHhHU~-nJFlnbx$D>%bQpuO~ATc%q}md!L>R270CTZU}xYbf*UH!fR$FF|i9^a5d2@ z*sqFwNlWx&s!Y{R?erUy7I%{J3K*v(mz?b+>4vB=dlaPfWER(^Va+}~-Lr$wTGwxk zZ*^-cd6|JJB0u`|Y&+qq#)!}evjk2D`OCNLL?Q?4VC@q<7xe~znuNXq?93LD(a!Thd;b~6$cm>%~6SS=v1^PzU@Ml#&zA0>R$=l zV^B8>`bEP=J4ky=`GUW7FKld_Z!_?8dQa4@-og#grpDK<#e`g`X-tT$cA1!`GNJ% zMIm>QY`QXPJ|e2z+N$;AztF%Guq;M+s&+(8i?A*kb}yKyJ&x-^qng>15&Q&vKot$Sxi^-o3(JPG1C zybuPc9tq<~w8FQVRac_69m8S2IG2<*eWElBc_5?rwQQ9cHk zF(GLnGbu<^{hIxW zC{J`oEW^`|%u}}iaT8IoivGfNLBmqgNs%T}SgsexC}9JmIDzn1LIE-#Jk>AR4aP;L z@&H|z5nZ>Ypb~sjOJ0u^i(@=yB1yDJS!$-1sGc+TLns}e4;Ls{Vtz>_Uf;dW*X;b1 z?ZflXPfPfMv{+xInco>LwX-yL_bffik%rYDuQx_nm}M0)3{~cKec2?-Y1}T^x0BkU ziEDKdD#|7kQtV8_{o=55N^YOE_7M7HyH%F2vQ4O=KA+f^sW;@QsvR_Aafet+*k56% zj@m!%$AWf!=RCDBO(gmN9oM-U9C&jA$b&J?Y5?Fyq>|dg&FIltI<&R({EzZXEK!jD zBoF`qtG_HH{@d$~f6j&Ue=rwXDGthGi=ZS3Urf9r(1HZvXTb=-V}mDLbR*-G@4!!} zk`qb{Gr}r@)q7$USs2M`vl(rxvOF~<|&Tz2KT#QQfTeVW< ziZ|H42JX(ewj7EgYzOX+j|Qx#N*0utEN{ac43q7_NhgDhuU{L(5j>ZdoO?Igq>j9Y zbOb6)*e2f9AX~{a>uQDDl%sN(zDfm^%;T_4bf!R-RWz(~w)f6(d~-Kegd5sJGd+Wx zF3vX<(}SRNl)C)5XM#$k{y9^rP-h zK%P-$XFq=?uFKh#`f|S(e)l${mtK_+0vR;Wfg3bwq&O@qyHo2#&L^Mk1InHizZso` zvEw_P^wWMi_6EuOlwd+-Sr5iHh6*WU9HOO!BokY9$`cQojgyv>&zc^TO>eAb;K8WG z@8{R4Qt6lB*lO;Zfm}+jiTCuIPLeZi$()S3;0e((-q}eW^0~hsOP*Y3R@h*y%;m_L zY!E*VDLLd#1T1JCyk$HQ8xt{L<(lXbkLAP2}o+z2BVbfgEA(}^nOy#m>dx4-=l~(TU;L(1WY`2LZSF6Us zdYH783ppqyNXyBTOA@oG68&tI$L$8sP;0yGdyCQ6P$3jc^3c?6_M_}irrI8qWehAF zOH=UH24i_%h%KBXB@YcR2<~eXBKgNbO zfP`ELK%NTAxk<2I*nqywoL25rb`6-36xQ`ei3YEzbE)?R_kdf}SQ=QgNYW~Ah_}yp zbiMqSS}WZzz?b{Iv%ZcGwWK`*etSc(a}bB;dRZlT{N?8xf4lVG$@+H}N`Jd{`yW&< z>!cUPpO#5lv7^#&c@cW_K2%DYah5$-!jFILi^)x1Fr6~}D!ouET&1)pb>%iTxQ`{vCTk5 zGx~+T1S*k|;uPb0w2Rmll^wQ8HBQ!ZHN_E^NXGXBULsw z(UW`GBBUbtvz;srN=hmw@E*+97PzwI#a7w4xMtOK`1>1G<$D`+bU`-Tl@Y?G!iQ6H zellZ_M}^Y>LDpT^bI@vrPoOz|kCmuuus8v4?6KHjnhPJ%Ik32g9dr%u#sQ(j>2o+` zYne4ty+R|6MI4fV$idWs%Z~P%c#Kchj@oW~v*y#}nptX5bIi^DSw*f2vArAdQbC^n zm$m!sf48jL+04l0ziM^!w;L<{$VjL2!(TsLe|f6I4vRC0q`c7pNjfs|g5#e`;d|_K zU&olTSLw}LQBA~>%~va>#3qnP!^B00KmZ{C#CLznIJ=4F$(lUV8QUugUg0>ZN?PHZ zl#F8EDU6F;zCIP@ub#kp>CkZRe0{X|c+_hP;WPL)dy#sSUPA<*^*!+H87u-PNiMw9 zMxGgX&`v$wXDlQcu4N}F4;yTw=-uRdV_ywjb#4@k1MD5MtrXa1%;d=C<64;d+K+c_ zF!lTUnCom4ua?yUQ9uG344J96Nj$DICIUU&0a*l;l<7#AL!ng`=V~prjsE8D54u!J!uCc1+NUYlWL`NcO-?CIC z;DDaZnnVTmYSe$sS3lln+E7RvTrb@Hy9#$|yl6ZrV(t22&hp?Y1F_u> z^?nTkiDc2fmhNlTyfvHNl~(Y)7DpFrQS4&72s<(Zww&3(*E*?maJ21D4ZYgf)nCge zA#MBEw4wDZ*|?O4^>C;_zET^uk9E2Tc1CiEDn~S|_%oT~OTZ5a0NY35aJsjg^8~Hn zgXiTDeb$@!x~oi$)1$GSZNZOZ5+13*vJPSeBWGqHHD$U%;dcQtxV-X~cy*E*m`jJ1 zdhjcOP}wd^*=~oIfy#+$`(p^3&D~N#H_3&-6gwn?Txi+2r*bJ5)n{25TYHb7*4Esx@aB-=WAQ3XyWr&L1Em4JX>@ztUZ)|TkVXK zfPN@fN{OJDI3glVhJh;-%ngrs&C!JDXH1eb^wyE#4o8EYnQQkV zQ2eFDN^zj?$cify3E8De(S3XmNe~LdI9Io{3&_i+0;9RnAk<^{C?HV-%WQ$>&vm-T z6dP0d6atqu3S; zTn)dr)}9q5Yw(MeQ7j_ukCTxp%5Fv99~i;@nl#bfI8_i#mtQ9@Dl@IXX~W*C8O;4` z&h=^^4_ZgB6cZs6Ihw*vWp@L;0*0V2WJ!+IZ;2jYQ~sSMre0xuvs^saXdK9rB;ffw*2IP|4nz24TxR2J(cL!y%v8|=PfpiQ!Y;?2{_l2wXpl- zcxSHm*iWq~1c{#_3hE9)4BQT;R_#lHruy^+EHbJfiRT5@lQZ!&N z@p08%BW9KW2`5R{5`Aa`q9uc)H&q)Ji+xLSpr+~L<)cy32^~dnp~?J{+YlTu^^t^z zgu3E6vQMn@L&~TXPRT~~x~gQqoajWt(S%Zb^o-+hdS7tKQj$akd0GTlhTcW~^3asc zI)g%u=((45leUqpq@&Y@1|QD6+kMT?AqX!`K#Ffqh)0Zd8LECC%p3PQ5zYNAeovZ~ z{;;&hlW0Vhu}rmbQq{aqXDU}`s@9Az|9H3ZlU3g~jN?uru7TOHb!0T^Od5HaU4`GP zdvHm+Yt_PRY?r%cGDVX6W(=PK^iDX%5l7uSkjAanQ~YB%f3o+GUrd&KoMs+Xb{Zcj z9NC|r8z1(;LmnaGnp>%jZ(GrBI!#&5GrQ?GbH5sH^`tX+TijiBbu2&sLw{w5hXPam zWZ(7N_bZvvZSuGYlRqQJ)*umJX=zg0bNN3R5C4>j!Y4QH?K_XkP9_NGll44WqA zN^0eQO@q>j6W_#mN`I9T5+-AYS~wJEHimN{QJ$Ivb(jRHFsjq)U#z z3S;S|6CUO8fR;F_J)p9VE$B8To7`^6hj5YTX{x@LDB69!G8rn)`5orCp|qIwf`4>W3zhGxZs3=<2TOPr&+ z?Uv()h1F|ap2;d7Ks#{-S6_xGG=|&fM6;<9M|2sUGpKs*i*T>|wqpzhTP)s)NH=dQ zt)2J62|(6O^~>C*F5$TB&vy}PJvtX4qR=*#g66`5{FXTlrl9!mvqwxcEHEm7b1|qV zDfspLEJ%cNg~kU=6IP?&`=5b3qsi2<`!w80FePPd{bQGkW%{Kv!plnm$V=wv&$IPR zfA_`U<*mTb#^v{#Oa1LGum3|vr}NMM{PZSJ#_8s%(LFvt-CVu-(Q}8;4j&QFAF>ve zJW#dz6?>Pn{yZetd-T0|@2b)QQ5k6*_W*!(^F1l}U9X9zJnH6?du#RG>q|)ub@kmn z?GM*OxH2-4z^izxcr$4hE+!_%CMGPcl|GsS9l}MjRb?HBXakE5Mos1n>NTpTl}Z$I z!Sf3(_6??6u)Wn1UT(dqtPYXu$xWrj28lyZ&`DuIj7BQks+GEmx(Luwo5JuoOc!tx z@s_=*@^2Z9`vKipOlQSG`Sh%a8e$k9YB4ez#ODtKL60m*Bcg@E%!s?iHv|Mu ze9~fyK)R5LrwX=mcg(AsDpebtXE>-#5Z0<(rO1_{^CK6jRKi{1E>Xo{ESafIjSPfR zR+=mBt(nTwqA#GVZxzP2GMyVoB5y8%#`VZ6)RD(>gtfs}==& zV--IJ-qJDwbWmG7SUxgiVko+KUimb=-2u2*h$38&U!2cq86R#owP(OMg{024r-NQU#hL!b(0e6=fy0vI9$832aKapX*8T-9 z+~5SLL?$a}(IXb#VE!I5H2AhN13$O*g_)p>TzTQ%$~}x|At=<1N>)PT*OOF=y+^eT zP5RjKGprz2))m_(L;Pi?Xq#E)V1z?4SN4~fb-HRi)oM6jG20t**`Q|zqD`efnc0@w zxZ<;>V7|w|%*4TaKV(!5{D|BHMj|3YA_4|>N7@T^*L!zGf1HBu$X*Q~SK=}QmrsT= zoJT3ZF*;iuod*ypzO`j`85TFMZZgY?lfqakPh*oL)pO25jKvmaoY2jPmH1gzh*+}* zpA<$?4K=x{$TEpkJW>gVJ_=vCWaMiCls@K6ZD%RR$53{|)mEQ$mRX#>krWukS6g~`_kg=+nwN6JCl143vB_NRVEC6)rluGjNj?dFlN zZlT>r6ZKla&q{d=)>GO&`c1HJn4@8YPfu?oZVm=h;Go&QG_wyKG~ zX!QJoFaZ^IrLW!WJ78v>rbV)L0;EsDl*5&wmDm-{_ywq{X?@}wYDQ0Idwuwat1@elr>miOB*dg*A zt;`2X6)`gzBd63{pB{zYr~$@Esm`9>lm{VNgWQF&r1!6hTBCb=34dtQcdH;i;ILGU zWRs{A>GNQJZ#_p*t7$YsrMh-u$7b5GvHxTpM#VMq z`jc*kmE<(F$0&X`DK!pg3?N!yw8mD7IPx<2s27UVK`$o@Q|jQbdd;V`YF||Vali*( z9%^t;nwyL~lvmYdEo3eN{KfjN7|g0mWEyJ#2Zgfko`6U*=Io6&Zr1$a)gM^;nrdlA zLxe}z!Pi_*N>o+zziNa62hLkJQCQ<8V)RoR2~d|e*s)hp!fKR-If)vNR8h)ePw!E} zCr>JyRhouEL7 zh7vgIE~l)?4iu^)b*j_pkWLlJz^M@fK!(r783+fhNF-ivF22DqdN+VoRX`H;2`&wm z{_q4^)hsaziSlW+xokvdjp1!+JK<2;(AK%G5bP#^#U`tja>kGv0n57G84g@KnLyzm z_bw*epvB#0iW~0V#LRPmUV{_c^HTk;>EI3F3)-w!HG zmbKiHYEZ_v-rPlQ%yJ*b;a% z+Z5N&xflaeR@5Yu;$1jikniq4E|0sjb{S2^qa*Xz8&Rq4zvGECj7lSnU&!IC(!6|*sMrOhcJ(SGyTKdu-xJ>X5Z=M8doF|dP?iC#l*z?}s0 zOk7Sf7)!d=fWyv#<_Gn?>@;w(_kD%bAxw~fOIq0CG! z2z4PHLcq2P`8M^DWdSv6RavEYv7>;p#_`1rc-3SxB6lfS3ZGM{h)_$Dzc@Q-gq97N zsN}0{X6@nlW`hEa>Ae34gBCF0u;NS17>ixEz3D%e$?qD9FO21?Uq0j>-s{~Nx&?dE zB%-)G<4P*uu*STTlLfQab;pfqy`h0 z$q42are~H}CngLj52M<2tyr+tCpw?4Dzi3ANO3*1>txh(8za6TC{3+_!(s;;YAjd3 z?CFEFUEhwS)RN(M^wY~@`0ZS9RZBFQtMGRC;)^9lbA(Uk3oN0cnn_oq%8Af6$I@>gGW#d-J%dxTNyIj&Hqb)d(5XvFu6&XGo6Z zc-q@X2O1=D4fnN1G~b4pvC;zF*U~b}$J7#^5ze;s1EmS1QX9Dth*g;q>aBaBVxan{ zLST`}U^yd}_p8h@C154f!^^ZOB(rg&Peztamdb+K!$YbMiIjwA-?ZPSru`vazc5^H+(EmWqppoB7N31un~M72+28Y-1v$quXY zhaUJ_Oe1l7;!(-X)4P)@)dR0}s|cO>LU+BGb&fMRSa`N$BSwde-t(k_esNQd(oi~6 zrKHdx`>MWV)|1s*tpA9UX)_kxjm>QQ>YNL%NLHxLjj_wHv`o6!qE$w2x@cxFB;vJo z7~OyhosTOh>8S);pw5676~>jF&n(m$m@m>AUlxd4p+#UDp>H5N@&k!4W)xufYW*Ec zSVdIbJDYSD$~$o(ow62-sqh_unSoiz@N?X@gt~gI zY35ZMrj>grd+8#URD6kB(L#P^wUt!j#0Z5a`|v81yYw{u##+(+{zhTydhg3(KWVpl z$qir|&8A!Td$}Cyv*ix>;*-)ZqeYK=O^7Y=i@Z(YNz=)pcgoXH%z5j2%+7qCv>T)H z_M^%VJ8i5W4+kLtGw0aEWBoRQq)717~ztqKyKg@KaJX7}4G zCfg3)O>hJ3NSMm9quz;K6x$#MOq(?TL_5CYqPk2N@MC z?}7TIjaX{}h0tn{Z&d4hpt`QKo8tJzeoHHZn|OW&xREX~=8R-|Yt z_rTt>9xK%{oq6Z(2r!lh_(3gLgfU=IuBJZuiJs|T_ZBt5;!|##Zpugfs>{kbckgj! zp4Hg!wiBZ-*LGrHtumr4d7f(Sp;ikG?`(iOkU?*u&hClNJc6?19VSPV9tMmG4x)!j za3dNX4~Gy=;x2++)d6(hI@AE_MM>!%5vy{B;BV}hyzO9uuo(%`bZxdL>99y3XQhs% zN~Qwzu{xctn)0NA(3x0#EqMTL`kHqK!o1!Ew(S68dA0MQ`Cw3YUy7>^!E7IP4+Nuu zXYcK5doG@LO@G@6#A-@*eI|h(Z76SmPMH~Ei-cd6p3e*^lZdM53{+n(L?7Cd;oQZ$vtay#4l7Tp#sb{rH0c^HE|)kup|c1EhPPQ4 zq7!v-7m%l2D~14yoQT}rSHAoAvX@+0C(OKpwp8sdZ>LOSE%CaPcvW&Es0FamnVzp| z7bY{R5b*l%0=Ref-`e-g@QO5ZO*y40UV47mQiwxwbXO0}A`ItYmI$=a<1UvLmTZs< z=OW~)Wp4%&P9c9L|Kwv5E@OpCN`xA{TMHh@p6Tb{Uk!o1i_sbYo!TNgL$SO#rH&5Z z8DonArhLe>xEcrHT7v^Xx?Hc0;`iVqmApuM&(Lkm=K_FvCM&)(GbD! z19)(x%Z-j8v92!jvHCAcQT;d1g})$Tw3Nj-DuUPtk4T;F1h)b_fO_E35(2|Zs;U{%%QVhG9P&A~uq&+Zm7tL}TgHLoonNcB(`Wig zxLp+A-peDY%32%H4_a^a&sY&e#pRx)WA!n>Z3uinr{!it?QNe3eLN=UXY=IdjeUcv zPzutDu7*e0FGz71`A8?$t+h!+JiRaOqbL(^?n3&UY;rCWZKzT_iTWJR=~hSiv?r{k z+)xVgTuRxpfa+rAe#LR%kde~j%TeZ(@I-iKxg(*yIjH^89mFXz%=2T*IN5Wm%He^N z2k{N7?X*oc$x(S*-M#?P!y=ucnd?N(oAk-cBB$f%lj!)>_ZLlME_h;Bu4s=LE+fx? zg5%G#CEM3x`F?h(cm2ywWvEq%!_vAEJj8XHotutqtv}drMxcL3jQNzth z5~{6ZL4KpO<5hz-xRyAVl!lL~!~zq7J56Z2+wht1FR@1hS}zx_^#O=oATUZr4=f8P) zOH6we@{Fy+1UBD~XH8pDD86ZA_|}937c4;C#bM2F+m1H$ZN|i2_BvxeC-UUn%jq-~N|tx1Hbm<(@0g{ij(+WH^*HqiFe$~rF4x<7h7Ds zTN$Kvuh0!OWQCGaF8Oq1xpZW*LlcXeCvN$U;&Ox>KVD421V_x_v;%z{bGJQ?NvyZS zHwV1Rmksh&uqBBhU%0~P0q%C8xf`5Kj!r>G2la!7X_v=%i1&C2z}}*$|Lccp?e3Qz zL9k(ctc5f$1y24|t{^_wv?2A-2}SC4+0Y3d57ok{iH{1LhhHKXa#tijz{8w2nK4l9 zpCXu#_h0)X>E!p5d9Db2aE24R?0BG54Asqf4bamnj*4CDLEDX`G_7!wQ+%@oJblci zxS340nOtaIpZ)O2w3ypv@bDIeVz!?1PCM1gIR;)qX_D|9u{cy;kXu~oEUd4$h|`Vo zIY65pR?w zt~?4Mrt2vx>;wy4&`j;>9(xNpiS<8F>Fa5+=YIi6yQp1LREj6YZ_|Tijr#O90N95) z95)wqbXt3pABUF7m2CWM9}hmwqP4k5qb zo=k9fM3J{$52DF8Tl+}BfZb`;#D2;niH1JWr zH$qG+TO21tcGn8iQp>?n2CHu?g=}LEiLCkeXGP?zWnoTIqv=6kc{6T)1mFpT5)!O74^sRTP}v-Vu+Ec*6tLSYaTLt&J6P*LTKr7Z_Yuf) zTLu6a#3fj98?mZQ`S0~c-(Y_1&b64*Hc!A|BNX6voO;M{@)&mo7jnXpL3PEqGNa&=`<{w+6Ig;-DELgtDPD8|%{-Or?Q zh#m>1J?&l*F?R&jo&vPcIrViu!2nOKtw?VM-tx*Sd2n9>Ae_B{5Cp}&3{a2D>RqFy z*~>N;#8Rn7!Gm?LE2fZEHsbAS>wNA_6crh$UTn6&|3hVaTRvh1D`9z>o3Izkvr-LID z>V&08%yyRpX92lZf`98+54U?pN-y zJ_cZkbA)0HIww{j-Wg%*;m?k1=t(%KqqFyKHkYIgx7|RPG|vz;ik=Nt(Jr6wK24QU zpZi==SBE_gpC!WfN9@=fHyaMleAR8yC5gnzXt~;*qPKs=E?rK_8g0euKW$A&+Lurl z{m)(0nUt8KL`(nx3bw!6dHUVWAo@Sr402MGa#;{Y0VN8=N65-6??@JnKVs@)g>*M@20HNx=puNTvp#- zGZD3)fGGxh@+_Ii>>dyu3qSD*ZY1~UrrXj(W1!%UrjP=S9Qz%e&4*JU2v`e(?joZ> z%)O%H%Td?|FV8Y?rval%59?oZ;~ibNSR+O_LIw=PUola@tt3x|XUmjJ@_ULWs_jUj zjC6B^y6s8Oz+rXS{T3WPK{ul^D4FqvhmL7IeC_Prfl_XJ-Wc(e-O zoR^3;EoxIWOd&T%Z->4n4Fz^99J%82qdUA7OP+2z=+KTybW|WVWZwrU`}kYgi^8w) z4+TpKJ-{R`pp5L}4wavIInEKnR~%ee3M!{I5SPQ2PL0;Ob+4}APSXP{z3kR>rNIoi zueJT3#8WZFC}q#zlF5bNiVEtk3EpAj}YiGa~ z3)qJ@ys79R9LUL;>%EzwxzUWI6ipO25>IQuHN> zD&3-sy~+$IC931cG8+jBMYM;N3$)BXOtd%GH;h=~&6jpg7$IgwWbUKRo9sKP^;hO- zP1^Q}{sKQ)3YY!Lo_6^FS&+4_z-$&SJ8koVX(McEos#(^y5bCvo6**k8UR?j_OTh&av%S;fDZQ9GGY%7rAJ zoNe*Rc{aozMxuWY{ynH83 z4fap)CPt19zqfym@drR=HV!(jEKI)#NbnbcX4VFlPKHK?zlV(X z7swVij+VcxVTbesuDy|ijg!5B(Ql6CU%6f2eYlmH7GR2ykstu`jDO^uK;?rDttsY~U}@8zv4(!4#~H_V5z=D*!e<+S`~Jy8gMForJkiXfJNQ6k`L>{RBMn z9|6<-Uyh${^j}Bg1^xeyD#cGU5-*e2|LQ-DfsK`|jl&O@)2{?AG4E(`Ur2CX4%VLt z%KsJtozDMI{m0=@|HQ`e@~zN+91e|>*`J@8q?-*^f|qFUUXE`XyWcJA?{a*r*8Pv; z`Bv!i-KbycZ~jg^G^TpCj%EhNMn;DEFOQZ#4-YqD6`c9yPPltHWPhT}{x2!%bbj{X zKaTucGuZE@4gNPHH?y{N`iuEVRk%xr^acL)%kiz!@VgEC9@95P;}^#NIJ}>43*(nb z_ivrp{~%IS@g#6F6*GRt|B>n$N`z^YEJt@BF z(|VFONMh#|&`M+cQW3BpM>A%taE8w5US@@;P`tJw)PYw7# zefIq*L;mf<;qTV^|A6*oZv0hx{;%Txc_wZ}|J!l@LxcR!Z=oM0kH2Z1e>ZB3-{ksZ z<@3J^@>^NucjJ9|rv9yy`w!9MKRum4O6C6itSR{|qCZeq{x!BAbz*;}+<#d!{QcPe zK#})X%5TH>uY2X20PT0v#s8a>{}P4$^NZ$3p@VO72H$P;x5@rQjP}8L;Ulj+mqvOQvcG`{a2i+(qoA5i}wOZrzpKfBlX1JJ)t#=qSAHAgBd X0s4~02LNDv`G@rKZi5v5?XUj>99aZ2uLcR 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 T0RSM|eZ9m30P=PZ2LS#D@JIHl literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-commonMain-nWZcXg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-commonMain-nWZcXg.klib new file mode 100644 index 0000000000000000000000000000000000000000..ae09f24a214c2410a6ac519273a02fade94fa003 GIT binary patch literal 38175 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 T006<;PwksYto-(M0D%7o^4+f+ literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-jsNativeMain-nWZcXg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-jsNativeMain-nWZcXg.klib new file mode 100644 index 0000000000000000000000000000000000000000..8518ffe0d23667e2cce6cfe23e341027535d96f2 GIT binary patch literal 3835 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-skikoExcludingWebMain-nWZcXg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-graphics-1.7.0-skikoExcludingWebMain-nWZcXg.klib new file mode 100644 index 0000000000000000000000000000000000000000..f03e722b9a91703e67e38178b5dadee4d83e1e1d GIT binary patch literal 3260 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3ip5DlJNI}Hy;oS5vt^k`YpY&bz72dfBc=2#wFtC{hMakgPeRcw$L~S=;Tfy#_eQ5Bq!%&=4GcOmL!tr zd2wte<>sf9=A^>I;BnA4&9hg0^}TdXobb`>(?56a%(?Ql9_KWDPoDAS_xJted*;mM z%}E;`d7SaqJayh@kc#ae=TI zGb6~q>(1Vai~#y|C0_q3VRL0cVsdt3dTM-PUP@7ZW=aKl0boFs(FSl^^s@7E5h0T# zkTfBw;=s`#UERut`b#zJjh8Zklip#aC0t@aKZ)S=mliRW>m}#s7UUPFlIK5jlB_U@ zhgycqo8AggZ#wB)+HY6bZy^fy?!Jkg`f@<8%HZ{`E-7x&E6pU&$EKv(Vh~@NiPOIp zX#NddZz2r#^7J2%%@u*(mB;I4GZG!6mtK@ukdc{OOrGCe$hOWP9%eI2P?+}a)a&i+jztnXj)N_R`lbmf7S!|MjvxBH@vi99N&rz4)`i z#JDs&hw)x^$EM)7zUgJ#7?(3lOgLi8%r%k2@8X3 zU&xCH6@tbZ#G?fCW2B;l5$yh^Zh@zKK)3VYb-xgjMMbH_`K3k4sRR-aBa;ZQTtco( zVU;APE=2_xHEV!3s&?cG3sjRL0H~UVX~(En(TxFVgSi4!yCJ|AAQNT`W?hGF4sv}0 zs@o92juDGFXf++WX&~J&SApsv1bBkYG~6{3y1~fR1E>Z<0DGW)7~aJ&7)O1CZVkv- znEOF>4Fc>T#v06;2i*eXavxOFAb>nG5&nQ%fW6*9w+&=E%sZgE1OZl)VjD`$f^G+L zu@0(95I~TH1RsIyz^GTy?E;w%^AD(^K!AB9+J&XsK(`FJI0RJ_2*Arqn#T~9;ixpw ztp-^I^CzghMF4v?ELLMLebEg?E*?RpEdop8mz)345S!@5X_xt_4_nx($`F!?EQ5FUk7YY#(5ef=Q`0Mw3AwnTR85x`CJ6gS9 zQB#G3f>zWz!-j!Ults8Z7wX=>&s6+N0n8r+to3coO^h90{6|QBfDPS`6;)z+!8B9J zk8qY!@*`@LEYoFZ5A@?t7l{m&Eea8OU_my?54fGw^X7%dy&5~w>G~;%ab(5z+Yh{t za08=4IK3QJ2iW|jK+j+F^@}U_T5~N5YCgFNC>=)4#kp(rkZ4%Q;A^9vU%!9dDAo^+ zTAABe8tK2#|Gmfrzf!WcHFC5v{!j8%>^i{EgglE3BN!~l9L_R4JUDzNKR8%jZBVfy zH7E<{e=k>9f$dXy9DU?~au}*o`f61CScaq2r~+}TeXv%!gRVF}Ml(?h()AIxZUU)O zna(Qi-oKs;oZQW&#@DFre;b$TS54aK8(Qj{8tduX7}?vJ8@c>me%Aj}%$7FR z-*1cora`2EOI!DONGLTMOD?@2NACa6)k&3ujQ=$g?%(EO_+QMK4Q;LMY#oe$FCWi8 zvS8Kwx7lCCl)eA&m?A8^f_3*>AL0G$F}6envygv{O8U2Pnf^&H%#P;2mze9Hy0Gdw zn*U|qM?d9NE9b=dSLFEfRUXQ(aVh>bGWS1hhS}6!-_Fe3(Bb#8i~Y78tKK)~KirBi zpsRC zuB&>Z+XIKwfrWj4SwQBKIIql0d^aVx@i9O0k7EYQ7De^_09q**P$-k|>G_4G~(wb)>!yXi$W3QF2qu@q5w z2BzVFxn@ga4=TWv-w7v;XUNTiVj)iwI;7gZmS@i9E$LL9g;nqAvf-1Jh~y!>al-&# zkV*4fqcoc-&qlR6eOtR?3*4&-&J`5BV#h`<>q}WiSH1C5U=^)hJDZeKE!+_{@&b`P zC9n?PBW^zxU$*{q1^ZNB@4RLF8C>RSO)^*E<`@qN8){c|$POFvgJHv1qI}xH39AV7 zkI->t_3OE8b^Qq&$z_6*I$dn6d(p;kY0|9SC*O%f8yCh+!)60kYqk9+3S^YxT&QXp zjZyB$6c}8gRd*xrdm<+*BB&z1^^XU>FJ+J>-YoeN)E&K&TxAy9 zO0gR`_1moMzC|~DEmarfr((%#w`f>jq*89EmP2#s*?)>j_P$OlmW%gxCj=Ou@CdJR z#+;Yypb6X94%4%!_N|w-S zi%Cd-ET+7+ykk(=+C_NisvQ}H25Ea0K4>5d#k%Ynx@Z0%SHtj84I`|<+8esE)ZJ2p zlF^eo=E{=2B>D2EPA_mdn*);lL*-*BMe701{FdC2Cqv@Gc#tr@KpFij#2mS5ZChi{ z(b%93KeqCWtgFsq-t}dvZ1+w(t?V)x(MGA&5WD_fm zf|Fw!jHc{L{NpU&%1tFXgj1is&Sam=`>clIKb&B@y57j>R};Nq7F7IPxIL7Sg-iAF z<@RiluttrV>x>FGhkMtL9>?lg=p%KKt`1va6hvsgMb)3q%#pEAN~-mU{j6LTU~%rHnB1C6b0Q{1qL8$YL- z)nK}GmV78MctFO0x1hA}q>LHltSSJbu0AZR7pjoK9axN?j#)95a9>8L)}*mYr*h{2 zleTi2h_WgO6Fcrr2}u@UymXkCvF_tLwI*Ek$RnwGK7OUK52sD?BA$3B_GpHVu$YD? zh##@yKsDDPjD+yakL5q8Ck7C5=1``(VH;2BBPrUa#;qlF^xboH;ihRkh%CU;E!B+p z=+Rdg370kSc8iLsCsrevcwS~=aucT4XB43f`f&#z%n9I=rc^OMI{b0HW!&d_2{ATd ztlaG#t@s@ic{O3!(wBKg7j&Q+ZMCUzQhiX>eTifah%Rt%{WUT^g>IXEPbZ|IE9(;KPC1kH!F8&{OrhYCH+|esrPW0eM|a z-^R8#=gl0(k>2h!nbtp4MY$IqI8FZ|&J9#h=|D1|gy{xZ<%t|HNhm^5oF0^?7F&T^ z3gr}Lt&`j0&t({R=drnD8u8ZZLN2E{{SZK_2tG_9Y*L2#bZ+}kWVy2jO$s9W@;Mj~brHAxA z@N{6yW&~Im=}ualY<^Z(orn)vl3`1At}x2;vpl!Z>DAakGBLt_!aG9w3|Vo5=p+1l z23_6#hK$rTQoWwW_V))_kt9tT?PSR4^e&x3ftsdt1vV|Rb}=4OK+m+ut?P@7%X8gs zCcwD}oGm^pK?h8Tw@~Q;l{kg^evpsnwT<{v_D4XsV759xf(1)D)_k*vx*eJq)`Y-~ zPts9^mZ9#bEOLv;jD4)aQszfzh6`uFWh34fejoFZ@-d&BHkY^Xm+Cjf@`%{iZ?W0V zlkW{{--CRHJ`9I)EzcWl7X0`Mdx-J42Td#mL! zA$;DVtgB(rhYx~vAhwgS7j^Ji&N2|;n=&D><;LZ*tUsbo4<3&+O?W-2CtY1oMr@jPBQ)ZZcaJR8=QHB&0ieKx3is zPGH=@SnL?!BJkk?8Gj zL3JJA9fhl<*kT@xZD8G*#omK*r)xoS(BQl8?Wfj z4z%0fmFBFvH=Zw2wiq9T0ZtDdx4$cXLzHQVf6u`AAp2SCyEkaZRo9w6i+z&ihVF76 z4_6-R8l01}(E1gMUc(a7$?`@OT&gcOKa+cNc>WYQHenyiTbe!vyJI}}UW+N50Fzx| znO^ZCV50GrTfXAnY{M}r;Te+lMjbPM*B-*ENU$t-3k#DY0?OxA3|%@xwuheA#>>Li z>^GQ%EG&4dvSJS8vmKLbq$(BewGL)M8iw%hwPosGPC3pFW*z4Gv1~w+Y)maXv*REr z!^(-!a?sWsMVkv?dfvr$!unb{;3Oy$iSQj{3$z?!J*rM4)Ccm@#aITu=WhKM3 zCD!9!3cy)Jp0R2WAtBl8AQFjc-?oKjxV07b-QAl+&b_n|#7~fgwSF-JK7d8JffTpikQIsHy!F!y7oTsY)lo@W~)VZ&H!o{`w@T#8soFFZ&v8Rw|@b>0vH3`IHR6 zhevil0k%BmBN9>?ETYMKBmF2R6wddp8lsqKG7MWq0d5q^5f(UoK3lK44=;jM#RT#5 zr{3~gte&5^Y;wPzQxj@Xt=OGzo9(2K>qpisGZHi0!q>jSDxDV}=FgSiT@fq_Q*`hm z(JBxU5NUoho+zBsi{uo6Z=m{|lOWqo;wU=lQy|>Vbt&i7^``4AZ8)(n*>#+cxBW5A zxdv@({9JUpj}z6%?uJ54Vm=oQAW<6LSK#KUu^<=2%KaJF8)oZ{Ad^;YKyLTWi=0z( zQ1u?~F$RoUN{N@mf zB5o_Naod>bPa94%8t#d1$tV&p0r(a{48g{h&B-kotqDYJ5w%qxm;9ci8ov325m5=r z%v8_s4@d5K)N_EAvanAu#xDC*wMty(rNRi>bf=)`u7|qGv4S~$H{fO*$_4+vvw%3U zAkO$Xu<*d)c^K8LP6pN?JT-aS`*9_>EUz1sq=HK_>SKn!SH3nkp-G#KQHd`j-+qvZ zy2WPNA0VE6USkHHEAqm*jRh-OB}28!l=lg-^m@yq1karlfEUYUo0lR#hGJjm!M4)2 z+xD(Tt+rJ9{HyUS%p)1~)c!+JBf>q+g$ADDl+F6SI&MIB{b@oinyt%$fCawG@= z+Dz?}3g_zJdkNnfrRYxe7fq#hz0-(20TnqbK_@7BMrgGGKA_OC z=~h8I2iV3ryUH9_mFrt`W|RlRA3Mt5q}7wG9>ZTXa9_L1Go%N<4WzntKD-n(drXyk z6V}lz+;p2m9<_2y+wMI;axKsBK{{6xa_cYzfxc-yR988=#y2NX_D#Kg_*sWrY=pO{ zhJYEx0F=G!gm0*2?H-8SZG(kgZ>zbA&2wgE&b=2W7;{0X8Zfk6YjZ)^xAe&d54q;mS&R&XFMs)E^PtzDllHI z(H1ywp1T$lcqy)k_lumg zpql_P7a3vw2jIL z&#n4U#;A++Wvf<)-TIBR#!Z~-VhV8oR{uEN(RQ)I#uRrPd0ClH%XWZ#KH7|b-hc=_ zOZAAeg%c~@4qxN$gbm^h|K!f}NNM!}rT48#woX!VLpFZ|M?P1#l zN%tHNPj;YNGCbU_nGQ$ur)6GGspx(}KM+Lo#&dU~6aJX-t>_3zZS}Yi&|z+F82t^- z%QKocwiVCf%JJ{C8|Gyr#x7+Ja*W+h&mc?P z^3BFG;%Bek`3YFA!Uy{$$YF0V+quk`2=~_MUz@=phxXM;rT!ey`fi#z26Tz;PeZnOjt6p+)3AEDCTkD2=PRS!qFhd~eA z6K;mg7N)gIdT=in%_KMd!4;z!jbi8W2GkWfR8XDK#%VPQ2uBzy2WAVB+ zm&uwrN7uRa28QQbE;^}pdZ&N>vPF2alY15w!y2pe5tMzPW#g4(y|%_ zyS(l;?{XoAn`jr)d4%sAyWCI%_5%7x)o?a(M*N5^S2!rw4Cy~;q9`1AHZ^CF`N=lj zTDRz}uz5iS-O!I$10Ffz_v28rI8mUezIGEwFuXrnNGLCm+Yp^wrm?tX(9z@0YuBav zSo4$b_Vn{P4ZA%o*_O4U0GxwvX?WU2So|Q&lVjP3^~jNt^dVghNhPGzqiZaW+9i6A zbOdX*6_*z`LE)w!Qa=WNZXDTm?5O`Tf?jdPOirWvq0m$Wf)($x+i$AbTV3my3lZhH zwfc2-FVZcoFU`IJ9$|Imq2p?Cl1VHu@p z;RO~`>0P%e^@lFKJqsR`m{OaflAa6xXRU)mNoE-vDm45lBA`Gy0eO3{yA-)=0O95k zHs&G~6|b^L8l7hl$-ND)EQn7ez+P^qH(y(NiTgMV4AJ>wssRaRYG7CW zTrh1-0N5ChBNu{3YYTAI1}h!rRqZkG=C8YD?1<9}W;0x+RHf5jl!bUJT%-e7yUO;NEf$1(8hgVTqaS%`tMohP7(`N-F&ODU3&y1(yW;sbg@`Pwwb|yH zzPe^cz7XZyj8IOb@($MV4t?V-Mf>p0*299+s6)Ac<7A>DrabgaMSe+mtbzm}MAR1} zneVVDQB=TU-8=vxtsp!y#-8R-y4vTu2AI*7YRWnQgdI+72D2b~jWSZU8k|z5KZVy7 zelR=pUYZ^GT$N8-G_PFXqkSMOIaP%f`sgyEW)!WYD1#B+ zORl3whbJ^mFWd5fVmDw$iHir|$A}(_kcB1eZC!%vN?@3z7xYV(kSINN$*d@NR~gCr zSrrg9swbBNX+2YbElLZui>RIC{u$g7UK7AYcAp!cuQuU|C+BFxwFmhi{MgxwZRpA} zl0{{Rul;?Xu!q}NQe-SFr=k2|=d(z3+DSkQ9Q;hS@iylYtlyJ-ylqrHR1JjE>ZUb# zSK;@-bxIGs59OoM52-mkQlDzl886z7jH?4p&VAA<8J@sI!i1&0?J9%5$dhoGL`*Ng zf6_tOG*KjeNXerd%5vnvn-8w5No2f`;$X=*FALbbuutZ zII&!0N*qnnw!Exo_Yi?7!UV;+; z?un$@6QxfXiV2L7x(yZ6)p?l*dY`?CbMkpVMS7J(C7SP#nVnGKMaf8cN*N!cXVfim zj1Y_Q1-u|VzB#sg?nZb>uhL0u@#z!87~&ZH7~$BXF(gvKm#YeH9`iI~fShqD)5u|} zR8jUQs89FCq;o>0;v<=<RqtQse|V>0ts$*9CxLrLHE>#8iBL_{fep^HdNUGMYmPmM zi2U-N`F+rsF!3NPa8-&OiT@;Cv_<^=7t}Ar{KqK{5xghU`J+l$p}E8ev#DROR%B17`oJ@?4W%mP58ba@K_nIm=PRW~rheR;k{0^t zGsTf1o9F8Xp&eM{6J|#~96Zy!S+y=?`rUAW^``+9Z2Q6;>Ws5SKVzjWvJDiL%qg1TREcHX5#<0}3 zPJ5F4k-BNPK|{n>PlYWTpZHuyV~5sC>J3N;yJnLqmOO~A$c?Jp(kxBUX*B`8~SC&Xr${NDnzy0h3l`_u^v z-9^5Hmlc)NCDJ}2Y1CS1fWjq~;{<+8^=)x=333!I>{hTtrOs?3Tg<5QZ~-&EX{uHp z#hHG}Jl~AoxTK%n=|eYL7MAHNzFa>zm&a{;HIm*|wEXy*rwO+n9W?PdWRmYOs?ZtJ zRt5jtJ<$*G9F02_I7DcN)7{`GiZZoU+Tr(HTWU%dLcC0?i1jVmA&(w@77d;~eR_4@ zt%yI&fhAtEgCBynWB7!oD9n;asA~M4>JSjRbw{CLYiC zyjs;ioi64+^0Twg(0g}OJG8S<9hJd6Z#{`iH>i6cc2pv924NM(Yqi%T2^WZYE9Cg) zUgR5BjF41HGEFa>R|@LyD&5X-mzxOi(E0W4H$}Nx14u)AVU9B7DHwuYy?@w(UW(W9 z7L%VtW`v-hU>&7@a%N@+smlV#y`jzTLHGM{UP{DP{n3F>Z`ff@oE}=`4%#T8NpQxj zN#StSpDMt!)4*v_ijTd^lZKx{?ORErCEkP!gKPn6Mx&;rThgM{#dT0%F&{=_8)TMA z?gB+7bYmJN;A6d{mOGItVq4gaNOOr3Bh6mQF>C{jJ=H!3%Od(8I$D36`@uC)!Xt&!G9xT9+P7-hTrH@ej5nhMdp#yBMQ!^wUNG9v0znN;+ z>ZD0rjRS#F2qzNPVKPLW;xd%#Nl)+tpVEgb)3ET7pQn&lvl!L{lCCQCz9S_gqmobT zf}h0Owd{G8lW>1m+<)FbDj0P?qJKW;VpmBuneHfYYXaXxM_apcj!Rkis4B{}#=zus zQO%3RU$eZcD##e8M8SaAK+E^U`vpGOCvncbSp2eKV!L1}hJzY=fI3cLSce@2NzerU zY?0xn3aH%Tqr*0UTpqQ(xk`KqlDfWEuYXEY%YzkR6$+W04=I$hp<|7FY{IpiFCV?n zVPf0iZ8M1-?_i>*Jn0D(5sVv2e{&*a0272pGu_Et>Nx?Iyf@YZ2U&fBKh*w8uP5O- ziF(7i+dLdc<1@=Df6?iVOd6ARIXW({DPve}8gI550fTbnNRcv9 z#yR9U$jW#%Zf*hhr$Q$JIicK`R00#d3W>yw5X}{393cU;JOT5tW5zjvU>)IIhB2<3 zZ7JS@jC8LY;hg?Kv@TThMA6*`W7Y*(COQ(0Cp<>T&X}m8^J)OOTZ9j1k(UH{D|$%d zTaq0wk`;PyHRJ~L5Gn4bUQyglzjMJhOcZ!1C?(Xtn||cK8btQCwlDPl&4K*he53iV zvaEW47+$MCARo~G0s(wOG1tECB|v>`|8F)EuzxVJH+Hafv^O;VFE9C_@8N#sM}7pI zz7b4!pwl1gPuP>9>>n@xkt@2xoW9o`L-p3eN`J^Uu~XC&!o zogcZMI|S)_aYFw>=O-ZPXSKVlzjbxT3VpAcU#a~yIrOvej~LG#DfGQKzxw?t?w^GJ zf*bnT=1%ro|94E#_p1C~Z2n9L{cP|fpL0h9eJ@;?{~^bJ41UcA{p@z9{w>ZO^Ygtj z{)yWk2%w)me#CF?h@bBT5Bm=i-Ff_p|M}VLPWxM)JD}%##r#9BU*J7IoBg;qdA9@k zz3##NvtZxN{sQj#+4{$I$RDj0zH)5;_1FIGSMv3qez*RMt*-KX{}0$sH3|R# literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-commonMain-22Ga_g.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-commonMain-22Ga_g.klib new file mode 100644 index 0000000000000000000000000000000000000000..2cdb9d0209cd9e2242c74808a37eb9f62b8ff497 GIT binary patch literal 41036 zcmb@u1F$W@mae;O+qP}n)?T)4+qS)zy_ap89`^4?@UPWa^&d7@Kk1sPK zE9a<@r63Iqf&u^m0RaF2Ao#cZj{^b#62RER)WF5snO;=|6aY{`^92bQKtUS(ANK+P z{rjB?|EU3l|H*)jfvtt9iIekx7?O=5fg1EjA-GmZmm!{d zlZyAe$0MAH7`pQxK8oa?i0l0I(erQl&wWJvpM12ou(dKaa5nhYXwm;~mTc^dU93(1 z1Ns2z59QP%tz4?>9g_c_M}I1)`zYn=;5pGp zDduXDI*9WCm}aFx(%)$r>WP}kY3W9!Vd9d47La&v`-$V(Dm-c^ha{;*N9aeIV+SgU z+3DE{n%1OIGZ~!jMGN;2QrQ^UyM)KVh=y{jLNNa}fJKAFoFRWZ#tZPDbq>-04awfX z$jZRXM9;w1*wN0y*!^GYEr$Om(+vNiLT6=b^FO-L5Wz6s(7ku)H8P5rk-nIMpSc+5 z-?#>dilET`a-sawL8tnE5vMbc8Q3Cq&TW{YAz3r?|BL6<_FFEdDiO*8i#sgPx1Uf6B}8zwxTpvLOE(a@y+wJKRsi{@j+18>#quQWK&8|Uv5=G2YSFS>P7{ycX%%X+YI9>Z|h%gG=n6ft7 zEGlRzB2aa2uRy6lA6E6D*f8Yd{UL?w1>QJ{7!4k_LbKC@M{7DZx#8eOlTbj*3Twily_$s7)>+pOBwl4wmzi=3IFy=05!d)ril~6Vr*%Pp(3w)XzDd-k zUPY{?Nll!F>h%DiqhEJ=L-Rd`!u!LJY*!6mW+%vXtxCfY)k?KtY>S}JTzN-`?o{k8 z8il5Mb?ccTyd3Lt8gwoeUUm!J4wr4pgOS>wOxmg-k8|7^r|wBCdM#lNT|ArysuY?s z&+GR{)E6kM8=VfOTza(%HMWrf6RXa6-1_O!AfE%AnwqcWA2TSkIq>RMRy7$_!xuJ*>{hE}^yg`fz^l}J?#vUPP=Vh!O| zr44iJoF1AgNK^uts3aO{i*XnP38AG#mKpu_RQf~xP+{r5`36xOCG(?I4Ox4$i&lEQ zreTiK5CxDYyo10bx>pVKPs?j;su+3uZEile93*NZ3hrFoadmQc_mo{ZXaXWcEo}yU zjP+SEJX9hoz@Rm4IG16ci>Nm$cv#eX;jC~c^K#hpCdYsaeXLH@ij~SFCo|Drq7kUp z{7=+BHU7J-9p+0xhM=`eqE>h;j4>9lY2yyJ2w7Ck2~87yBxplh!$_lv-2z^%^ZT3| z-ZQA6C#ltz)!M;=IUSgv$a(R{8BuoG;R8Z3QI?R}WzhRZYA%h*z@E)m=&;mxG!n)$ zlJeeL=G}$oF-ufSuVU2QV_3Dr4M$4V>BM8~$5CtdA~@vep^c1s{+yS4-+@hQRQAfW zj2Kq@ia;4D6REU%Q%?_Uad-MV$A6Z7F{tYy{+u5aJJ?3AQ2jO}Q>5&Ky$daef~1m@ zfev(m1C-ouJ5{j0a9&rUUGlorZz7qZHG?&?3ORS2ZS!O3z?_^c>kYFmA2aB-HN*+6 z>(szLAl$%q!soKVqf2Rjs}&zcGI~TNV=4#m}u+(Z_^e zE10(ADI^R_QdM7{qPa#zd|*4GSTgap8QxT=QU#}xqEyXe{FGMT`t3a+aKJ~iC+lLu zNTZd2JAqDCSL7dgNNtV9Zf#jf3_UCGwAxh*VC`PJk)AWmTX98HXFQ@w{kvF`5Iqc2 zC<}MIe>n3XOn$Dal*S)qyp^Kc|07JnDqDJ_fr>j8$bTRLRt_ahY@*ok8;H8a^uU7y zyL-3pvMuo4Q^+{vlkEj-|He5niA?A~;>rP^_B?a9yu1ZA3jxy0|Sw>J~8 zJKA{QXDpM1{4L_oWpJWdtIUQJYOqK`OD`Hk1KLg^Dfr?5@I}1|40NWzOEImQTt2F8 z`*KX#p5FQnH^*oU>V-PJPK)D|rEL|iMuY2HZ#(mwj58pKed<2ZCUO-K#`xs71(aqd zT&hrdWOVXqYrck#0mg#D%1*(R@_OB(JWFXzbMEr_dIlDEf(m{*~ThNl( z2m@58w>zos{x7Y2P6*^r>fY>1@1T}y1v}P`F(Bk=+o`yv;e90s2g|UBJ&sS&yF2S* zAUSllXh$@W`j=Qd+erTgGa4=2E6n&Rw9!3sKY^BNwjctZG49Epv!#UbY3cuP#6bHGutr`#Sx9 zCqhxfZnUA|)2NbDXTYA&D>FCnqBkGsxA{Q&UXVe?u(}O4&CdD#e)F*-r->H0Uuw1~ z^-rhv-P+|P4XDtU@P@OB)cj0PjM{`3g`u}MN)Y(|pb!T1SXh|x_d}lZtqr}Q(kQ56 zEA5h-&agHBn@m;hh?OARf|xMikewzRdK5*BrhV~$8c~Cf8sWSqjxIr7%+3bRm?eHi z04jx3K9rW5c|828?4bVK}=K%AeM=%{wmiT@{uUSsJ)$flfrwZ50;hG zQ>3azyq|KUK*&>h5T>Jyo=P-qmM2qokU`PKvinh5JEt=|KX^?z{40vV>hGb zsZ;U(!k$3zbM({nt`E7Jqp_Cxy{2seO=7hVeRr%-PO}fOUX{w}PN6<+i};<`3uUYT zK<8A(ur{qw0K#g$Qb6&pJ~b2nFXibt0Wr1R;rwwGBD|h0l_#v!fckb)J1;iC) zR7h1?DCdu+Nz;v8kVST1q|SPXkl~pngW1iI`z$$zV&+uBWewXxzC{%KXns-ZfBODD)LKuYD0s zAnH#z4jXHZHjwqS{8bhTZ)v1s$Ciw|Cn!jUPebz;U3mk=|ETatNzNgQdqpT8CytM%P>i8) z0q#*Jv$mTI$&C?f=!M7Yy%tjGCA@4!u{7zx@zca?E?v$9701>uJjc9aLaI4 zYHJ3m#R#HxX}tPxRJ>&F046(948wNKHLS)8RSdXAdH~}T@Vj>KWP~k>QgeG2cn=en zD?#pAy&R&%x6fIw(RC^gzU@D@mR#sm#jlw!9s14-#LiZIwFb}5UEc72mT_xoBR4!& zC$@&P9P;CvG=(GzEV$rm$;GVC=2*55Fei8RAK=Er&%1EjBLq*yvd>=N;D2vW#XhPT ztg|gwsD;cVvJw;|q-58>oqIaH9}7CHx20hJYKOzDap1>WQQtgydRDZrqI)6F3s^B& zBh>!nley-cQKvAP66BIMU@HDV-R3+h0I1*X8j4_z_eHHgaJE$oS!|z&hLlMXDspq! zYMMQQVTU@(^apaj0eCa$DNKJ#Bh=n8mbJ&dF$XfSg4x7orz+k%$E@pY12p$&RaoyQ zUbT(s&x9WAa|xf<6PJ)pGTMmEalD|smU|tly1u3eIQJa;twj1z*qXSOVzv^&{q(Ek zBcI9F7S4`dY8M3D>fiu$)#3a)?-;)GP~y1fkQ2D)P#?y1XoqbTltm z9c(Cwx>#$3SknZY37J)g#G@0+>hjUMIF)vl3>lLSw(nf++Y|+~h0$|8zYgst1?o!m zdP6w6!lF`p&Yfw2Bx*6kH*D}?idh6Y2<))E14WvIgN!TC#zxs!n~tP_5Kl~S+4RgE z*zxPVY4MOstZkqU-=^Mi-*#z5ub&&rJ3a|FY%Wr9juUlx$-r|@zI!yLKE$m}VE`jh zI;SQ)J`{Y8k7sK4#^gEF`!sl#j=t+lfApp0SfBS($wtrc^8#cLQNFQF_9JZu!S-SG zq#!$N+f#wGT3*oM9Zm_0OFdKv<5(6|op*wQ+DQ-kQ#w8K7wu9`n^5Rck=s?x3D0$l z9v+H%^_honaI*R`?++5F0<9u7I@;>XEb|2(Lm8Aay|~T@-M%)nnSCDPfbnfw2G-}2 zOb$5A)}za`zY>41FEapxZ%~fLhFvHCvy7Zd9%f0ct=M6U%px<=G{Rn8i(`_TqzJAB8sJohnKUF7<18v4^i0;bEt(#!!xxsfEvg=? zLw1TcZGasDZ+ZiyRu#ZB!d>uPN3hqsW7I+d6J1LGgQ*tCU6BVWu}xj!dN6~-8x@%v zWd9xSG$31j$K)XY=gb?lN8JbBim?xny1`CK)U7Ii_;N0M)n0OxTMJNcHJ3+F(YJb_ zZX&Uw480-5YQ`H>P^-z>N~|4K*6uJ?u&Enr(>Ta-v-ri*EPkXi+Zu4^pts;MHuLWm z%O7&?1azuRP!dWWD|RRFLjCs_9H#U7wwZwViyR1a*RR*NNFZ&Z3= zq1@xh%$mtcZ-7UQlimb}zM!FA3(3NMNdG!vc#kUjRsnRa+`EEun_ux644`ZAt>N62 zF-f4GO+O{b?neqmR|na%Tx8!Pyti%mt$Vj#DY^090Q4;m_*2QXT_U|}2-rEaSwoRV zoS)TUkE=U8*>dpWXsTQ7G|(CdX$6B}CJi|A=g6al?#P3Fd2?v;<*fejEAlDKxx9J< zAsjP~;iYhv4f{#4!n#oP6QgX*n5+3QDzXdW`79WB^GfdQeZ$V@tsmm%s{n z-~#&HaAB(lSH2mEW~XQdft(livWAH*z|}-q0u?^CiLt+NQuu ztkF3ciNrPwVlH?clyc{{U%2SDG`HA;_+p!?ZjKpBpBpwHAPonfIDnjsBsnC?WK4^?t$Q?7m7N4Qu zc7lzLki$t&AvPiK2DD~FXdj0U6WaGj3)D}IhT0fgBi2nV^liFIOUDEjgN2}G>X&bj ztO3-sOdm%RjtMfTh=Doa16x5zFr$i<_K}6^`8bTS$@LV0`kU%wVr2OPfpC^g6_Cvj zByJx%ewdf&=MR>PIz|i9Ho5G##ApsdT*o(Nh**)fO3#}j!lJ9CbS#?0J7T+d-7$C!Uem|hu#$In7|G0#nr##PEWQXhe^cwq$_VnE@Gfi zi3H);ZjB}}m!3g5zJ2HAv84Ia(VlR%Hzme}#zq$nYH*>Q=}Dh;xYBUVxMrVGxkqD; z5z323O(*Z;zoyLxp&iShHrO7crSK?$zsy1ELY>rW1NC~Fyw#QG(vt-l=f?qhXw{bk z-sj_&El3jCD=r}aT=Zd(>oCtxM#k%(Bv;_0L45aP+px@R zpIQ3i*vVqF4_+e>XiGz|9X$V>$);P~YGrS09LND5PIL!s^ae;&Um-oy`{tOn@(+?U zdU;TXMnC>QJhi~)jcHw<{0hGJwE-kt-iHR!rHHh^)y^ni@GG|1 z2Y_@B9@Wy*H-WUsOUH||_Ef0#s>1IZ^9S%~ws$pqfuCst;&cm!hcE?jodHaODO(9J z*gQ^RRIf<>!Cq3n*zR-5vINVdWc-a}SIIX?T$7SFWzm2c<^JC5br!i zRGfH2^KQA3eJ^%jz+Q7edm8rKVx4zR`fp?xnWX*L=XY=vXkTIF1F<@8=7XL1S$WI6 z35o53JGQn?Ge@yOgM(l_aW9+J`EV~?G~2y)X!`mv5j3~U6hm=CIDK2d&csnp+*`oj zJEO>8ddVJiut;zT*LmCyhTXbSAs27}mZKM3xkxBFTC5Up%hC`6bD4cXUg}L4-V;JI zW{+fEu}p!?Y*kE$2sxt?BoXSkO{}9CyO?`s;rs5rnnJ)hR$eS5!3-8@GJSa;bYZ_c z<()*Mp&6!q8O=X4fUX|iV^#UMD7+gByc@T7e*1F~DxO-RRWRPfklO*qTBI3&t-bR~eYwAx^AyublWdcH)h zbsu7e7oLP-xN=vS2=zz`R>kmLisIiD?)1N|3-(;m`Yc8TmOgjPZs-(y{gUIdJ}S%7 zmQ&{ld7D40*$F%Ffh>(GHwUaIsQ$>}Gs4c9f-i~#S9fm^)4d02PvlS>wr?>F5m3-$T0Z5^%6hS`ojqj-B?(!kMLC?qWu+z2SN$zLOQ zKa^(w>j;@4pEOg1?@Wvjbl_JZ*JooY6g?z&_`-#Aem0yfD<=GA)tLVPgM3}(&VB_RV9J_I-;e}0k31Oc7Yax#a$kO9M?(>9 zcR=$Uc{)qUoO7iVl=ko;Q}R~kgaX8`bAsA<=GdzXGn}hHMOwG-kM#XQ)1>$$eGh1n zvxw&1nX)ZyOJMecHpf9?$HCv*bMtH+{TRc4V#+A|6;W%F%BU=iZ^!ig|RAEHHj_nn~w9IkDNbC?7A#} z-&vwK^|Yev(YX}|=PL!yt?u-&Kert1KAk9e`i$^fUuv}BGB3%D*b4L;wV?4>0=F)F zCfus#Aass)Ov_Q7#k?N+scls!rAAKxL`?2H_t!_q$(3~;}i3X@=t@n zD(yL0*kSsrp53APsut{Gd^Pxj`mAs!Jmf?qg|HCx=>7>`_G#hi)XA|$H}i03d#-!s zfpcAVYpvHMt9~&6)o09Y;3;Rtx#cV81n-oG>VSmOz@hIg5!*e$y0!$_rYnE;g2iZR zc4s!p+E(Pa=P!4O8~=!?c5cUJ@+(}M^gH*L=iHsax#h>XJ%M|LmW4Ew5M)!9*NT}) z)tAp2atRSsuS8$gY2hJz4Cvtg4XYEoO)ielMxWe*ByXA409|WV!;NwCgdO7m{p20| z=fM8b1BmFhRInYEn*r#jSi1j#{Efcp`XB~3nJ`Zt>A7kDU96AAr6E{0Qw7;Tc2U9Q z_Sk~EwRfQp^y6YEP?MHd2k#pcQI1oJ7_`K&IHoB#1|+w+std(>M%|9W8& zl@kae-0hJCD*rI%3~cF__&LR*%=arKP=?)XgW}j>jfH26T0)ZR2^*u>r9uVesVwwA zS^VZHe?I9c`+DV*dN6%mf9eHNc~)*O}_Qd7YYg6qz6-Qrh{z zv_=%tku0t$N~A3}mZn-ulxqIZs}(3M-uj zL;|QauMyS@$}pr<8gYQ@acPk&la!c2saId<=ai_Kj++?>2r*!XF+jS@OkjWp>H_nn z8boS@L{!_gCs-tJJ)jsMy#)u$`fPT&wyF^A>lY2WT z>q+goMVmpkMdqmd5$!oM(AxR(1EZW_G-_vG>ZO;urWl5-eOGB(7~i!?_|Tcx1?7u+ z1c`Krq?)59L$Uh3bE&UF05~*4?(G6=s>u_ne z|7KP;Kx%f*`>6W8%$+g2r#k7oF!7!_MQ84r6dRWKSXMUh=}$-bs3Do=yzrTST@JbY zfX914jJjL-8?>gc2g~%-a(KXfK{!py4qeQFb^6)i5$p`}ZTGI#8MYAXF89y1=cUuW z=cOrcKyAM5oPqjp?gj*J+oh`$xczPZ{jTJXy6ze2wz$(X)Mwxc;2YOc_k91Y67__y zPV2j@&dc}hzC$NR9X!68G+&f9B!6#6foTu|JD_-Oz!oa>C@3O;jM7YI7q>M0ot8|# zf`bm~l?>r{oEy3o6ye?9~#>HFKwKHwr zshn><6&h=wJ8le}*z>4bgZt1&mUhx1(zsQJ>)#tXRUc9om+H*pqx|K{RNs_2lSd1l zLN{5YZd>vdw20;9@#0_FWcwYP@G3y%bw!`6B_bq8P15mUhR_Y1D_k%e?@Uu;Jip>)0*0&h98iq*b53gS94Vpm*V7tRL!e2}vt z#sKonZf*E!AWBoPYL`4Lkh|RI7Aqx<7j7BWSv;iK|VDmN^wL45lFZxjgV*aDyH<+y)pHtvr2 zenh)IIE=8b;#cP2*3g-6hIGt2R@YD0E_BgQ#;V&f7Mf(N&z%f(d?c&tI|ivf z>gklrJD!4TYmK*mFYwnxNa0&ih+`?$q)?k(C||Qz;8-Nx|7pK(?-#vMDK*y%Io8*p z$_>79(r{Vr?7{7>^6mZEzOo+o-vR|Y*4LXinG{-0>zl;6q;B^XYaB3fBX9fCM!wop zXDs&Iqbz2(Zq_l?XrF{=n_SR#z>!(Jh^}2A-qJJkUp!gO=BbYjFu@)2Abv{`MV5oYmy|{-{8S(2R{U(I&vth$w z>nZ4nx8srkF-}Pm6@~A}m{MJ$GlM@x@tjVw+Sjq9%QTlKv}Vm) z7O?*tV=if=?HnndRZa4a+xB@vG>oW5dS`(}etaX3Szg5_T$A=&a^Weibb`s_8o8}> ziuUIkfv9kT5za9RUgQjw&oQ!hiA7X9!9aA0E%@79#x-J&WGj<%yICOTeysv?Gmk{O z4f3jZGq#lL7fCp19Ed}_i$^=xJ|paUE3rNejz0XNEz7hcAor?8p?X`QBw>Hx36ilMIU-x5YFA-b6#|bEJ0@qd0T{Lt#kRZ#bGUFt$^|7<1 zV0mhvJMF$`w2+Z@-R^T)W9LvcHQMdtJh#U3*yi$gswTuU1KCQ(-|H#0SG=9vw>RiL z7kgls`~hrJ!4pTgCrY)Cn5{m>`FklTBg02%?s=5%*(TwH3eR{m4EDkX8J-Y1Y2r+~Q9Ab~iwYYJ!$oILa zJv~taiDPNUA)bgPsUzgHL2x`ockKLWyIWi*ZtR%m#vjR~swZ-9;U-y!4%{d%Qb%MW z#fZ%SiL`o%OLCfoj=CaIB6tEOWgN<_((9Cgd(wlxPCYd{>KwNeyPRVk6Wh#{lv z_{+I}48J9HzM{U!T~3rZSKW=bkGsG>?z(UKd<*4)F0Qi?F2uxsY$EdHTn2xFrR&JG z19=0~9+bK4eT1aYtde2Ge^B!7U~aO{e@qa68V0=Hp!n>b6S_skpK!Wf(+~TN^uE?t z8fm#ZJ4hGYEWbMg<`PEFtFy?b{T@KkyIDWmb1pAi{y5bbj_6FO>5kNxbgVs9U4S)H zEqfAw@c$#{`G6|ln4bawz{mTarS<-68HRekT}SoU=>e+gusj`|ELORV zJcSuYfhX%B3nZy-(x@vf5|fpwz#YbjQ{bpheSai^sVh~p8bO!O{GHh_iRVn%?Jt=u zwzPB!9aLVz(tzjbQEXbgM``GPEi~iX8%1Xj zhgd+2kvLG28*jR3$5lRExlMdj#ySl;S1h+0 zy>~;*C7P*4x^9yrE|U2mFBkrD31npM={#&(atwIbFrzm0Nc9*rl?z#J&7jw8c*aGu z$e|KGJSOmEPCfhkQqRcqssL|&RY6|1J$DFPpt30I$;Q+*5--V?v)5p~!i1XuYk_yN z4zGa01~lL(AkL#%UxyIA-&EsSiIG5ubAj2R-Vv$b4)cLU`BAcC(O^Ht-m+cr-Co0mB_52oxbOKR~Okz51Cg@8t!zAQ9;Y!-WLE5F8Z!|q7(Uv-aOdqsXf-3JPD{dmBH0*&Ci^WaDUT87Co zH&tTA@A+0C2R$%7?%g$M*EQ#GHf*&jHnk23?|RK)sD>IS<*l8u)lx1F+>kI@y<38$igfbc6g#9gUcSR>>NYr(Ivt}f$ zg$O9sqR6Hauc~nBy;uG&7AQSLDjiIg1t|wLP;^QG%y1$)xY^+_24it#pvK_*(Gp5Rkn1V`WXvGGY zM21>2-nkvz!%NRNh3lZ9#@5RFD@Ini)5Vrrma~TvSgrkPA2`DnNDPIK_+-~jU`^o$ zSce~h<}Fj8i_8ivxkHYLSwpo?@v)I5uye1ltk(hN$H?zMTY;wvb1;No0;)mcrR|Z3 z*ry?f_0nEw81R<&)|XGYz$;x>$AGq-&7ZTEvSe)^HekRUnt0S2JE+X!6n=RHKZ8wt zZQfr>aq2y8GHv=mfuqUwrX&_kPYpOh-q0^=zN9^iZUFAsdw3U4CX|iL<%(+Xp3Se0 zqtuwF>kMf+-{~e!E;UH3z-Sj-hGr@IB~dm5wzjnrE3Owg6Dz7o*a0u#Ywd}9fcTIo zGSA$!vO(9*km0$w12uA5U;WO_=Mih-OjQpUV6vwc(Rvgy<8Zn|urZs5+z8_sc&kbm z`9+`;tE_nOs>?T)p(X5u74WTs!nt$2$&w> z%2&r1@d#mXE@Vv<4PlhJA3{5=5<2z@y}ExpQdVNSO28b)RhnGx3Jd#)Bcj1cKX%D) zJ~d1V!r^XG*?aU5B)`du(8Ts$0TTX9n;D$mmlK&e;0Ol=8X9U}C8IIzlBolAR~ekb zR~$j5ufj>$2#C|jZWYUA@N{OT zz6?8~y<42%mgewFtbox_iWH(8ED|$FV9;bM21n-|w6+#Zo`>$6~OzTP5{q){D8 zaM7qO(xfCsged*ff?#3^mRz2#Yf!?SCT~Ja>MH9BU z`T_DyMxExKp+_o%@E~PLL06`zMQ|!aEyf_E?w6>0)ZMzdde3YuXph4e;#8MRS{>BSsgvV;%zD;b zGoH|$8mxb~r;gEGB92UrmSS4#;_-gzfx%rb2{qg}^tA6r5yy!7EVp-AraYjn(STMl z3HO;_uW41%J+VKF?8*%g_hX02=nw8mi6Yzykoi~nq9?^F>vvz1ro&+2g^mro8NPHc z=ugx2bu-~^dMYp_Erp(x`eIyL#qggPKOdLumK>RANR6gJpBWl4%lc3RnRuXEz{-pg zHJHjmyX5;0us>Z zz^L$dDQL7y*wceq0(XJ5VV{~5nxT~edWK+JQ3X?a#^k?*J3K>i(CzXO_Q>^80+xbq z((A+RnR-GPwD@a*Y*Oxe0w12+qLPZ zSMKHM=d*OrgLv}-82%eJBVZD}*_Vjsn?#J^>rbHY zp%Tf3OMnj%EKgBR_=BkJjkhoCvQp%TC^-hr9=;uDXZ z=iifv{QfoimKFcdQgF{74E%{K4tClToc#ln@B^FBB6LWnN^qkrN^=dJ0Irho7S{h( z(Z44jJX)$s_^uu9jTiqI#l5hlvauy*^p5vBeRgI&fytD-tuVq<1%DYURCN5PNVh5W z0lwzT%Y+fs#o42!C~#5ci|cK-R67%keU6zZVOLDXfc9wdiuQ=f@~4a(k?!oHfjyh> zq&QBxn2gch=1brijQE+WO$J-qA~Pv4rzTCQT}{qr0m%r{h9_m7svNHR%ag1Pw+GMs zy$qA#<71XDPh4sSQhohY@{7P*{vyo2)9uU&VyAkh_UgF8F%|drI%n+mA*;8>;jFu4i4@MIPpp9eF$W@zix zIOY&}igzWB5t4>mO14XCmqK-H(b}a5zUtm>NKwr946ZpdR2}eJPEmSOJ0vXb)02#0 z^j2oQ!(C|{?>0K3jZ<}$YiF!pb;?F7x>{&~NaSoRNFso%}7yvKEIQP2Y+8 zryXoh+{^5hY)hSA;5g2DV^^LmlyEWGts;cH8_I+5BxX0mn)Q%<2+dmg_1n9Oj(iaN$tF7>b z_#Qo;F#NN)Fi-5T7R3iNp-1hJ8^J?)ZU;0rSA-pY8PmAGNBME^#o``={p}_4+m@z} zmes53y}r>n+E3;2h2VY$3WxSd9JX>s=9X5}?`G{7o;_pdL2k0AYfbi1?`S!8-cR{a zwRzAD%gst-8gAat?DI$Au><7~F~BGKMw;UL4pg?6fNz$~BgGd!=rpJQj^d*ihPLY7 zERcH(RH-r>FO};SGE@WR9${SlP-k2M#tlT5xah)-`qRg+9WT`{K(N16a7=H7C49qM zLe(FDTrur0169BDKlqAI;uyi3eL-hIRMCig)aZNE5!dzg18R)i3{;3TM zu#an|d&(~TCz&A+zaQNBm>Oo-q4QFCTNcn4HK%+PL(WSrY^sQOejDF_RIBpzb)1c) z$E2xnxWx@18D!Kj#+k$k2G_B?%%-UtP=3&0mxR3hv{JwlY?iOENv&&ld3u23M>mYJnM7%!!T+rFP`>ge%yTvSf!e4JWQkxW@td?SM5 z4vFGP!7t2|Y2+6aQPEWMRi4jK8(`=u)Nh~04EtzkP00MDiutsHmc74ORkCkib(iHn z*uId$Y?4kb_e?s{3-$CX-`aSuOZKdDgw>Y6N5L#N-chkjP|(cIEj2HR0NuJ0J3iV5 zC=*lN(FrHH#|e^jPn)N`f)NM24)@Wuk4fNldF{)(549+@XRgBRN24IO51q!ps{K~p z=RUv90a^j~I-_G~;d&vP>)mwQ_PnT`UK;esckG@Eq_Rds$IzKiLj0|@-w~r5p=Vi@ z^m;Vx8KGxk9go<$zDn}8f|W(;x4265W;Co8A&;>^%4czz{2uy8`o5NZI_VX5IDXJ9 z+8_d-fllOeS06maSUe_SQ?wtg)a``MHlO{7&LZFKh|VUz!!eC@_QElZeYUI38o2tX z#yr2}u*N#S<+#Q&zvZOHHotaEXX4C`5`H*>3n>VVoCH+f*nC_9dv2E$EUh5H6$w=C zLISARMriz2EufMZS7L-jHX&BJ9s3MqUPs_X;3A|MZrw9ku{=wRi}Wl;;zhy}dEO^+ zJKDLYF-MS#_DCy!o8nBc2%Mw~^(?xmg^-ux>`KBe=@G8TO~R9W-cv`LtC*f^{zQ69 zM?#O_?BU$o?D5UT!SE5G5jr1MxC3DwqA@D}D%6#+Q955olb!6s3A1rR5?cYY5KBCN z>i4j&xzXtoYS9G8J(tBwO)&Ti?dvYzFqgj}JB6&k2DptQ$;A1BYCdmI>N6sXl|U9& z8`h*Q@Rg>ySALAp2DA;(I-mK90TOJuab}3Ik~qvDJoGl=p$_~NnE67m?5UVJdyMu} zmx8#dz1qi}7eEhl?^J@?0V$|Wy1q1UD?nke#BRL0KrWXf0xP;G7yUh=zaPN5uX)4l zaXu~?V*0^KO8aWlUb+KHZ+P`E`)l1cgowxCU#o&0nCrAh63>eiI zFvo&e{mAl7&-~@#>3!z}saOFoHb`i^a8c8-EpZh^X>R5+p`1bmKVc}Z-Wq+JCXz6; zhMj4U8{=N9Afg-0`v5&8>Z_I2_9yI;k1!SWjsl!8e8+BGZrbf6^)mtm#p;5TEX%$y4b3x zTG~9<(Th!6@@o^_$rvxAcgqCYDdo1D2c%{Bx15N!BA3^F2PzEQI(r*u5xu$@yU*uN zdcoDqjOIDv57S{fbVN+$1A4$;Fbg=)rVzCn(w_P4;U0B@qs6&%-CvDm2iA79}A7!(zRP8g!U9}39& zrymR8{8#ot(-|2UnVUHMYdg+G|Gy~y-E#kL(*MgA><~3+ClpnbTwfWtnT(Yw8Klrx z0U%3kQn+v~C?H9HXCRVHfcl2a4D1p~{^9FfMgvhrG-yBnp1zQtVX7CEHm9-i;*(7; zFUvx;wsfza2fmkV`tr~nTKiA;c(T4-h)Z9jn8fHHKDge=H$^zLof~)$u<0%5PC_MU zi+KDSCn(wec<3~kbGM+^cz7Ou?8K??PsCM{En$U-K$@gJ*W^LL+@jfa{@9NJlwvdQ zx{p^%G9WV+HP*{Y%o%#^9xzifO&_j^-tAlwZr{Pa=(9%S6McPdg#(9Nyqi0Uj9b8T z_&TuFeL#x!3rQqLelT)KaQH9#$-am;cqqu)CI*lLNY+?d0S_V>HLCkL+IIg*{#};# zE#NvP5AI)=arFj)36Jw_*2k*#{>|V=BL?&Q!Q)pBG{Z}vBqms1K3ZwR_lV;M{_bsNK` zkyPpL^_zQ{=vtsVlCV) zW(1V>$<*N_rErrzIv{9O1*TtHh8fbZg(-zJ1vmE}582cykH3RSxjdIda#mhDjei)C z`W0Tw582eu{C&ZxNAab8-n~spo096sh`T&5m2(gEWL>Q=^WS)T=NMhPZF{h6+qP}n z_AcADZQHhOo4a;Z?Xqp#UFY0%Cnx>8H|g&toxI6>|C`CP)-&dM##nRAr_OzvRvEC` z)=gtOJ*HJm_3PEG59)He_3EVsh-{PVe3R803GUou9pqUzovve)-s?vkNGzuE-&^$a zl0M33HejF{@%b|w7JKm8O*hvl9%`odEURH@B7GVj2`JDPMaXlRWzvr!e&wopRlEfC zNCrDJ?GqYNjK65W-zCD_UE9L_gd9+ z4byKm(+8q*Sszbj9*e zHs`rL(Gjcwf^W@StIX>HR_7F|+_GMbn3p*J^h6OguGtjSe4_tN`xXdAP(6}YC^^lx z)Z}Q)t@;G(Y|3w6aFxY5ht>K<-B`+8QxlCmH~bPKw9R);08NZ{GC&eW=WURy;ciiLZJdP+8)Q_r*PXih1a< zjNoTa)jiXjvOB3Kd+1n4R;FYYr{dX2(9kOa^%;&ral<;R);^T#nUx!QoCJ00$nIv%=aLK9lC2K>1M(Icr zY;Z;_Y?f^nO2hU_!;I=Wj$9;E0!!ayIis!!WTMWy(&HzpSPyzQc0|j z-`DV0JnoO&?Y4M@@8YbFLVr5)tXxl_;?S&8Mly{YY7Fk{t#lkb+-ucbJdW#|RA_Sn z><3*pA~H1_&v>-#RCKxw9ehSvb)v-SmNpu74hweAkl2s@8spI~O`24lthH1Q4FyB( z%kkK%+bpw9HAzRI$#>l3Fh?ylKS~S*a#pOehBrs>xUV2Kwd>zL+<0mis^JD0CDRs< z8uiuDvA$1cX6_q*FGpnT0)9jwvgvsNH1q6LCI{>#?!KH=OH4$p$H%D1ZfNp zK>SmTv`n9z0I6HOxQpP58crf6AmrL&kVwb%(czJ8p?;iohIwGIuIaV|ak53jtzFjv zEikRYkQ0)i1<8R049v8#7X53?hNu#j*SliSXg`h0NVQ%hYHYHYkq3)>eRSp-e1{N^ zZV4^TeT*U;1#amt1v;~Itd%NI`V(0+)D@3GT21$0Hb_-D>zSzZDiwYU+PNBH zEA6fMh$D{E*51$pTDs>Pl?fe<2~gNzi^-p}+~_WS?u^Joy1!DGW(7+WX-tcmSsnT& zk!0>pkhCGK0!@dvrvl_quBugCaK}ri1eYA+OG{`fU}s3a7?Fuwm zvA|7{rYW)NRX~{WXtsJ&>9iRD6$Kda35J_Mt8C;RPK_xgkK?@UyrGLa-uuNKBeg74 z^F<}w@@w_vqvKfVcVPMuE+-w%HM{<=Fu4_M{X0xik614)T_AxBn=n7L3HSpjn?er$ zc=VFQF9s+7bCVlo2(nyU|9UcrBK*AE+{~lUF&uPbCPAavL8M3pZ#sV!%Or_epkr@f z8*=*!C@RMtmIIa<+h@;;XhEF4xdgGz27~2TubN8LwkSciWT(3olJNme5Y)SsXiXPW z{XLvwd`r)slbWXx2!jB8n$8xkYu?WzBkUz(Jj^?`>DIw5wrAIbyzQsfiGc01e3{?+j?NiP;B$xrLZ2nmMJxn zswLL+ibL@OFd-ot414H++HF;&(2=l~rAGkvvFd0#<(Sq4hJ|v`jPQ{`UY$mkra&7* zk6}p21G*^Q8Ie&d+C6HRNhBMYAWE*NNd>A{314F);c3M@GKquW9yrDzf;zoXa~q!#!yO!24*qLuSV zgK-R&=s3Az2IuHuQ3^+#xaZ=BVK9Q5L!hL2G#aX#(KP95r?XYXnz|u)Dp!Hq8`WyIMlnrE!pO52=#v+kiX2$t6+}+%GOibJDy!0|h2Uuq z+lV*vhL})kn7^PT18VduS*nT`#=9(4uQysp{MM+AYJ^gkt#*|ckZ?Xc`XbrbP`Jmj z<-jXe_8ED68XY4bw*vyHk|t|BPqi8Y1yyOdP<(R%q>V9n z`~(j-=oa1!e&QA1>-Ogv!3TbUU3{DPMwZP933ujZk7Il`tbAqUj^0$4&E^gwoap8e zH-F*DQLx_eS4i^GTo2Z1J4C=! zD7p>a^NVqP*7Hv_Hkn$&)(W3=mLVrl1c%GZc1dz5E7p*=Bg;Y1nh)(|a;Ba7-eYS)k}d(>NuDsvPrDJ_xrnhPECEN3Y` zlF#__*W9XH(91UoWft31-|GkED||IuToyYkdy3bnD?iE1i}C~P44_`v;9uY%t&#AB z2uOO-Q@mkwdEI7Go`1Sz#DFB5(;=w<{wUbq4u9PkTTO>6;0<$>@ zbDvW`3d20+hCYyhxK>u{m`=9IeP!V`$bFZy-V(vPF97u((7tmI^xFzC5bNAGzH)Fl zFYfPV9Z5*ORDp!NQT(@Bzu42~QcbJHXYHiJKxadDvZh-H*i&GK+K8)$+L*2S+sLu8 zj}4{iwA?>dth(KJ2$?!w7;EfNy%w~cQ6BE&Lh42lw^VkH>&Qr_p$YM~H5t6y%Mk8& zRS2th=;qi_(ArGb9nIoo(bsj+65(fy3bcH%3j93qqE=fBL8mdba%HzsvJY}X1UyrSL zAtsvc4zhCHE5IK0?zKL;wk>MjI9A$nkiMROH^xAqW=kShjhl48w&ESYg;*_<5 zECN?R!r8zTA9HNTQKEP8iy1U@hdbS7*1<$DYb1cx39LyHhqYLAQ%%1&#G2NeuY0o% zjn36Wt!etEa<5D_o{J~o}o8}N7D-cK%(DYHFrt%w?Z@aWlzGNeq(;w=>m z3y_NAIU%ge0=@eL=SlfNW~e-ny0SM=$d*wwAFcy-ZCu~(eOB6opP~JhQTF3V8no0r z(4F|W+oUv1=}K%em)dG&u6)=9u7ud2S=)fhg7)C*D{!JDF+dOd0F|)fuGI733eDt; z4cGZb;v=HYL5cuWCtwgNyfQPuXpkBPkfKKjKPORcYSs225yK-`;Gw-BO|~9cp7gFX zHD1(fNQo~U3tJwL$-SVUj%S`xq4j4w8!3+pK^7v&ng-Gg!i4x!24IH7uQzT!J>Dxe1|nF1Rs+RZI{ zsRQI&K|~$OxHKt?6b!*T?=$*n1`Qx$1Ai#Cx&}i(%BfLCeydUv!0_Wz5LYL36x-fC zKlv#!7h2TFp07f74vRcffb1o=Plh_*`hw|V&}l;h?lFpZ`G%CYyy{7M_q%T z3OU6jsF+CIu-L^P5f^*NWy<@nbTZNpk32K52&?KkyGt5|MVW^PGE2t)>ATh(hmOlwP%oj}46-OqSt+?Y{L@P#y#nQ-k zB7&tnOl;;E`{*j}QEo`v=_&%T@Ygjv<0O8N-5Ny`Nrn?irV~Zv0&{;mEa60VzY>tE z>u|TLe}E{P>+nnw%od^W{}$+i_#gq`gr$}ME~~5G^!1o$S<#PQIn6V9meu&fUm467 zD+F%#!XiAltT>-XB8mJ$3Cf1NNN4w*#nAC>BqQmUmi%P^fk5)9{(={N&KQ2qHT;-o zc>0SF+b-C819g0qaeS2HBjRzg6HjI7(Z8|weX{c_h638XTRrEYn5k~|Pe$(0{--ta zM+e!1{XCCSRLD%sl+H8WV5%wd?SVcpPqq2!53K=5Xloz{*zOU zz&^wTwM7z69X$xJWg%c3{rU8{LgE?d+^@|6^He^zY{br}`4cx4b_yw&;uB3GnF=qi zw$w9z-)uJ92G2fBO^vkaz=uY^usGSLjm_6`k@ z*9F|8i_GIZnW=;AjZ531s4ynp+%_{=CbXDnm8V4t-Ny>^E86ho;v0Hs&VOwy(7=Xv zXdMVfzRuu*BE8KbL4(} z%nUPRnU97wypQje2y97mJkP)Z35c0f#u*_J21`Cd&$PK;0a|HKeWemN_=V@{12i?} zRoU0)F}XNhyJ^g>IiQ;GTjzg6fa{{`oZlkkW8o)Qg?!wrjrW;{d`$fW%aD(Awee*w z!tYYlJG*6K^3g=SrMm%ayijkA_Ed^=`041c1**_t zsWVF)QJ`r4+I~VTje_F<>GhI9Yg|_-5>EUw*qWS?`#14Ah$qOg` zK1K$mw8jyBcHI*V=JrAY-)lg6bJr`(c?Nt?j$=D}Cbv>e2}istD*42a0fF#VS&f$Q zcY;Y@*GvV?avlTWo>gr5Z+tf+;ZdGS3B^bcj<@Ri?k3`#TKwL9rpi{(t50z^dwM6I zeC7GQWIG>ubo>jt#BTYm8)7R!+DSA<=^AnxOa-a1C1kHnOx*F7;b{C?DA~@@j;bON zfeFpbSU+@bXgUU}!X}c6dduyp?N99sntBQ&wIld0+xru!*&}F5nx`dnwn_>btUpxG z54)|)!bu^06x_&BCo_r={Wu#`eh|p zmGiB?W7_B>&=ZuJOm_71OCj?|vH-FOAiD{0UR@4^6Y^43{5`<>rb=d@0z6=^Ojpp3 zm`)!|Qm+6Ztq({1m+8bf1l5`8jkgMB-mm=zbmO-=ZwcMApX6q}L3+#h!q+(!w1dh1c{vN;Pj-+YYw{;T2bU?O zmL(>y0y`yXu#3h4D=`BQcwIP3rH%xVk}>KY)SgJY(8=e%n2MQ928J%AW`f;q~_^!|&wj zsK4;_SQ$0?y#tTMpKdr)fh50I>KU<>3DXUC8+VrVB$E^F5(EyOKJ|u7$1I9j~vh zX5?r>evJ#iNIs+Js=${@uX49|dQ*=|P^9wgc7Ju+&(n=WqJnn!+ancd99#NH@OX7T*k~VAQ^Mwx?`MKk#)xNwigy-W;!4O{6Wk` z2bsPOA`P-vfwOYOc*?91(g`RQmoEo5M#5XWrX*9fQ>p6W7s#9f@I+Ax8?-T$;+%C` zuioZF!D%{;HjwMw?h^c++n!D77N!EB4XLlS_Q_H((5{ibjtfgM#(YE9O}Z!VpS?B6>E1UQ0LhOu@z3b1czDn+h@ zeTSBUNyzRbtXH8F=cNWyo5Z~Wn zTE_)5zS`hX#NESSVNw7+7872iXt~IS2JUe*1v$;5a_y~mii3pelks5q5gn)lTOLg2 z`AM0jffJO??fR~@f1_^(buhWI-Q^@Aipk7!s29oy7?0AbyKAbM+%%#F6;k=xo(iQ=}q0e6!4RUN&*?+zzgB% zEsxysOsvD8#ri{%?1B{uX0jp(PV}eJGzV z(!y$qeV>UR690v7bMYjv=092;+yAK5ar`4W#KP9z}*k)DM^Z$-THa78T-@9)}rO%qv?~uFDzc3L{d#WNh>qP^d%YTGj~(Z)-Lf@ z*8vJLcUXr(Zje+r_Ys~(0f;yOg7_O}0t}5U{T+J_@-Tdy&v|;dXEoL52cD zae39vPM7l~A8(f~(zgm=l|?GiDVE4(i(>uMs?wSTfth?k@xH4+@ro5oIFpT9yOlbN zP;bSWbVEQ`S#(&j+~MYnmKI(k#k*Cd%1l%&?OKdDSh`g;b?0c8BDzJ538+JK+w%!k z{iS`{3sP(`#`qWO15q_+D6Qp!3YUPa3v5oBophL`Jm*vyjZgDYU~O(U(}(1NZW~}O%uQP7g&d~I zaJ#hOf2S{XcL)}>(mfU^8qZjvu5geEDRRWI4#V@e+j(N481*vZYz5|1LA;BzH&tW zvqB?RlO^wT8MU$iEPb*R&+{#QX~wp>G7*a!mG7bHvQ1-h%4| zH_i)@Cf{2pS-9F%b87&0PFR>q>a1E4fzfJIaf+&m1@aZJvY8C{?3aoMM1z}mh+-E> zrMH=;Ghw|uO;On_>@iW}YSb<&bs3gmdn72WJ$k7eLkb0@-*{}7K+za*YK*%J9TvfU zpRQY#nxc|ppEA}Qr6-k|1YlcyR2plo)(TbT-p3V&x=n)&2LY!mJzeH#SeDFD_CPr@ z5&;ky_x`2>^k4IA1cTQ%NAhRT1h5^eM8#PE$~+>$t?$ZV>A$^=&eCpygcx%8H9aZB3Uy~_IRnH1d2GgM6<<7p+&&_=9j+M)1P1+1{j&iK*c2~ z78adQoU+{!Ee}{~fH^vgRv%ap0jAELKl5a!W(WyUR8^^hUT6aB4jG*aXiJm!X+i?o zdV1jL+5ppnA{XqmMneGV)#=o!Y7KJ(_LcP$9TZkOVzlo$TQw6{w)0AE0M|tu@640;DLKVGx1QPd=>K_!IoDQ<`4ytE5$C zYJY2M=K5GLKj7-r-KfPbl}~s1 zv>NoQwGUMx-fx`r{mQ{=3P9m%oh9zPsn`GL8MwfFYEZ`V)ekf?Q=x{u_;mCAW z>AnZhw1LHQ{J zJaDBTMBvueW360J0ophT$Yvsq3}!52^kK+$O)YAf#MeO0=KZTAmLrKZ6mGE23jtNd zX|AzFU>K4P`%NnKz>QI~aDFDwtVhb@`}}fY>|U>2r@J~oYrWcz#ea%h(M{OA2&p&7 z3*(9wiwvFFKJk2rge^fs(yBx*6TG$Z+=y2h#wD zt;CJ)r#Aq6fn@;oMMWz%U>z3{#_fg`#@45LAf}7 zCwV+KNH*N=uLx_0X&z!9JlT{<>b_30(QH*+U2_B%Z(V-14DmsZ&eh+BDT0vbkbHSS zq~iga>QzOUSK2Sy8Ws<~@K&+UPG*LBcOVJwm*p4K&o> z1#P>R7LxG)q=LdU%R@m%e998By$7coJ5Df){4D5tkl*;7*O|kQjQxBYBWyp-KSt_w z0Zlig*DiG3wcdT|`lVCN8)EhBQoOV%5$FsP(unJ{NyCI@%z`@}ztInjm1k6q46%8t zFE-&r;-5@$J`p@@ocw4y*xe-!H{WlLfrpw)!IKOYHf|2%>EO=wY|it@NW^wF=~@9C zL7+Sj;tM_>V2!gj&`czji&P*}uNVPwp{7oxpe{s_6<0ry-H1H&TY%0#heDZ&nGa+hjFanFV9; zcF`$AduWo^DkA}oJowJ@ZF6P>0pp<9a3O{l6Ec=MhZWyIV*f)e3+C+6cu7ue4#qs* zVKcxVpukpXyfn*QgSQvJp@{x?Ca!*A7Tb+%ROEO8HwhY&<$EK#samCai zl0==10rEQswp7enQ2I-d0RsK!vW`t*{bz(W?s>V^KW{6{0$yOjadB~8DwA7D(0ZK{ zq$8_Mn0&CW&#;|Smg50~*U7Y3Mx?+op80Z0;X-Yo$K ze&JaCF?bVX1XyV9!P!4g&JB{ND5+*pj($%L{sfes1ZV?004DAYy8e)K+-b|Dh#25( zV=oy3BhIaJ)yv?lA59wbDe4^nK{7Z2w8Db42-wXIJYPC^*} z!9YwY6D`)8@X@1iYp>%WeY%9Y9=+p1>xK`uJj~57EueWximEv=vWBE5rFlzg&79Px zH8Gk@iFXYCa&C(9myZojoP)$cdu8ErEbv?BZNSMp*~o>Y88p?ndPWQYJH?%}!-U{534 z$K8<_NmZ?p-agTb40^qbbRI%o2lj3TB|>KeQ(OD=2*Z<&9Yqlj^uYYVAOJ2>n(X>} zOF9}Z`s2VtBSVJ}TxxWroGK<~F_RMo_xT%~5rE@@uyoEq!Nu@j7}4^E**a?M4AZ%p z=LYx$A7^UABi}Y45^eFpeDTFPOb66p!!g)9>{kWv%?oBz%j0~^C=N|HV1H$uRw#}R zUv2K}BjC8d+q^!I?_TgNm7d^ocZM#*w^w6dbbi8S>Z5DEVTc$JzoLtWzcUiH@CdcnNf zp?F8^eR9dOkh_{&mb6q#UMBA_IYPPspU?>ZM4+HzI(GqT#>eT-{fTj_ipf$o?u$~Hi3!3@LS0@!!T0o9+0D`RMBMnGFt>Z% zA@8+lhP(;D#>mQt4%qBVcdrZ*w;Qh99UntRg$zuGsR2u zmcKmKfqadG2w1j}Ie-6Q@p=c<+9jd_c!He{*QaI{-XM=?cf|mrH&=F!6uN4+ zkJcwVkCHiyfd1FujO1M>`;B)H)Hk)*=+6hA$&`f_a0ySkuSbKm*m7`HvQXlq>08`f6R4z8M7D{k((uW$F^DKDV#8>UGop zj^}-}i@f$J=J@pe$d0tE(NR~^FiP?^BlYkOG=RJrWPX}7H$V0%vvZ2U+a`XU@E06d z=#ejg^}T;mgNd@y94AHeKtpQ+&OQn}>(oh7GZl8S(Ml!Ngdt4BIc^#k1n#P>WWWXOjh{1N>+rr_A!P6Y=gLHY#_KF8Lb-(_32%cSvT3x`z1pH){q z9|_!Q`abJCDqN!sfjUqlo9~pm{40|r@oYPO*q1dGR|Oq#=L@a6aA#vAAacz*@5{CHZiWL zkHlTa|JC5{$XBGh9_-5ndPFq}LLOSl?QA$aUn7f7`~de#phl%gH3g3#zTwDly3stj zaW$N2S3mbR%od{D;5F|z)Yx9;b0c{9YhS^U)K%$ZgraldVApiedwsFUoM<8U380Gz zKnoSQoI67eRC+8_dMQxpK2YfpP-%&NyVZAy00))JJBarAh@ekiOXIxO{f6P*h~S|s zWNhv+#5IvCwWTyPE854mVEc$JDj0XpW%9~|3%onzv9Dc%o9%d)pO??`wHash#t4t{ z2fKre>B5BTw!sdWuhQTgQdm*yb7WU<;2DbEP4%1J4IL!4Ttw$|70khyy!Ni|=RsPp z%tjYN6Rut%_~th!PQte%hZ3{cO`Qhu$2Y9o>8=9$xn!`{vp77@-Ach6v3yL4JdV#> zM$#;NpZ&%3^y-H7_Q%d?iSqZqdtkEhX~Fss008=b+;#r@i?aV4;)L=4K%BTJOFJzv zAjnydHLzP0HaD|^Y3YIr6DI8@8{sz>gO}n8bwo+XvA7&W)4=ZzJ}lqJzrf=-9gWlL z*QE2A?$me9`@X*|p?%or(>5B^s&JKN<|!8R_ei)9k^F_9XW3N=WJcVFJj^Flj+`CADeyP-0EeTTy8PV}lf=FxcN~Kur!>Ky?WCt|jN}!%J?t`gCZnoPq ze>AFYGF#}Ph*)n*opm3k^^0IQb{r~ST!yt$e`rT^S0^jjoGpE2xCMQlArs}Kr49#9 zokpA9qNa0rKulj6A0o`WpsKFctGGb{^&vqV$O zMas*ZdD}vlKWK`uNXc7&eh&E9e@WqQm&oFzSfHqO-Ke$6Q`q4eim1-CR4&!QmVmUK zm**OgG|PV_EVhBAfHn{LBRE%!v7NPypRRj7?acq`_iUGC`{Tw=HGhTq;cNVC<#n}l z*VyR~ULfE4ww2rGKW31{BltnNryiTL9_!EZE}tiRhvP#plb2QsjDma}%H0O|w=UXO z2P}ip)lc0^|FMz+O$v7e*liK&A~()Vz@o4^zgYo7>X^J4UEvkF?V!%gR3Co#$VQW~s*I?UsOo3+&_DCp zSpkpR%?qk(=MHEDT7#e_E>TUGbS2_eBW7JA>j=+cIr?kbaT4V)yD_Rmd1p+Pt0XMj zh(3+G7ce(F=tHV4d{wmL3no8)@b7*PqTjb^O+Uj>um8t^sQ>H=|Ic&!hfDO&G`WB0 z`}gu#|Hsm(s&G3k2p}w-dT5P3jUtQ%tJf2Try-ZKI6L?|Fi~RU=ZkQJ6-Cfsp7IEn zm){|mQ)2ic^bxR{KuJt&X}V_b*}Cy>^7US`fPd5MD0;@5-43ANfUTNmqXJD!!nC63 zk*qjSA=^JU2_{3>$1!CLQ);ZAGO8p};K~&ixTC`k_)y<-;0oDfi`*%v#!W`Aoli05 zkp}RKc8ViyXv6H&fVN>A+@>4edLWU4y7$mXizEjoO$a9d^G8Px1lX8^+m~qb*8TlU+2G=~Fi7JlF(CyWUc*U16MOHMEBQYw?P&1ozOZumo11>2@ z=rg)I+&Z$Pj`bT+-bt8>__-Z%F33-%ji_E`rWK&8xM4^Fa>U*V(Tp#?O!SKYTiX&8 z{mf|Sia@(WTibEO&Pf$C)4tPr7*}6fUK*9cq)&UYocg1xg+jZ_8pGADmD^j}*XbTa zG@NDfyR$X?a-MIlm2Y;<64OfT9gn{OYubF#lZ<`)r5&yJtjR9r40B)K)}uMwsl3&X z;i|&u_uH9M>)L+zYJCEDG*1u@#5Avnx2X|vy>Qj{CQry&Zk)PM*|th;7&T#*;Y_?m zbS7=e%$7TZk1{9Ul4*L}<13BTA&n(j9-9BAAy&l)Sd#i;_-5inr0Jf4`k^Zwg$o_U z;%vdfR~2Q0noq)fP5%X;2i+E2HEq!`k}G+A#0D=>8zM$Q)r8B_nR{M5fqpOxD#QNu zOdJ6p!GXa}u-LZyLl?)3&(*;?EKhY2F3P;HdN65E}!F1w_i>Wiz)u=48KN~ z8dHPWPnPq`6${mqX`qQ@=c-B+a$JM*s;LV;m`$k#e;YJ?X8S29B$@O2l-e#8QnJYz zBxTk;uDyal)Yo!epibK)g;Q15Zjc^u9O_~oQ_=6nBdYrnbd z3)k--G)4mbpV0V!@!I|C{NencubqoRgWM1ULW>SNV;UJoXl11SDY!^9CME`xb2*5x zIyGymDtoN9_*r_uwUOz?^f>yCgdhyKFk`u;7-~AdzfTGIUqwmXbBEjj(w+ajKevokesSN z;y6P5<`YndRPyd>g_YO0pnE)r%cQ;}#5%y@sB4eS@_R0mnjvk*%Y8AFpRvvx z=Mltsx6E_s31?uA{is5aDBHtSFon0gv}9@g=Xg|pd=b_PCu+g~Y-iYowl-ULjW&uL!3 za#NNI#(WwB@S@7oW{w2B5)6EX-vdIHig1INs~Iuy6wIvk07lu5vg=%~t3NfJ`s3X6 zY}a{&muc%+Ap893wGn*y>#>$r!{z{s*HArp4@Nw6#9GsK*NNSsM=&<;=Dx_FJaEGI z7yrp))s~P=oVXq5RWqZDLl?6UR9#}h@Yn`6Bp#e6j`ixkuXijpSKKnu5^UI@`$oFV>VPeW&Bj8l`ck4&5xSjGA)E4)W0aFom(&kBin z*|~D~O1R7dkz*9n0jQQxoh)FFmYR$T>LXGPt474{g1-s(=BnnjqUa0AF8j1|U|Pvr zl5?oUxSg46Zpx=vng!=a$+Fi)Eh6|B&2spq9T^GI&Qs&u4-S#+%BylsKACHIWl!i9 zWqJiIa(!$kTt1nTJjP&#A*I0hC>}=)+>xCw%;(SA;3CgB~ zZW;#UZuTxIUf|F%I>;)9YSg#> z9mGb>IBwwH`i!B+`wXJi*(MguR?)O|aDGe&w>5#n!Z(C2ZAyaEw%iX$^0V{wts* z*co;}R6}S(unAt3YsJs-k+7Q;Zu|JTuRiq?w{_lcXo0V|{y$Zle|9m!$=So&k>$9#;d7Qp)6#O zp&&qHkTN*o!o4u7IT`7}jJgtyp&(D#22&ausnI0DOl2}#Jc&J*7F)faz(;!NLmN%c zK6XyI_c)xd?Ta<3#=x46^=Cy@U1#d5I!OKU0F8z!w8~Yzff^&$tuntr8)^a$%Ik2# zSAJXRg!Bd)R&|<|Te;L62{apUQ3$>y++yXgF5%XcSXF{1kZ!8r5bz!~!EO{>wV-Z> zYW&QBP-P@A#$bvBj9DdjmTQH^sec#QKzXn6fmsWRHCI57_eM_WCgRa$915~ zNbNMruqisDB7TqDQWM;2NLJIST50d8RZ)$)3<@u7JA=~ZF(DtpT6L{ycNqCAJ3UQA z+^=L^9_rK;l?Pm5*vgPHJq}B#=Dk^26$;yr>Dl~HewiNcZm>ezQn<*{0(FZztW&R2 z0;r_ifF1vU>MUMePNkYUejHiCz>|(wvnqssTyCPc=z11=&Rl!47CSc_PVhBuMp`X` zTD8sHtQPo;;U8Sm3KbBddc0wf~ zAMJ`fNF58h+gK$0rotS_Aje8W82_NziQsFfLa1iB9;@aBJ0BUDMyyo28UXQ>9}+Xm z1&Ix@F5o8LJg3lvdt&DMH`0QVCO1GgBbQ!XW=N5xv!tZ00lhN7BapN-w>;)Ql zJxK@9Gpda;2_o9&U>#?Ff72s!D?$)p@Gn3hTlk&?>5^I=e$L%ikbb48G0iP#|XuOu#w5Y7br@ zrS(4yq|UdX`!p$a51`l|pH*bQYv?yL1#vJn6&&t%C(-uJk-z?!y;rI(%m8yN(>7qY zm0Quq=bcDc!-B6!&n(%u7V`xQk`TrpARyjQA|U1wLGCllkc3YnMHCC0Ba8A$8ICJs z9kWcFa>{|v6S__kNJ%>8N-8=6miRg*tcplP&XGtmQzb}e>zXbRVG5t}bPP5hPmq)? zw=be+Z|OUy=aD67iqXH`>4=F>_{iO7cb=oH|M%D-b5F>A*rVig4$hbqt3{yxd3Kj#4llX?!HXm?fI80D5 zmF0se3s%TP5z(Z9kN+74MPc2W^aWhVb3+DLj>T7j#aYUQWQ^d%_#w&#kkR^aW#wsZ z%+o?p3^kW5a$r#)B4H>;8bt?_~J1)2|1%ukQX4@D<`hnPk`7OstQv+*40O%i=m zR1w7?VG$td-v{!zEslR&zWxn$_bcN~7B%t2(OIki_@y~qTyGY71pdSk=#|p>`i|Jx zlP)qsSXyijP56c24=eo&hS2A@+taZL+71Xb+tr;3!M>=&J@~1tVPQ5&#>bT5N?L8< zkMp#c7-e|`@h;dXUw9uh&Z6iC>@K|vk^wjw6TescJWUFQ4Sb=BKTy&twoh{D-#ES{ zR9^8w##p21Z+hQdk&gwQFTx*Fjx-{PJiJfdEd%1}A;SYQUXrNk__1jQvXg>cIAdnE z>jHzeFk{VwKXGn~se;HD+18Y?e~R}+jT`7Nu8**zdEa$0KFbJjAkjO(Pas(bxGAzK zCc={bo*p_zZn%1Vc-2ifm1l8_x*elzPCMuTTq%J&J_K4T@~3qUY;u8W*FtN@F3$AO zbvOoY2%+2ciMw|^57sp8JSw&&b))Qeqd>FV-V0h6;ik|2?U(~$f1_mel&Ak$rbie{@Nca-PBWcn@t)Bl#JnBqqW8sk6h{>!=oU+%?Y-$LbsY7C-exrtfih z>~XklXnDk6cXyvb&v^zT-g6@Qy<(K>K0V)19W(d2HI5A}rn{RYK!Oi}>%nsXWTytx z(J#bjbk$JbmtyqyoWc`!TmEo$qigJF3pm>=*NqaN?u(!k@4Z9(i06zeF2M`09b7aa z0QSYEH)IDkuEyio zRPwTCfqe6prTTddm~87BtF9V<-GrKtKRaeW-yQnHgSz+e&K$OT#Mj?6y>k&3=;Y zLdh+N%*7BnBThbFHl|t54^7`OlukG344b$L_vyy5WS&q}C+c<=X55v#Dh?+#)V9vb zc2pIIs;bCedFmrI)5@>gL@t>|3>(j7f9}6fyteW_Y&=PdU#ytjP2lFx51{0yY?e@i zjKPU#WulxO)=9I?=r8z6yCYEx4H5S8{Sq&7TnU=~ubH1#NOSQyJLTL&t@XOhHjP|U zHI-rx+Qqk=m5)5&U?j2Uc>K`|^(D^Vk2!|FIAfb@p;_K-HSeLpyC3nB6m7m+ulJXB zeEH1k!ihiK-=EKkwwknPzJXMqo>%$C7Uw^k-5$%QuUPzfL1EG=)25ZzIF>~*SGz5? zb)Fe}tmN(*jW5sU7>%VXghPY-L&0zBWB5XujclioSeBc;+tQ>P3{eE zSR=j(I8An1;L~l$IPJGdmw(dD(@%bwpS7tovgmj;q0Z=r#+F*ehRN?6=I+$lFTLFQ z6HlM@$>cvaxBquPR6Kun^}RbX3toNoyt@5(NaN{NKA9ill@Hf+*IX!_$lnB^?A|NM z|6y7fpLpgs{{x->><@CHXD|K#Z+7bczt&AWol7n$AD*t?>mPHnr#Ei5ouzH5v9A@baDHZukl-3K2~4!THABy%@wl^hbkAW z-F{<#>7q}kq)vRhwwUwM)NO~D|F2(pr}{)}`kpM66lwi;h3}5a#%JHW|gqs z?wZCoyP5xc-g2v2zRFtNXZO~1jXzJ<+-KVR<>r-36%zkfS9h9jd$;9-(2Zu{_PMK~ zJnSQKWtTX~moXja-uvf~UDlt8U*c|O@h=WdKNLMZn78G)L*$W<%8_S;&$I-e;q+Hb zo|3+q!?vOHnE!@%vB@qy^A%soK0jhA?JQjJ(vq^L2(bJ#P4-{VHulSvQ z^Hk#XQ+`wbE}NQou@0O(PRD*~TnZfSn1=Uo7&&Z%@kROhCGiD`$=QkNWH$9x2pVe; zkJ6TZoFtGmA*tfP(H~vijKB#Cc8;cQfv0@HQE?u;BjZ9y78Ruy=a&{G6FQKNkx7I> zgn@$tm~|K&ftY~-7(!sc0W=I1q@<=LmgXQW#18OA)$TIyxqB>7PZbagplAmf4bz^R zn3tKBT3iwu!pguH5cORM-58LqFjoko81od#n4HYK?3BckL`3%s-JB&ymRhy~byNc* zUL3_7eV_=;IdF4w^HWN5Qi*bv5{hX|K*wU322C;XiFqkS`I#vdxSe@eX$hAY(3!xJ z3wU-ja-hc&Wv~I<4wOWM9vVQ?;i0O9V$CgLtkFx(&n?I=M#=){7VMkYsV@h#L3+l42Y1h$q}JGyTV7b48#x{00v}n0+f&FF>wvD$K>&5&cswbdf>>mLc@`;p%0NB} z71hd{y5v}i<^CRYE0GWSM7463136Y=IdK);N>D(;iY?Fyq6nbxM23|Z=ZT`*hkQC7 z=nOmrSV)O|SWgp0w;TDeHB`Irx>Mj+tf%pz+YRz3ESyox87?n!>;@mUhBIHDM%uRt znvz0*D)Mc^aFLLOD21OB|GnpKF(e`ekTZgKVh`g`@wBiH- zW>ID%j`b(#_Jiz$`4~0Jo~B*#?9D8AtsJPn@$a5;F>1hRJHsYAU#ph$xLQ1KH93P|2Fa-tYhabKX}b1EYgS z;cz$<3PlCpP~lJ`QIUKBPZ}q&X9wz{(9DoNV+@MP&;x&q8u9g)Otk=pFo1ZTFj~M* zk_-aHZ!FQTq!`ZZTatxc;C3WiCX-PoB^X!U-t+Dt{l)#lj~{~Ow735CAX9Jp2lV{O zwBY8#ux)Ph4&yKNjccEtAYOenVe$WVF!bG}H739Euhbc)75tnbxNL0_T<>GTEI_ZM zv+h=|Cys76Jx4Q*dXmRkx+0z282Y;K0(x0M3x<|s>+ZNL;Zf5AR;<TL}Dx`Q(q%@8{IIqVy&(_-e+_~aI zq7!}U>!&s`t~HQq?EP*}y?Tat^%jXrXGj^z3h`t zCIgc5-#>O956HFFDA{p{&5$Mh6fJLuGqj?ja6v}3@(IfF=bf}WyI*Hu29=cJeG>uw zb{c0eq%8<6`@jsy(Lza_b{l}I%^<$;QMe$j!ZfCDDACWP;As)-9a;)z?DCP7NpRyn z>F)NK@?Mup(s42xEA#JYJ|9uO&q(4bZWw1kd}XzJq`yb6Gk52Sl@?8-Lq9*UFezHh z?2GxdA=Xp0^QY8~PqOlm?%G)^k_`--R-U-tnmco{r)9u|+|Kz%Ext2`_;BTeJM*gr7Z7lg?8+izWIAJt9rfZtRu78Y!b#cD4cNo=s06Nx85knWWfrL^m&EG zf#Ka{ix2noRLlOrI6WgCPn}p17MsJ+?X1fU;Lpt3wbLw2h_aFt2M7-a&3txzyI%@9 zJ#lMZ$e{(@#${6^6Hs@I*BC9p%pvB?KDWs0%mU%l-b=I)A`n8(U>w;1v%VF z=5=!uogtjP>QOD8)ZMu8RmQ5lySuxc`xCM0)dsCmD94E_J1#E|D;v|@m;TQ`KW?Mm z@-)2d7&Btcj{bf$xM+(@y9n;U^R89nGw&CzcCk2)ClQDe@h6C~XN zZWzN=9aX;fU+Q^%ELevgdC1QwJRG}%$!2?-rWIcf3~F@o2@7#}!?;q{ymoYp6Af3G z+10u9bIaX}GG|@#Bg$=J=CTv35o3jpvpjvw63UTW$}$)R^{D z?NN%coBxN;9@Y~HEYCSFd^4OICk8mAq+v^Gdu-i}HuJ6DIvR9H#$l{CV$<@EHqW{4 zQr~dDXFpe`z&n^|AQ0TyTOKf~ZLde*2CMe1bGxbtCJpq{W`CPo+EutvV{B>Fo_b+p z!y;P~Ruz&9Nhqdv&vE@CxA9|LX_ibvu8eW>JBQkwlOjyGBr8P9QS1i6P z{a5hqs*+=`b!xpGR!&V2L>gNY`%;9Dj=&vLivjE|LOfS-p`Q=BhfV zUe&MxgN>&(I-Py(OAS1jY2%{j6)cm{b;@ndl<3?$RAtt2*eyBv?Wm&b2LA~?XJ*is zzWOY`w|Q-8VeO#>*b~R<=jTi}Jp6l6hcD(G*8ByQw~UBiSTwbNUmL67{L6=I zL7n^D2`6!-o#$&Uj^NT02#fNUIM)4&{+I4IJ>sSsH&x;TxaZ`SF(hhRGMo1w~5}mB2 z!L`+h94(B9lSc9*wd>j#hMmYy5=j#y_*%|X^8jK+5+LGfZW28L55x(0l9oqgFi9(x zQm$q)6fcKIP;lQsMFswpU#^s@kucz8@-D!<3Y86TTav>lr&lBnJO+Yk6{;9jIEd_u zL<6sucLhdAsHOs6D|MwlNFssZsSXT|P_6ndU^OukNdv;l`v)T;R2a;6^sgKkkp%F# z2D)>o1VbWF9T$;oAi7)*7y+SrGZZ$3K#1gkr!g=9LdDS;!pJ}lr8tP>0XzIkJkAMC-5EVtXxg9FJ3cZi@5geqrvjB30- zk{|B86#1h^4NI{aSBm5Z^~(1%=%IjDB1fKlP?Gy#HE2C5E?fJkSj2^Vy7PNEi3)Iy`4iOaeNz28eMxR1nFbIhlFcDTyVCfn@PF(DWy57 zaGyUG+N^o@imvBcjn4C0-@J8B>Ue+kJ#%LB=A;deJkEG)o;vTda)VIA#xIjT7ju8= z4qn@G(e;a$@miG)9IqOCwgnwgT|9ke_@t;Q(`O{Bw!3>eW_AiU3*WKzlXzEn=$RZi zf{K=1GfV*b`8HmED`9hOL1J=tVtQ(PVqQv7er8Gqc>!TSl+gxoTlBK?auFevB#<;A zsp7!VA6?zbhWbl2?2VT)f&Fz@X$hAY&`%r@kD}t1@`Kt4oSo^hz_y^RX$Zwiv{hX5#d(1)6_D z*P94~y*&NLV{=8IcjfVV*@#5P=#`{akXee^kY$xYJjg~A@8<@c&b#a&vh{eM{PA4l zLXYfEtdWsoIh%A?7Ai2V%D8E);w*7>Zs)ONk-ApKyt)ir-N_kwk0a%e^ct z*~Tu zo$R{f%e6NhA8j7jSnle%eoru1sejr@+nFDVH_g-Elv*{j?9z|v^{inRxr?T;gm$T< zx5obnb;!E5(lwy*ntFn~pJ3QcJEbzWi2(&qo;W<0V!HZ+{gLvX`5N!k7s;?K$_c&M zdpI9dSLm82Z=A!(z)%RR*>Kkt7UU!cz0ACVQZmz@GX)kJ#DgtHNrt|CyZw$B2)GI# zue|%gAY=n8ukR|3K*ftX0SCk!8hvO>sqTzZj-jL{k;G6+Wx<#mrJ??ba@zM zJ>9v3S2NBu`g(p#wchQ^`!c7jmfNlU|H~r1rDj(rP4Eo1Uj3T!<=oo5+~o(Vc>S^z zj@;T}n|uDCONRt~3{Btq|)rJ@2xndRfw8W8vAGAK%=^!MF2)>Sv!* zCyb?MPQMsvz^~sV`azOwL-U39pDuQPWPfrUWdBx|9Tt3g)%C08$FtV_U9U)A zSH0ubeNsDA!g9Lsc)=8lb-|Yp`F$#BEt@2KR`W^6zN=Ke%eEo$_BkUMo=`? z7dfh321cVW-e{D=7NkY_`6cntHV%0)r9#kHgLsrkc#PDXVFXulP2B=d`GD@{!CT1* zAz4(ETAW{6l$=_O-_49nBEYs0a%&#eOb4~*Q2|EVKENAQJ96V0)Rsp8M<5fX9iwHB zZVX5p%oU)PHUhi?GGWGGw!6{IL2lE6+Sv$T0!#)N=AgB@(M<#ChPevV4n}}S*i6IS zDn>ULxrqvD1tWkh&^`=jVi=60O^j|0$XJ;BLG4`x*hP#rn5|!Q3y|BMpw=z|$TAb* z54Z)`+rH?wflP;a2h^TLfR&`!hSIu4w*$Fp32MzE06z-}J_6Z+(Y8gm3uHFTKcL1c z0?Z-NF0`gAx<$yX7En_a0oYkd^AyA)EDcw5D?wJk{03?cA%GY=8CIeA_V4qKo{(OU@UHX>JSpcVlF!12ICSlgBh1a=VG&ze-yGX?#=(^7^_$-hzd6tIKJWWK=e+NOL3447!FYLjVKA5} z{R0LsY(2~a?}-cYqi8ugtb=i2TxLbMU>GzU_%4j|(>F1z0thhy5O72vPdu6O8HjKO z#aD|I+C4kJX=51$gNTWVF}rZjir2|#)aqPkC3^C8kK8W!gM?Y>h_*zT#AEv?$6R|- ze6)kC_eS(Z^@_qno?j4neY+y3&HlLIlz!P&{vwG(^4^~FsDSz`T@G>LMWmYQfwaBZ z9Je{k^9JG#MG6yy+VC!_)ww7YJ&dkFhZ;>niTFmev|l*xf`FoF`tXg9qDL0x#ka2K zPNU1~p?_AFC(I~RIQtu)SjYS zS~VK9Y@et#m#8*(YFJ%UKGBL+f2fY0S!dnzUzBrz!mDhtmtHvz&g<_wBW?EA4#~;7 zEBwwo62)JZRHt}3^}G|t#VtF|zFJnPNI~O{a+md{+@zBEDiI|frJLjn$c#~HbH!pk z%C<{jLg}>-=3rG1xs_D-|viEc>kbHRPJ^B!WMQjAu`u{+cL|*iU4u$wbS3 zlDSLEz_?uY&UW!dxz%S+Xi3whO0kryv6fskgM8RithZJcBsR!rRlVCGdL4h$6j)|`Fi_|NIgg)MU|6DEk%d-raM^m@Sl(8 zj~%rd+LX)N$?eKN?T*LiY`PkkuLxhCcxec$+}4*`;hqybdZO%j`0U4CQ@MGX(8!^( zlKL@$=;uH7J?oBi7MGPIcbUu%E`sB=AyW3;sq10Xr z>Yn_DcPbg2Z}9_-c7I=foW6Tb&ZxC&8@FM@;H~+42`2GkaSn;&Ni!z(a{ZTG6R9Iw z(`SxOCe}YkD?HRuI@)oBI-xOcyLou#F_PR7esc%0HHq5Fv$vqk%Vd+^Oz*WB?M!uU z@6v{Q$`>Wm9{((VF|G1fyPVy^Zzu;fU8~KUj5t4VJ$z>>pg$gPQ#JODZv^LiivOP<`&c6wX45}*7We8->{3PSJRV3Wb+7{vU7z0kTcjg@Cz6~ZhpHO?^{p)_ zbS@rQaNxC5PMOTB{6Bxe7a=X5rt~=<4;^u7s7*j3Ct*w%h&rTd0guOdmXm55)%~F5=@i2<_YYCvoin58u^Yo_^ zp5?oBJ6kpPA^Hcg*<`bCAVgvpiI=pQkl1X^jS`~joNvMoTg&q{M*sR+H%>Nm8g6d4 zVStNzAwKrIbBOe)8OI3igz$GmqR-R{LnkoUb{jpF=yGm&*yecO@u0YnKc5r}NFaus z2Ki*dM=wfWIE`t)Dz{Y-2bkT zZ&L90I}`%4lnWJ$^XxqxbG-%(D};St=pY(s)RY@yYT@vwLNeRmt331jpm&+D?Pz<1 z(>y28));JL%^1C{CM?^!gRLt2`{5{_q(B0DZ(gf!<3wT^^h^3{lYl~Vp*F{!(@jP9 zRrX(wk@|BQ&Rt`wBn%fmctz7Sq0+&u=SoI?NlY7-HXax}Hs~Ez@?yfsaC~B;;Lc0F zeZe)Ql7lwR*J~?}Iqzuj))x*d&7-MP(8;ZP!g+V@Y6*LHJ^j{C#dg7bdV&G{hMnlK zjHC5`EXdGChjv~)pDWnqBIEk}3=t7$dT6)d*>jd+x|ULj)Q+SZCuh*v*~)h4He|(C z2frrG>(euF#j2GOF1FSk`XLDsx6V~&rA0m(#KQZ?8w1YgO8%2I$Md1)@BALA;^yx2 zW+euC<2A*`KvR7mT;}elHx%C4hKJ+r;JC_aos`4Bf7n;2)65s` zM97qMbkOjq)D(+ei2kkMD$1g)PFXL#yJXATvdEG!F9i9mX)xiSdWuFbC6_j$Oe?iW zCZ_Lp3U*XYPxs`yvoqg*o95|9(zB&4j*le5gN_KMN?BqP8^;olUm8!!*w6ycu-u|8 z=zY&nA@e75j*tk>kncn83+UpyZePhyYxd$eEgFIl;Pn!=C{K#^Rhm3g^Mq=yjg3p0 znnv{1O*}x{)R&h3A2ohb!as8EKK>4RULRehF+fbdx$r^@=tONEpV0<-7yMXuLVBg6 z9!Mflu%Ffv_U<5sFTx_ROKuJt(+0w^IG0AB5_%~>KS})b&+2b><^`I93-rQM$n0gj zg(+hO5CP{-B4b0h>9PkY&l1vy=?O$>nTVtK1b<;0Hl7q)#|1L6qwlo z089ojPJI>dDwYG327qPc57-G{@N#`c{>#k;C;{_o59|YA_^ydyWorS-2B0(K0CoWw zvuj~nVje&_m^XL8EC9omdkrN6IF?xlP%Z$Qp$G5+z!+I07sMHW5-~4yfD-_Q7b z;^}{^ofon>LFt&Mdtg%n>Pug+9CFtYCog5sbzaU{)9=SpfpWBN);`pkzi~AmH**k`*#A zI)V|#guKEa$qEP<@4%>M0$QFTbd3CZTp3|j(xF2n2EC34$Vrm^qq6}9`-y%v4EBFS CU;V29 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-skikoMain-22Ga_g.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-text-1.7.0-skikoMain-22Ga_g.klib new file mode 100644 index 0000000000000000000000000000000000000000..b70d99ab5221b66b7546085731aac31ad567c105 GIT binary patch literal 19530 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-aNVDjg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-uikit-1.7.0-uikitMain-aNVDjg.klib new file mode 100644 index 0000000000000000000000000000000000000000..83a5b2e8d2df5f3df581d04bc50154b161f9ce09 GIT binary patch literal 4500 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3O_HE=lWWdAvy@uOm%PR&CNeKyw1ScPliQLO(n0aoTTW8PO za;5R9Zn?Vcij({&oHTbG(tCU8%1o=J8vEWm0 z3Yr-Io3SG)Y*qtTc)$#isk&!YTxy7GlnyC$d)Il@o#TbkS>vrs{%x*akWsWG{g}Sr zog3^~XO#th+f8A~UH18x{|_dR_l}9OUYP;(-fbYp?L9#x@8x9XWv3*TB$5|U;@C{e z%}*)KNri{k<4apl>U&*3?WOCf<#pza_BHQw=XFo$`(4#OyG85l72UIE&gpcrPu}N{ zX|2ts-FIZqltq8eOySaIl;B==(n}(iC8bA2%+Yqk#IR2mOTTz|8x?oWm6-G3nq^|d z^Omz#>UXYL3U1;9$8Nc^-j;Nr*LfN7d0z>eqYDy~vlG)(;}i2zit;m4D#!~D1EP#J zfZL*%otKLUs3d`;2}uFECU)w}0lg}N*Sor;xJ9otlRO`r zl4^@Vd}$_5|5~8=H*~#;Fxbn}e>^r<1bSBI*a!>}kj*$l#12P@K#Dp> zP_gb8Z?I4s7$zW$J6zgV+7Y zwQfmbQF>|#nb9SI6=o*n1%V)Ej6hw&$Rq-+xRBdvum%{YorVf9T5SQ|sM?VmIH2@` z0H7uyOgl!K4c!=!Hkd0wtsw+Z05%<9#$dLM(9J<^aDduE2#|%%9JH1Zx@jQYFjs*Z zDF`4B6vl8B?j{Sm!N~0gP!k0Ks)#ZeM}r038j!It_k$WE2=JX4YcQK8=oTP13_wj0 z1c+iLB7oo)U~ib9+XgZn<{eOD0|B0qVjD`+1KkefdLPu(KmZ>W5_|-*1Eb-AZWqXG zn14Vm2?V%FqFw0i3Ur&0>v2#!0s&lEN%IxdCTy(=bW1^&z`O@)A|SwhvMfb!FreFq zTq%PZ2nZ0!Mvf<;_F-!-pj!>H3g%T%t&afTv00714S;SaawQF_^AW(09gBZZ3`J`J zpc@S`3g%waQhPg+(Xgr--XX$g45*Gr0>F+vtbBwSgHhw-GY(Y4BS0V?<1p)ceCC2G zPXt(v$6WN<9-pb8+8qIyfgG6UvDEeW3_^9DACf`np@?472Y9mrlNtkq7!ck7M&dHC FivYPQ2E+gW literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-commonMain-pR3KgA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-commonMain-pR3KgA.klib new file mode 100644 index 0000000000000000000000000000000000000000..f23f4558b044374e6b36534ca170d6034c459881 GIT binary patch literal 9302 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 C8S#t& literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-jsNativeMain-pR3KgA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-unit-1.7.0-jsNativeMain-pR3KgA.klib new file mode 100644 index 0000000000000000000000000000000000000000..32717e226bbc099474b2b193b4db2a659a174b0c GIT binary patch literal 3780 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3ib{q0F8wjxcuJ%q!bYX0rFR(8m_CbqT7k|?Hzjc=s0?+ld z-S6-%I=JrO?u(^c-n={z{>j&Wojix7Sk9@i%`t0P{=d-d{CMiv_T++js~&}`YN>OI zp0|(sGi4^PZye83VURnwyqZ#+2y|x+5aV{IAd)+CGV`)i5=#=v^RYNKlXCM@N^?@- z9)B#fS@Y}_-Lt24I?ro;^VT`3b%d&4MGhYzfAgE%>Ai5 zcx}r?*DqeiYgIOIylU*(7IZ{)@${MDlcJ_fpYiy}1D5UQIS<>Z=X|q#xP>1aH@#`w zjAMZQy^7b*O4wXlkeHmEn4TJ+n3qzNpP5oYULY6{WwZg@7QO7eTtw(32_#KOsyJ}; zM_0G9q5e`0d*h`{V1FG}TEZm;^pgl)e`yh8xn6R9Zb5!=DtZ1hC&>zfc&KH#yy>j~ z^`?`)rTun={T8BN@9vw}sV@igstjK5>XPCXz0yqbd~8apEe7$WnK=Dxf#%=P^(Mk# zFHisR*jy3lU3t7-HX_k6dZl@pWENmHWLX9DJkUm*-dDo(e(-t|{mm@kFbJDH*Ifw0^fL2GQj78ubI3~so|M^X5D&8+C1h&*4gHxM1zO9e@7?`1RNAR8xp?!XWZ>9u|8q$r>LN6<;)uQO^U8rx4=_Ap!<37ra~bki;7Z< z^Gl18Q;YGtnUP5ZSb!t9Hek&NP-_DfV6;5~yiv6y*Y2RU1_FQ@GBE8JEe~{KK-yrg z05t^=;3bd=GX}F^fNlG28DN-$)+|6b4Wt|9Do|yO0C%yOhP&!UHyF7d z1y$7uU;(rb!KHG*Eqt08Ff;c?x0?mf98FN{|&WzkzB>1ei^Zm00RcbQ_V&dr&=z0Q_uZcoJbF zj#?Alevo}IAA@QY1W07ZVn6me2HjBPN&r-+AixfShN9Il=thH#g1Hw|iy(j^ux|+~ ZgRs;o0p6^@0A*kh1VSeuD+k;a1ps=kyQ}~J literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-commonMain-3-t5Ow.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-commonMain-3-t5Ow.klib new file mode 100644 index 0000000000000000000000000000000000000000..9b7c6eae3e69f9f9ad43ab74ca1dc53b69200761 GIT binary patch literal 4977 zcmbVPc{o)2A0AuG*clRov8S>obhA&_l4!^h!f%X8vP@wjgPSEa34=?DP?i={mMkT% zeeB7W!YGuHL?og5&FM*_q3+Flp7T8CkMn)s&wI}I`FuYw(v*oA3Swhp1A##L)SCu2 z5E$f&IfBA@`YBmkv49wm_8<6|KuA+o;9U^ow>ObLCE!^_;Dz#bKZ5b~`%YwbL4_+q znS&W$#UdHDHG{-I#TmDIM={?CIN_9TU+UgHnOmHAvGM|T;r>M;<0)MPL^HdRcPg8V z&17@i`DI7WN)dUJk!X>s^G&Bz>oI(Z3CsvAr_plT!Cr0zg#oCNJaUJ@nObEa_5OL4 zysN78bocgfMfssN=6CaYOkP-5oG0eH?Ge5L`L=Eag{D@*f%cBJwvJh|*4CmTm%A^F zTTSJgJNDna%Xhk9?({auyQqWt5uJa|?c13zeV1(_l;fn!@i38>5h$UrzkrwF^eaP68CtpIx855{xmQ>+Ivy9HG%T_J3z2ZvGrM%2ub(*y6>s=z z;;<+sbx#;p>VF3L7m{*KN!tfcKIM~kGWhtiP)f?d(p>G%Um7uEc?m?XVvj7wWclnX z$1S%9`1DaI4b@X&?G_C|Emt3qMM(ic`KOrF^j5?TXb+n%F0Bv4J}QKiIbHcP=7%{-L@a5Pvv z(PFp@c|8a=AvRm6d(nsOK`L3~N$Oj!gyHHesTTgKw81v_!FF486zcnTax& z1P|L*p0JUm-iOHek~^2Z>q>jV76=t7b^;)PGY$>8fYH&J95vp65dlQ+RIL+d1V+9>qaj1q^|Pug}TVy>k-og*fMC zsK6d-pIahj!$tL;W)8UbjawQ|F5M=l&jHKYL|R3r*UVV z9t{0~;$8u{1mej<pNTb|*DX5z}|D{9sYbH!s%A!vBJf9D30lRY@+BB3a zW{l79x~lOORuz{L(-SG(JCzd2BF}o~TD6k-6GUnqqPBi}bzx!3)u*1;7i>(K{RcQR zactldV-Un}(qK+wF=xGmXKZENQVd-8sdi&AH;mW|@0|4iBcSwU>Fp+h*g_EK@U4Xb`#^w^sL^%^eeaN8bsjm-B>3>6~)|Q z1su*Uo0Huf^UiMG^w_J}aO+dKG}RdX3G<7h=iX~=t~_pW*u3J+dt1g~v;NFCI{1Vo zeF3~V*;`z5vS7As>62o^*sH)}FRa8712fzOxZMoeDxYc{=PlK0y&uH%Hwc#8g*0Zu zKbRqx7B)euOyT@sKKl!#Y@v&{h$a%V2JMjDa-)*_1jcrCtNA!)v=|IQ3%4B-&q$IH zhxkRe?C6IsYD>IjuaKGJ+IOkqAGU*a^|;H!Dc$WnRm%>Qsd5Fk_CXzQ)eGPGD``lt zB2@+)q2_qI2@AJQlRJIP{^E(Y>0K>-V8f#oy^Q8lS5mbkv=VBF@Gd(`y&I&P2|-tc zT}6|j-j)$2ThvVkq`?Vw`@39)dvo+>PavJRrm|kSbiXAfBMvUz|+=agPCVic^2g{${q?EUb8~s1wR@xsG|9 zw{Mc$$RT}mc88H;q>RDYoFa=v#o3D|6z|KKj@qf=6)y)bI2D++hqU)E17_k|!OM$N1~r+<8SJfQ-uajfs!A0@_tXtZ4n ztflI)ID{myZ0i^|gT@PtHgGg+N<(~1@}-Zb*D0NG7FOk`RkDuXcG}qRt}G}*rfs_6 z4KjVW0(L_NJfeD1tltM6{x+(NTN67phH*ogx@-Chg+XMm~;ri9tC$`>!j{7mM>jV|;&IGXo=(I(V-RgDWWy2!lUjO*BNB{c9jfH5yc?W6&BNy4*(32CQDG3J6&= z)UC(%^Tww!V(QpOuu30hv-DFv3g<#q7n@=zpJq(IMHhX+$(;78Jq@YYTx?L zzlZ9FZX%}_THOkP37iJ(hJ@Cc$LS>ji4|`^k6i`Mb-bXO&W(Zq literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-nonJvmMain-3-t5Ow.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-nonJvmMain-3-t5Ow.klib new file mode 100644 index 0000000000000000000000000000000000000000..63e41ce9609068b4f459c3ecc9c00c7ee52d863f GIT binary patch literal 3265 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+3io_6FqtRUd_@b8?ZQ>9{5xb+2INTyukdDw2T?bVY%k)n6@ z^&gkMq`Gxs#+SS@{a;i59Mvp6(LI}K;j%X8ozYYGZ+#&zoceN4@$-iq=O$~`sd-v@ zo7k*<>=RY8_tWf!CCngqJ`B2Ek_dEX6%gZgry!C$b29U?QxZ!O$@8%|Hj{GmQ%ZAE z;U0f1v{Ccy6Fh=_8xU+W3<+%&u%RKn)0g2d$P#Prno z#JrTE{LGXJ@_cMSl+gxoTlBK?auGq1B#<;Asp7!VA6?zbhWbl2?2VT)f&Fz@X$hAY z&`%r@kD} zt1@`Kt4oSo^hz_y^RX$Zwiv{hX5#d(1)6_D*P94~y*&NLV{=8IcjfVV*@#5P=#`da z=8)%a8?vkddLC#aiuXhNHu@bl5OK{t?s;bM+IcfpePZ?zOX`{-uwa#|568ykDz0I& z`?WR-#veF$-_XeT8+XB?h9d>{uiA!J?fP&qF)Z-LjjEeL#kn=?H~aRO@@=}^*nH

    `~Jf3kC}t6E~W z`ckOw%vZdh(zCu@xvJ2_D7j~&`gDZ}&dVgaETv=m=Jl^z#LY56>*(VO<2grWKQ8&W z#UVvpXtHtKhO4`OHJMDxQSelBGdj3fX=l>^OE+XKnk=3NDrt32nlHfpjra5Yi&b~l zG++GtNFG$oX1AAZc?XO~H%5HLtQ@ugF3Qg@iH88K`PS z08qUR(~eQmq8kI!26F|d=0kv&Kqkx>%z6;r9OSA8RPP~xF)$fmn1faeqMHWN4RaN! zxAlCq(N(TYHlWGS>6@+dV$ZVK@ zKy?ZNw6Ks6dO-i6)iCH5As2<98U+E~lVuT>`UTxekQFe$fy!6}2w=nFH|!-Yx}nHL zBB+E#faL@YMJsR7jRqM7b1$e&MF0VIgnO}+umRqzK)V?j_<=Bhm4P7|sGNZT0LGp> At^fc4 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-uikitMain-V6MLCQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.compose.ui-ui-util-1.7.0-uikitMain-V6MLCQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..efef6e2e711ef1098f2852b4cdcefc21eb72cbe4 GIT binary patch literal 4249 zcmWIWW@Zs#;Nak3U|?_rVg%q|;ABWiO-n4zDbWuNVP#+pi25$X%n;zs4pPg&1XUS; z(*OY^19B7dGSgCvOW+2j_U-06{dK`)paCbnf3&n%q&lP_I$r zaldHz*(~9}2V6{(7j2v>87g&wyP!R2j^_6>kAz)HyoyD+;$C`gV)t?r-Yc@-q&Qt( zL$`myjr0C`8B@=_{{M~_sf9 z=A^+z+HC-uFqpZ3!A)bcuWM*Eugx%0Xw^!=`CpWUK$_KL3V$uph$XV09|`N(?e zR-|D>p~|zRB2Uwog+y>3h%m4XJM=~nvlG)(;}i2zit;m4D#!}}1EP#JfZL*%otKLUnIwUv2}us?(^+@e>SNuG~QNwviwzBCi3e=X4b8@k>^80_Wg zKOUPa0=+Ab*ULsEI!3RwBr}IRf7_5{70~lQ8&SL;JJHtvuz^6E@O95Q-kk1<9ZJjm z<}T`3sl0+|sZe}S^pRQ1!ctWW7hRcZWpwbrGf&T4$)Bti3w3nfC;xo6*ZTK^!z|&Z zna7r=#xi(6UA6K^7Q0{A)Y7dF9kwy8S$m@OQoy1c4dy$mYi8UHdu^J3VE*=JE4(|3 zSkr@7Rw!Ri`t&-!V|5fm(M&z=dr!;4HhlIHbz+M3h_&2t@9G{w)#R4dbgEJK3@$Ln8U!oee8HD3M|P1dTO_M~U^vNM#u# zIE6QL3q0imrfwd*DIB??ElDg&Pc11X&&3i*E`}MDnO_`VVP-;}fr@wx%*;#9DNRXD zAfYJ*BfLeVp?HJ88bYno;V6Ff)fe=6rn8jemU^a-*%|UK-fEqvu zkb%t{wB``HX&~J&SAiNT2*3vv#&8wxW(&H($ZZHvGX()Mi82^RqXpd>kg+iLgBm0V z@QfI1FqZ@MI<;fZ!HjZ=9gp1~MJy9Z-V<0j`o_8%py7-45isAJp7H z0BaT!d<3!sqw#@m7szawe?YAX1UNyWU1)6!bc>LyD^Obk0gPEm^AyA)EG-LkD?wJk z{06EA5#SXY7AvvWis*(SS6iT35CI(72^or3C!!k-G79Ei)N*VUlF_ir3*Jq@XAG#; zLx9g%jKQb_@fioI^ANxV*ja`ZKrmOqjKiz}@tF&%P7q)o9&^#_KYXTw>N^DZhGZ(1 j+7F*WsLpc)nu^QY=yhL!H!CoyfjVj;44_0e6YL@Ynzab- literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlin-kotlin-stdlib-2.0.20-commonMain-WPEnbA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlin-kotlin-stdlib-2.0.20-commonMain-WPEnbA.klib new file mode 100644 index 0000000000000000000000000000000000000000..7e71c212bc0820168ac8d120fb636026ddc36fb9 GIT binary patch literal 144473 zcmbrl1CVGzvL@WNZQHhO>$Yv%=55=yZQHhO>$bc1&b-<8&qlo6f8%XMR1`8#W>uC> zo&1i1G%yGX00aaC004mC-}wIp2mnX`V-r&Y7i(vFRTWSGKn2YgBwzpqY4CsW0s#Gs zQ{jIr0O8*R*cjMan3^~_|ED0?XhAq2LKuKspGX#gCHH;WqE40)#NR^eFPEZ+E==k9 zvJd@6QmZI;p?H6Ga+Ewi?L}heI|sr#b-e*FJtlOr09 zs9EJ=ZB>_Ksa4rtJeq6n!2Z$L4C)?L3#nEI=%>9@`Mz=e~Z4W(j8og^>+Jml8Dhs=ez~F~> z%1jUPqdj~|$UN%!jXSW&-~O30c~0ME?4|bw_z%-V7~P>C{x$m+;Qz_=1pk%6> znT2NO4Qi=Oa*5IgiOmHL??OX)C7bL9`>3HCTBj??*Ty&C)aHw+*-n?oW4B%EE25tZ zFC5N_Rk0za8wvIB#!{0S^~s|6sC&cS~JvnMvcl7)St$YOqy8(Kiz6|RvfI% ziZk)0hy*d)cHCCdOV;k%B6Ze^$J2;#pTlEASn9y&sq5{P#Ypw7TD3)SvnHrlotkn| zoE$akux2Se$!ax+(q$G+>ZISuDtM8Q)Ud>{k+TUXt;TTkK?!Q zB)HgH@WUK6VR?v&Kg^bubb@Rw;EXqb%C8idTJgnMF1c1UQrXzp3)3Sb7KUHSmowTE z+vIa|6sav?TL7Z>^>cKEwi=JI#HhrO+orFC(0p}rb!S$o8H{aWbt&Y~9+&8y#^}xz zXw@Pzecq?Gb_|<26lqYcoZPcBL!vHkv1MXngv4NDPu~~XoLWn!k66;mHM5rAFOPX} zagOW!3W`qQ599JTV+w_K=eziTxl>oEJ-gLttW%W#4jEBp7$jJ~ zo$1)K21n<`Tt7xMT%>AKp%~XT*MiZAnJq%rj74)}nrq6)*>sl;u|eI~Ml3z6@7k59jn-ihf7#oz>Fc9HN(#nRm5+iRIMz(?cw3no6-|9R&T-iUvV>lt#u{2DY#nU=6O;5}*Vv=?Ir z)~}iWl*L*dNg5RbGq`oD3)sCw_SuU?JCM1wXyK46*)~6GtZE;Sgs+FgH^j!<; zRk61&W zN-Uj-rNxgV8)u44+#!|NaNcP!L0V(p+=obhhRaE#1a|f;c+Cli?L+~S06InhH7r_s zfz#cOi9HFoBdmaQ&#K=wqq8BdCTvNm!7&_cAj+1!H44c1SH(z%b$cEzZp~^axw2=s zc3DPA42`~rA}uQZGE~q-p%Y7px5$8!;%L00eVPX4H+V#jtxUaTJ3P2@hwg%khP~{m ziv=#V;Ah$mDW#Ph)O;JLxYz}9v7w6;bsW^($ouUv=%j$Src23km}GkfU5X@g;mU)u z2I4z%t`LsksPk3WuVyGXfj?!%R4JuP7b>~B{_kp4WL7~~0E}?=8yq|l!p;p$FV@s> zf1*zv&+{3teB52JCV?9lzeKB5`f$AxKH&bq-eO|n0bL4eD&ArB$Md<8oO#x#qU0cK z$+Z-wjaEv$<_!R`L{%he+StP1kEhbDmJ-f=guOGh@8@3upKo*UFy&xP{h1#c=^;#m zufH2C=iq=by+}ZO4Fnpia`M!&$AQFTrqkQ=9|B)24xawjWKn%4{g0>7fd9TR#EN3Y|@7JzBx>xY=6smjzhAT^HeqXPDAg4xk zfdi-BFqWJIR@$B%1C_hQ9xoObx0rixw7=pGJ&(4G$m-%Dhh2pqTuF6q1^_5cy%0&w zz*Z?GhoV|~^$bxZ-3`|ap2!-a2>D7JhANWDs{r&z1HiqgE21JLCOLm%seZxK&aVo?$XF1e1!6jV^uKc#butU3CPCl;p&S%V9|7?m<BY7NCf!1tm~2ehJ`U70)9CH8xC&qhn)G19T5n z+6w!!uc8K>OlURwaks1idqiEz`0b-|14IXGu0VSN`BPRbd2HxKusDN)Nr>*Rh_rHu zkG}-S1$0=btN>Bpns>Zk$pJlFUUZqfP2dr*olyG=3jCSskK83FjiB0_sgyltu#tVZ zfPg>L9v>#BxG{x%5hl2h(tz%mz6OZC11h*B*E3q5RjV#}IP#uNUCE1ZfxlT-`T3B1 zTL9NZ;qF|-+oc(-cB6y z5!nsCbdU_V={o+*C27J}@EdX)3te3;R2mF6Tva>|Mevl?#?+?dk;wp<${HTd(i$Xb z5R+;G3BjsbeXqm?I75=9rzaRxoObY3(Uj^8RzfS3{;B% zubyz6fKk5aMFDTxEm?tfAPr6)VIbJP4{cIuCRuy$MpFN0iZwW}3Y6tAIm_ z7(v`J2g73wfWz*S!|ap8+WG!=XD;#{WB9Bh^j<^ojWIbwD<0bP^}Vc(*BVXMWB>et zC39{pMw+(6%8G)Gde;E;XkcwmJqu0^c4OE7E+KT1PV46Ucjy`@mdJ@!*`FL{cj^ z{%}zyfA3mo5?sGTJ)hqt%|Y~0(0~*5ZrrZb6a01man$(4*6Xfyq4|bIC3%N?-m<;k z6Qwp-26#h&o9VkqxcJa|7MCATS3sh0LOeRR>fnqCXeeY>jvg80LSrBbCr<20UPc7W z$GL>v9$a`2{6HB2vzYQgLyW(*+7o=(fV53e8(R|+1Bm%jBV)aH?a~!ZyYI@0HSEYE zg@PM#X%k5Xc-a-aI%Ic5t@lL*NIbbt+51T-!lm1ou0LK9V3jnz={ZKre%G# zXB+KY+TE%vU=J!(b5sp@S7JRLs_&`Q72HvyofUb_ZOVfOzQ(?_>d!o`t@zB+@Gl;%LI5Jz2CX6Vs#gm2o0bay*>hwh9> z=aIc-vNx{=_}-jopC^4Y+<-ngLWcq7_C%q-1__hfpc#5J*stYxkEG+4ya$|q~#mJy=mtGX;zITg8e4tLH&tC49L_WR(SW@E*hLJnD=@X z9h5k&R{u2`<jk{QsG3AC{FN0F2HPb-pN3+hr3nEgM32bLoUV#9im?SEj~3(2F?+DpD^{#0p+Jn zgo^K?gV+`8I!O*2j!&?CJ8@4x?3wC9Jtp7QB2Snzpye&ORH2oe&}2r)f-^?oO|2$4 z!-`^XViUpnmn=P3a-umlt}Qk$-G1@KGuty88+5Co5xBrkUY6q(rOBB!=PwT;;`rjg zCz4d5xsXT$QV2oLeWU(00pR|YJ2|l_{SS@icnEykptCRn9^de9Op(E6(Qh7JwoZw& z{Hq>lz_+|(9!VSqk1O0JFQFWgZZ`}}F=pwBE%PGejTgieImATSXEKR*kz;i8?<><% zW|QS&T<0$|omlUOHW4;f(Jt>bYI>qq&kXPGRC2-JwVkm~>~K@OwGR4ZugW4P6^@>; z{*n+>ED;xtV-r1NIM`z#>q#(N5uAjJVUV5`JFyu(a9yFbV!dA3?>4L-J~RFof=s0g z>$J}W+6w0+n9QK?aUhrh`T*yF=CDqX&o{pYKm{h*fi?No0=McX#V!bJ{IDGM&El|K z?d-~RmG3*>pu}`hC*V0$=p}b#pjs5aZ@iWPYrLW#Ud$i&&nqSPC=&slGRG6I#1&uy z{F8FQ376q89uz^^57ha@@<<9kfjEWf`waZx`jLy90(tQ z3S5yLKK)nq*h1a0`v>V8=|Fe`L3neBCGHfH1V;x{J~2Q;P6>$FGVf@4#*aXF&I~DE zaV+uL7163_jp1Ro(?nb6IYPD07?X~Wyx-T~HVt!n%U@|?e`LAmjinfwa$7n(NykRE zS+E7~kX}mH5Uz&^nU-QZH)$iBuk(NOse!5+;-9{?X z0v5_EKrsV7k$d^Db4oECa2U8v!o)s)ctGNhKc=pMok{%Gj%xBJD#7?m=!hCJY?sqK zLD@9H3ptKWuR64VnI^>#rQtHP&fh{#mbsC`r36 z{i)hUcf}_>fSJd$I*qqomr}ExHBbLaCZ|1w0!>OEQrRN!_;&Y)i(HnVYj*VPpT7eu zU(mI?d(XILMOQuOI%b^aO>&Ya)Mtvr8{HT-dh_w!?ReFLnnQl5~Fv0uYdD2ChevL%-G3AKQ5|w>W z{;obzz88dhpz8^GT`UxtUkC#X%+6TC8*w$}k~x8_;W3)DKCmF|+k*`fS` zC>9cM`JCt#iUvRvnHYXSe3M2y^!$+{a*H^|dLgd(1XuhfC-hGW=s9@$6imJ)n!t}E zN0mP*s)u^V3KrO-4j%bV<&+S4BV6a=o5nisjqao@{{x`?$T-jx)kx@gz2|92AACRq zEeie$zvwZ|>jV1d>7%Z6$7IO}a*73BYP})WbgT|KnuYBOwQ+`jLG!e`YKEUQ!ewXj z;!`=Hd*=2)Dt~5D#A3xGdHJoh==CLvt5#Ps+fS-N#q{0$?}Rz>Sz(Sr%f00F%^cP} zwK%0`DRpgh*QN!kgGB4S#$zT9I>KC=?Cdqp)^34&N^o%$k5u>qiQILKB^|dw=`oKD z?4DVi|Bp$6Ar3~MaTUNw-MIRDA+VSgECxoP4g$ts6X%krIm=Dw++#JFiwU5Ap+l*0 zW-@SC^YnPK{L%Se(_<$d5F$nGc2{cWqDQvijB@0*sPed=(hgn6$H^EraQFuM7>v-M z^Lop_Lc~@;br(SbR5jwC1%L`N_PmqScv=@q_PaHeU9lG9;;p`%;+QS}!1`=#9#Y6H zf#z;T{=ErkI9*(JfT7c^ypu8583{F8d$9&bV9(_vFf)=7SQY8~%8aeOC}YQd$@N8?b4SR@2Niou=G9_b%QjrDhFoYBT! z2M*s_BI@Emr1)RsadW1jLw9HXt+{X01Y(oEl=k4FTOz4Z($wxY$A3g)h9*O|AYJax**an2}j?clallAn$$y{`0iSIIMB~Y z1RgIz8t?B4!I^S$+-uyvr!}7ZB?ZUBmi&64zmtqJ#T_5y5sxFIG1i|HLQqBvl5a~4 zktzvyl6j;*6OTg!ailLu01gersj+vYKcI9TlX0ZqF9a8(&Bv)>|Cb>5w;1tHwtgu% zG!VzSJvlhEs=t+DaA;X${ecp2WY$M}XQ=VO;fI!QPEWDou}F@6-*Q+a{QL~M6kWy1 zED}*HEY?MWhDG`F4?=_^$v|dzh{fZW4^hl4B#-dmZ`AuRuO{*|Ko$kA#u za|oP4yTb==&2s}s=J#ti7RNBK@yr?sV*fC@kSYod-X<^F%$)f#%)gj@-eUal5NN6c zemO!$L7V-}G1?o01r9GZ;EDfJ+BW+rKRiUrN^*{yPC2oexi+Yod3aVoU+!TpIEeKB z+z4a;S-Rvw*Ey+Q{SmYJvTIuTXL9$xYpU#{oCg9c{cm;nb>%&ao`E=*euL%T>_hLl ztxG=z)!*`6C(wbDWk1oTUw#Ai-}F$=eu`y3kwRa3N6-9rl%}zn&wletKlq)W@4aUV zKj_&PKLyHPdMJOB=6`a}cYo7sUj9QAJ=gM&X#Mx8&GXMab;S?DDC8T;7veszuq=kwF2IU_cPPgUHT2b+OsF=2Y7)ko?X`O%mpSqfp3M)3#*kX9k*-P0NG4p zUiKH;?Ut{U&0Y7=8r;ssuW~P@^#Ct$@teu$7@KyBUEuA7Og!(iePHG=d_}9|^@w)j z*dEfKAtQM_VRD66zkm7>byyYEj4=TKN+kbJ{-OUHHxA=}<;E%2T-U-GMKnuUH)(N2 z&p?G}0)h;PiAOLO1g{*6;Y?1ZAsir_oH2m!gpFdIsxmW;SD?G%7-_c~^U0Mvz;T5; zh97%*QeRsS1iA0WTQ{imX0V|02M`PkkMj@Fi@ zsx88|TD67Q37I6b3-*Ps5Y)+&E$xwz8yNK$yiFMSa;DQlu8f6wYETt-jr9ae)Oouy76w z^@|})$MR0i17)rRXv{FB`OS>AI**2&Jq6nE&ds4N*%37w)=0-;P<5dZ}hY=NpXKW1c`^@Yo_ zg8PV-Xv~}dnuez8a2aoIFpa^LKpMBqOmlt^OcBPdiTp03ABbP@$>^s|W4G}2Y!|={ zpV@1H=(UEp7wDTZI7u;?@p@;#KLiN~M~`jAf>+WTU@+lm6>xeXocfailwM~s!}Q1{ zPsPsGBtF^dpx5L9wNeTt-*QYz$zlj5f1B%HC7`sGG%-U2{4YHO2%fhA>USU2q}}9W*XIYU=!E})@$@B&)bGZ%{R_{dMq?#GEDLJaOz<3(SCZl33C{$=|!yjz1to?Pvfk!MkBou zrR$j-c%`Zg(RAUA#?9O`-0WdUrkmZ1&{PSi@Z|idvm2mcBB@Mv&)5|Xz#s7W-*N#N9{yP- zTB7J);lK`8*c?c*z$H8owE+iJdXE_KLa-B3xbW_Z=*>}vGx~riEHGqEOJVZ-0LU>H z(p)tZ{UeFaii^`cH%3|YizyWOX`>#=0C|ZK>DwxU`F>G{An1c zA}G&U>oCOqZv-)I`rQKF#cAw{&Vh$vjbrc{zbM*PQEmYPSV(C9LD@w!JduqhKoI&E^39kWemWwz9VCUq#?QE0N6!d%owBBGJdZyZ4$@P6j#BUz>OC+IAHA|YcI%fR#5vOfS5ajGhW9$Y z_aMIaB>ra~wsS(Rdk~!;0(tK+_79Db!tcr9!0v(Fpy0H75;-u;CwDr%7SBeI4VnLClU|~$r zo!Hu9LDYY<%(9)>#&dg?5rS4FCT>CSMOW#E{SGb>nCu3q*=H2%*lrH0ic9Tid#UoT0v>LZmkzYLlKy(#F$ur(eWzQ*TG^) z;*uF{>1dIq`?w4T+4O}e>ZziQ1S0Z8CD#?)(PdJUoA&Fn} z*7)SmKEpKN?_Y_hU;aT_#aEVBneh(q!YIpCQcgF*zC*ex4!xqGkImZn)sU*hBqAhe z;uiOrqZ+?!raEU?QGnECrdnnkL+^wa4}CE%qwa4^oxoM3FMArU8_IKR_sVACoYO^9 zSG7uCX2xXJBHn7P@uLc;edW^&@jY|Gts0vh7aN474n%MS84Jf_8>8aypF2oam4_E*u$?_!6Cy( zS$AAon(6(!w1{%M%Pq``IQL{y>8)Xjmhuf|mCeb+a_|#HP}k_*rQ|FAarR6Q!VX8~GVzi98z=n?dsr(1__d*&Yqct?oib z;L`C_Z~HWFQ1m!R*qqs#k=FZf)~9b(%4NwOI>ItD>A)Ds(%mGbQ63rd&10L3+ktiZ>=-uWDRd&F;6U&j8K_5Dl1CwaO22jyedhyE?*=(#kwf z1J!rmy3bAeKA-B|Qmh(kSF893ua>9ccP|!CWG|MtUGlfrT(73;=koqC)qS_>fmaK! zZs+O0sJA_z@(H&dtxr5ZYx-`_FQm=zqh9y>aK)rjJfzUlxY<2|LB3Gj`6!X)F-Oad*D2U=J-56jH>R?##VM|;emJOw^Dgy=Nz_B-Ce65r2qV> z_-wt6z6DWAOup$Rs~tL;u_DQOQ>VbrDC=&ex_!J2-&&NCIaiTPz??+hryZfiX-DGz zoYjyhzvU5&F(z8?h#2c$UZsv3RWrQ)N#3apQQ!iJH!f=?quo!tXX0ZdQ?^`$#9?>z zA(6Gu8Y+!=oPQ$3VLx=j$VKzkyq5&bqYIW7eusFld2Ir3AW6j?Jas3qI%$aUk0rbv z4*G5kB50L*g)8R1KR?J&c`wQfOG7(^FJA8BoA@+2k%xz<#9_!s=;C#%~{B72dDMAZzphvOjs9ONm^J-@};;(;UC5==ADg`VOKi~ zYwyuJ6F%qjeiz-L7qa<7OMeEq1;Sqt@Kmh7mE5Dv#P?uVw(g(t^ZGNn|ML%|*u+wM zWhpcO05IYI>rH^^zq|=(Y-(eL?S=aYs$!9Ir43 zn=a@=hNzw|(11;Fk;G(!OH40XURi<4pK(_`jI1?LI@DoS*9tk#k+2kOeC6j`Svzj! z>kKl-t`_f)7^fNe7B#!o3Uk06a$rKP_{hdq(iAs!+@i5UrkwlsRY`C7NOUxv?ECYo zgnqY&UfXcr;29s^74=(klhHwFhhaw1&Dnr$l#G*QbEP1sTzF+_&`Q1_G|#aLmed*_VY5?RP zg;F>h4%RxS=I&O!S%ND&T(S+Z)0VbOo*FNmc!DjT(3Ej7U(pUeACJC{NU_E?oE8L5 zIO*otM6O^QouFSvT{a$YrD1T-5stgc*d^NvTW|3J*ywQ)u;LH(Mem`9DyAC7$|^?o z42TR9$;ZVA>{vmx+*IA;4YEpQ8ja9ZA3&9lrr2-=*u?D#J8i~oxSgl`5;l~Ol7o5`Itg*fG!Dhso_McC9@OUqVT4uzsZmY>prc* zvIEgd;Pe$X9~g@WK9lr41?CYutA!j4W5G%2oM|PB>F$YWs0Xnr+>`L990xzuRdd5^fli{6>N?ceCqO>v2%Gc0 zx=E`$eqeVnq?3fH0;w5=Qk+WaIr|UZf+kI^#dueR1*vzGrGu|Dj!+k3RZ{Ywpu%JG zkN$ecsxSQ%Y~T{XC~mLHLPN2zCU4aoUp9qtp(; zpID%CETpkol^F59};?;zs@UqK14Y$uK9zpLm-(5!Xt$xWd%J+ zqnTk+n2vA$n7Ipt&Kz*SvWbN<-jG!wm5Wr27b3Rq0?#wOHK`5cKQXIHpRWtIg*br{ z)SJZAo_nX654jrPD;+(wq#rDTQD}|loI#2_6HvvL$@n9^WR)!vZrKnKpgJ-JYLmJ# z26~h3LiS_KbI+^Y%4l^n+dRuPEz?(2`zqQzM_N|u$!KLqy_zBJpel(p%r6u>b`;=o z)1ySR>0yw2XyFRgy>+wF`Q+ep3aW`D(!*vL!C6EES% zhF^;}_>vQFOPu`BtPDRzl#amb(`66%jdnn;$!_nrXR}^9FuAVPEy-8MKN7CiU7C$T zcRIO>5F@PRqLVqN_O(LRq*~exnr+?nTq5OjJV43on&ckZsvSR-L%n#F&NQ7vxp>vi zH0?^aXnp!W6IJeH3;(Ho+b%^^Kz2RvHEP^{qlR7h{oF)*#KxkQK@u-yfumtF+ z>d11`VP9IrUExM(q{vVb&*)zg61$f?dWoc)N;qlu?87ri4dG4VpZZ*x_lL@p-fzM1 zomH?9N**wOwY_y>{2eRjk|O{=TPR1gD5|so(CNhvuYb zJ-qMfJ7A1ZZDQnXVQ1^~--Ai>{r|(H z{}&|;40`{j^M3(OcWZfMX{o!c_}of*c5K{?F&nKj)+@?Xar9%x3Ntydd0nNCA={-p zkhxNVm^@ii&r66ca5!u<#Ux?~p$QRCvN#)*pMw>{HigiEY?M%kAV}pGJ4;c@4la~$ zBm{H>JI(0qcqJf7`8D}zykt4OGTsBp>xo_>L+CAp)tYq5SIJwm*+ND-9XnS|fmw6m>#d@*Y?F7;N zg(h^X9o8fW4O&_mertSyxK-NJ{<3Ay*xD{Gckit4UZ=_3Q~b5Ic}d>pA{{weqUkmH zi05|kIth1Yo{rUaJtEWjs~UfwQI*WB;+gZ7tNrlRp>};OH}LHadWVG3SZ0I%PXJN&9+Q^zjdL^i^sQVD?tb+d{j#}bM4FlOSvhN z9FD~mgsb$4rn8dvOtg1B55_FoqgIb%Rg-7K9RE3Ei|?R6eA#ojGrN;ve;zj)N=7!& zC(NTk&9>Q%l1w#-aq5p!XOMPRvputH8poFPlrp?Z8wpa|gd?s?@&d2xG=8N6B2Ey= zJtnK1Wrubx%Sr3(v`00Xo4qAocSIH$7Ujz*cfarf#0j`jS~p!@UhBCxXK;3qoDgzOh~O;zVbeP)eYMETg%DzDaS z3ViBW)qc#xXw6}>lS-GtBJAnkt4~zO3uM+YX30fGvhhn`TgrSR>n>T-j@aX8vaO!v znp-)5A0|LHb0hbeW1<2!OJpT&O>h|zT(5Ako(*wX5oMP=5U^*b?5TWNHGw{4{fx$5 zD|?by0=2lB2zF|8>%d&0YU!eMO_S`aT>xk>Prp~X%&oTabZS)GVSE`r3!VI7Wph+% zqoqeOcDxVUMv)taN(2sK;)3(G4@QeGq;pbXm~Ola8-TTor^7y)ikqWsvG%Efgc|*e zveIw{!$g*mY{r0{ahg>{)m4O8tfl6aj)l90=l=dM^H+hr7F?*_tTBh0n_ZlN-Ju?# zxKc7?ACAdxK!|6n6`X>MjUDJzN?Bkl%j7gMZO;8LEl#BJWi|jm-mDtnNyTvnJ}T6J zTgs+M&L1s9@zXN(n!DHJx)gO?Csw!qtHfopH8Qv*+dgtWo>dOlfm~Z5eDHHiTx&)8 zRTLO~X65uMcPH6`Zm3!J=M|yFN8m^MW-uMM<(Jh7r#&Hm^5hGg0T)BZe7Q#Jllj4> zC=%3<3@>znA4v{^sWM64pXNL*b>^(wiov)2>&jKRJ3!hHieG6~gIEIReC6cW$LC*p zs~+%JlZ{XT=}w=^%&XnR$F9$9t)+_l>s;X#Ve(g?Hgf^yC+RGAS<3~$P$h|@5GzLz zL9(|H9F40WC7u{BF@IcCX_}jzq@`g%Fq(1bM2+$H7b{#<30O>H)ZkkIXHNx&{gEp> zD^1b%VB%cZUIAuXy4Ae65HuxGa1_G0hn`7!)bHU^(Jile0jp5)s0@kr%pfla<*|hm zDuqa9fbI7!;#J$jA};d36eKMdh#YT8a)i0$C8KlAKLm~lMs+OxRV+v69T#gw5`qPd$N6~)EB`SUmy3ymDl;whqTZpSQ_bW5&A{SJ7f{$>c(;k?btT+zVWXBP) zFqB&edCPiLi^29S6eB{!?S;9Li9*0Tyb>yUHmp#52%wXy;SDD^*V?e5#q1{(*eB@| z<%6#AE?UyCoPN@dASyv1)EAlS1!kfVrnJP6u>dEc$15^3^hGcKna^fIXyb)Hgbxl`^Fw&( z^-1znC6sc$)Nae4no^Ouf65tgSSyoT8j`90-S0tM1QxvsQFp$E`ygMwC#3d_x(Ku0 z7ok`%E$fwLiqP`c$5r{$4%-8F54dec&RWkSLab8!hgy;r(Eu(x5k_pgjK&*8GF&nuqOyt5 zc;jz;1rs`YuUY^)La=1#WGeMaU3z72!F%*F$3iOld?xA|h0o;Qz1qoIs+=VkFO`mB z$?OX0==@U0Qj0fre_t0HN+wn-8_FjRE4p-&$yMHrRC36DaV9wK+!#f-rpru$r-K98 z&obC0iHLRrL{P$WP5SgmeC5=;w2*J(gREJCyhY$2Ix}9=Y(I)pyoIE{1*E?vq;nP$ z_~#S&mlOCGBj22~r;-ooog;gfX!)umX3Y;8JErw4#`UZY>{#z#GG4)Dy;YHasycrn zQ@mx7cjtzBEf02C?r$?*CKkbjCJZY>W$Ww%Ty5AbBSDkH*ZnxojQ#QyS%3;tM!ho0(jshz$NKcVnr=JBzl2bD9)=m@LTHgF&1Hw z3m{Oxl zhFAWE`_$Ep8n`tXrdTsWrr9@a0HeDQO1rvHN+J_}S1Q7l)Khgt$wr#5|5fGz(+;PF zK4*`HRu6>MAKn__mhu)7lJF58G=T-enlH5ET@)9d{$aTG#EXgLGPef7UU3yl?7@*> zvi_ETuK|aC>wi!KI1GE}4p|SoR6cgi&_pzvoWx=dHsfe!d`FkBHB{_-;51aD$O816{_>g`H1JZQ3wuZ= z^2J}@Za!dFU5O)}gZhtTy(K#@iEGkYzcP5vVU1O!UC-SB^sfa|yq4oo9MG1l4PrLi zXJ2ST^lZ{jTbZz1HM6USYV|ULo^aFXK&ayRrp+}fZN+|Krr!>-nUp6+n*Ij3>b#AH zEZXS^S_CtyqqLSPq!>uGM560O6karfhER5y1K4b?E`4t_s!+%$OhwJzMtc$sI10sQ zkeATVj}teiaob@-(+nTl^F*j?O0$i1E5A{KQ zQ6Lm<8z&6c$g4@r8P#9>vMZ*NRCF}qL+Ub?ryu63U-XK1Wh&`C{Bg28Vs0PrF z3i{TeEY#wa;$x6z#66@caWyT5iS?PP#y2Z|ELlLNMHAwedFdFn-1{7NTjA!dVAIFI zI$`8s!z(y9XR?eVKPkd(8N)V>l#)7%nT^cuR8>oZPwB3CC zQb?v(KkhKuq4QSrY)Yo5nCp+S%z%kV*>fay8>nDiA@PY9!6v6zI7>))?@6RFxKRI{ z8~0pcBn38=t;~6!Sg7cbfV$XEdHU5a0dnI7t`FHx&jgMr#eytKGCxHKf@H{b<>KRi z#It}n5C-RNc7zJWvO-Pp%g%o&|7`3mG1wpYsp$RKi|BA>V3SoL3qL$cn_VHxkl^w+ zKwR-BLLQn9qd1?rz{gRzL@ipyWk}fAvtnQg8 z^M)yu=D{WyG+*S-SBB=eb>{A;d`MONf)rZh)rd#tkJZ@;5x6p394CP^qE2bm6rnNmc2u#OBPq+o9&{iQE|Zjt_~5B|Gn^V0EzaXZ#0s8AiNzU zvh;_4Y7Zv7Oby>OATx%>czuHj2?)TiA)$;TtCZl6aMw0Z=@V~dB}GI+{B3&%F!uUzey!PA!$ZvbWUhxQ>WGQJNJZ} z&zRF9C9QAR+eKc{U<&4zct3HgOL053klcCMZC9#{3;zUE>V#Ft{5`}F`VL!mD8(l) zOv^5~A8mH5OjxmVV8Dy)B*DU0%hR6^clBQB_h&CvyI%gQ3pa~i-_++nABQ!*M)|(A zZn;G&M~)L!35LAB2O3m^ZDIo~CK&G}(NryxT_l>@iHN*4$IhVa4XpO;XvwJ_ag^TE z1DrOd>u=QNYCi5_OV_3ZyAje=9kJ;uQ_tA2Y0zVR3o5RzxqfY;QNhXtubj$%uRu+u z=V%_0g3Ve>JX_A+C_(fn>mC}M=1Dj#Q0rxQMDTiqBJ#C}xyJ6DfNu&LE<=a(S>2ab zFTIcZ@(q0Jm^$3p+xtFCsuMo7Z0(IRtKQnte-W?cHtIVF0WJKt?YVVl6OUL*EeiN1 zi0$d64qgwLQJ4`cE+RUBywg+anjrjBMd6pyd8NgsE_Ol;u{y2cNU?y$nq1|_cl6k)U_wMkYr~^g0rtuQ6JF?Mlls)(dQ+SkmD(a0zMH5 zH}R>SKB2O?K~N2nf|Lq#jW2#z*!XQPkMiArj2|$o@xxFaU?_~O`a;ww(cgV4;}b=*JV6?c&whQ5BcjjV#s9Du271A9(l)PzEty!TCT7ZuKL<+n;z7-zZR) zx5HIF_0|!1#b!oAdw?PqU;f3sCN*`9*e|n&_RNI4=o!!qB0=LPfa$+Q_*x_#SMDTK z_>B))*2^a}VMryQeUL~-`Xm$$E95j{OgN!^7}G@hFr^IhjgJ@fOcSWm2Udu`Z<$8* zsuce{Pjpw&&)b02Up=XxvF&|F0z1QwF#vH7K`xzE8 zt`@uy(6G;uPbx=Qf&l})#6mHOA&_KGaoxhyrfcCVrcU3 zwmwLq9m7)`V7a}C%2`K3H20Ns>cPI@8HUo(1Z-S?5ag?n!EHPboGo7fuj25UEk_clkb(FY`rj4P z-*8nN!#gj}?;k#nZy!teJ};XYa~m%~x`cpv$!YB=F0~I2t&=wRBD<284|Ga*!n)V} zsMl{sr&_Hu!_Z2UJ-l2qu3(X`)V_pd-2ruklh7bXxicSQ)doZu+>GZ=4{j)~@uTng zy>N!2lgIJFG8usMCP?wY+TJ1Y8tX+8zDCRMoie^{#z`Vl#3YX5IYWW0MXPWf9XpCA z-QG|Kzy@)*TVobw8tEVXd<#ny)hbV&;T(R8YCQq-X#mZxzxElAhgULsw)uU#!)fXV zeDLj)rD4Oqjq_@X(82)=o^+$(9n50qd^qh{KJy$=8f&{}bYo2MR(`#u8KvglV%SQ3 zLZrj(*DAS9vh5Lj>75NdUckR*ib}lJ+mEKfPr7svZlirfmufRE9HghwtV|LdJ9iYn z0%|G#V%vO5CYcn1x&sHg$Y4c!^UnI{dA<<+czbfh?curcxn9|O*eAw01G4$_E8#de zqui{i9)PhH4#_iUoA@kLergo78|YTvYy zC-_;aZwm}6YkEQNp@p?|J0EhxhE6usWh=)(tFRfBjiB!O=R~+@?p2yv;Xy9m44@C? zRE($44x|P#PEPG@+dv!zG=8A2sWY`UsLf0#9)3_g=lAM2_zi{k8YoL80XNRds-M%Y z8z&_hg4trINbtXdMfg8PwcbZ^JRKmW|8aWRI~d5Idb@R4?s1uq;WoKb-t~so-I^Yc zajQNO=)}dP!|9#2XY2Hd*%$0vyZ(3~3cSn(8Uv@^n%Fj8kepG6DP&cns3N&;T%KF& zZR+f@!g!#8%|<$}`JNuPD9YVlj4Ji{x$3v%Ic&5fOU@l$rbSbyh~62A9v}q)YWy7 z)KN;}B^21jcS%A8;Dvufl)}R^T?6F1%ult}~y`hMA7SbjTPx1D6RC+*PQ&Zt0~iRjFj89`X5JM**R znU)Q6jE`sP@fK2vO~9wtQ#nEJLKYmwNn_?O6sylF1!(p!Xf~6qrok@lTOJmxyJ^6? zw<^;qXFM>q^6fB3IRUDz(^2OICzPW_-lYHNUxrynBXwE_#aqDQG-2ELGkub0rA+O?2_BbkZe_jyy=+i{o*McSZRje<{>G7uicFHSkKMif zHdteu4|!UWY(gC(QE7`JpffZO82${PR1u`aS#iRlWmTJmZMuJ$n~UWfmFjj3Cd{sI z!4^SZ%VVeUOm1GCY>I6FWyu!Bo@KbeMl^TSInm4;o>B!IH)$?^!!%}a0U||dV)?BV zrI8sED7m}a5BsQP5>W?2&4cA}hQi%CfdXK)icL@xY>#<@>i&h-Fe4K(QT>vPQ0Cq> z7ZM_63zH-)L17VgY1#OEeNDp(lT*8YyLR%VX<^W*$v`N(0e|lP`fGlCx&-C*F%h4L z#ynI_qo`6^b@}!wAUAzRRxjF)elz={xArmOzBQb1SplZ6TrrT_fBy{PISj?W!p z+-jmSvDO`)MUn{{W4fz{q_?MRkGta7K1si*Hy*Zf&vp-nJ^C`-#egOQZ!17dhjOFQ z^0HW!{>*l4{{y0eQI`}#8I;8UF1SNq^aDWF|Hr$F~uiBF~Z8~mpsH{)Y@;qOBPya`GvOySHRu4;&eiAH~sA@NO} zAdVXxHW|F;5#{nar|z&#+F&2Mz&&_`yafz=&guO)^cn1?dX{ODAq+09EVD5P`o( zJvHYo9y;kS`MON=iNZ|Q_7E;dU00@E2jV4Vuf2^?!j*y`k!z9|jQuov5tX4Oq!N8j zx67>9NyzoTXl}B9f=}B*#y*%+_qcB=)i*o9B3M^g6-?$!7zY+z!##=iv$q%rxloP^ zv{$y(vxi2Q)gzgv_78&9BX6m)!>L3vjPD#(Q3|xOT*g(uOo!(r|PFqlY^MQCTR+! zSQJajd;$Vy2~dQv)4fhOuo68s36;2|!kNXNnXQcK^rpSIpal)>s?8{)wAC{U&UN(b zRSErP5ItaX>g?ak3@+f*Xb9SA37Tp1n;`Qy@nW*ULQlIxSGz-(xe>MoooNf9JiPni zdA7$+rjz8dO5HL)PM95d7j3nUE3U1fSEm@nbS|?$@+?c2eIkHDI{8k7O<}HxX}9d% zWANQ1?&hgY9E2=&g)Xu~aqg*Gn0AaIW~!uphP+1nSl>AwV{cd(W8!bx`eI7fyKv+0 z0M?Qf62y3f(skF(Fw$ z;}YAm+guM6zB*cgc~j!m?;}K_y~6iNbtMkwe+R!7CARMgwbz*x61^oQX!?F?NJtyl zcVC{2!+|7(%nmm(mOibRnaESFnAsGt$dzOXTGh&UfH&oFTxl;-IIVw_!mgO1%0mly zEHCj0SruLnUcQJ{xE_RpcSqiy_U*;M<8ZQl()Vk=1h}xC3i@YV*eKiw8aP&4gS`RZ z-_Vcp782p>Li()pX+#xPl-*F}Ml~m{+*g2Uqd>Hw>|M3;fyCZKB%sv2Ras8t+i)UY zM#Q3!ymt9tA_M8*pCSwB@ZUk{)c`25h4uG%kqP7UBx5GIatf5^p7Qh61^8-Y_-2A^ zG!u$fO1EfY?k^T+Kzi5Uc?9{YLbwOTs>*c=tWt)qJ1!WG@iZa)oRt1|Hf}1T7R91` z(>hO__g)-r1!^s24wURe9tLeCXw7e3w?)vhgCOw?=iQ3_#2+_^ zgya7Oy*_5@@eVP#5Mt^rO5cN@yh8_&&Vg2`+3NwqO+r?jnDxg~Ay9^3IE4q!Y7}>9 zDdD>K~G*l4?qSIy1~hSR0vtqStN(mfgBWN zt}B8W*GiKhYY;`;e7mjkn6}rSAYqlMwA|yB)TPqU7i_N$Hbkt3B3Lr{_U~9k^$Rxm z!9%bHcEDp&8qgnUAR+YkMp~-2+CxrJR~&w3p5*+A zMk7e*wn%A%EDGKVx809K2{!HbZX`SQN6=E!?e@WA57}yiP1=U{+^XG!hoGw6lZW8d zoqu2(x8cL3)OG>2c zBbuF`(D17FDU|(UudZI=x!)Z5>woQFoRgLSI8e!xxz=*?F>QtWhx`*cpwmI^_jINc ziGl4}oZ0=CDraz1@V&M*H?+2gf$AmeOEu>e%j&hPVT+A*E$-DOj$G!;>ZRr>lHT|z zsf)U;!M0bTST%ngf&FR^NIi%53BKo$J9Idc|jZvnOmL>c{hK{TzNqocKY z!C!cfSp5^nG^Q7?M`Neh9UH@6Y1lRmkTckHoY_#mhoabg>#UHe*e;}#s1@kBoWAT|?XUdD9^O)UJV+YiA{T@HW~9@@p@ZhJS+E_mKPJ|}T)2K&@x|44vxH>(%Q^M&Syga;NkX zmqf`jNI4~*sn+Q04-BCVNyUs13*^7JW}?p(H>1yx1*8@KA`Uee*2HF&yffFYh(8fV z(wyQdIszBe>yS znS4qfpoQ}%EZbg!=2yLtta{3XdUCFPSV{=JBTcn0DTS;WOd)d=V`>- zf)e>2YoTth#2x(j+ub%($sIvSlHC$&R9ONoe!~9Nz`PKWr?MyL&?g%5 z;F#9XRL7CMw^)xvr$uX1OV2%X;bX-x_>&p?XDttL2$)BVj%!vIFYRY&7c1>&Y8Nf- zXJ8j8?Pp>aE-6=tUX=DoP2Pb_5;j@D=AV;oTm=*C4P5&K=G_l`;xAxAC;OdW=eX@B zE?4l8pMe=_rL5O$J}LQ}2O?)k=>2;B0F*WuZv=r2ODi;==} zNX!P}|1{G6G;-Ox3uK%2yAd~K>$skF#>aav%*uL46MOZc^|P=cI8U$zuzC|*Hq-lO z*%Dkv+o5nCf~d*&Tv#UEL|(}r&3x&+)zwX6WPJPLkS4wy?CQKhE|+{P=IDEs%YLCR z3woVXs>M8()#!6?mvjd^ohtf7KPlzBLsv%V%6-X-e^Ozuq!|8QzDeO_<#CX`)3@1D z=Kt-Do7fX8!zHRFdQ@~*wb^{TuUa*!`^rW}&O% z;I)R$N3eZPr`yP~-Ng-SXaCct2=nI12EAshgD1LY=nb}v(EV*=*u|O_Yh>s6vv`rd z%X4GZ&f|!!d+Lq4tib)vCQ`dBCHj8H)?4$u_2nu4vgnN}uKcyzH9l}%V zI@WQ-s_TM>Ek#5jHSXCEaq3XMBy{{3g8sD|#3zhzF8hHd7S~@bzLLg$oe*38TgShK z(3YaL{nRzaQRoXC@-LKM-tPH6w`(EcIXL2`z#pR4c2{bgv(Wb#L{DhHyPq~{x1Tm% z@mnhp0b8fL`5%YgQx0)!RIkzx2gm)x=@PwSf}Hm)4N*Rc0qQ2ZhJGIyL7sR1C4xx$ z61dMkASUQ?k-cnbedz}3&5`&;0`Qsk2n5utT9^z6pqu2*1mG!c-VShkqJRqO+jG0V zzcYISDOZ7yMG+0br!rN>mS~Q4Ko*TQBfO=B6*BCQo?(E|>mbgWGDzR+V8)u#A9vgq znSnWI7k(ns*0#VleY;tkfjJy^(AJrO*%x=xMjxli1y276z0|;^Yx_Wqh585JyB_9< zgx;f@V;CWtcls;7LJKbma+a+?&dCvZQMn?4ZTi6#%)nT=UcMgVXDVV^gIPmd6KE1^ z7oMk#*NJ-!FH|M!A~-`9pQ-zqm=dNEun9FwlSfrdyP>93^WG?!bc2p7W<8P9YXlyY zO}~)O9uE^bPqRM=xx|kt<9P|+$`3_}brU`d4@-!DxCBpKgX_+OMB3XYSF|9y@IZOb zRP_Eyu~c+i5#mS+JtbTciPX}-uy;BPJtoM4H#+ftB4Vle5OE|DYQ1?LsbD&E$OQbz z_Es3POMB3`OU+W5m%$USy8Q?f&${!7f^M~kA#vTz=b^Oo#~r$#wJdL}(_a$c8HB~pn5SuOa#*6}j#B1sCW$=8F5cQ>K#*K`B zL!c*sjDm1>8#*_H%los6?5~oTtm4u=;69uAEO1?>m2kUlk9>h@ZkbEgud}3sSJ3Es z6U0mtIK|` zvOGU3#=3ZjgrLFmGPHLkmnEQuK5?|KeHl8*;63k877oI~@0?b_5%F4fj4k&({+W04 zXjqSzeQBT1(A|yQr%g!=!G2Bbs zege`udEn`dj1>c>FOQXN&zZfnXmdZ88Dw3iiw@J`JyB_<-A^GOG`F*%deLZCy##5h z#nOVoiMH?>Dm=VSe(GcSty+Bz;2lx;-=fT4Bd`g5^PjZciSt?&ara8bH{k&9u@})&i6mC z3m?0$aB*MEiHm=6!srmM;Z|Xe12@0mqO}hl#z=J+F_bHnMpE*c2(0-WH)Ked#t}gtD9RDM!cgw#6N&!L zBNGbGN1O<`g>(~#HA5=WJ+h%o>nf0vR|t$38Z3Fp9oMLQ%=qLaGGr&7NKweAI-&Im zP%1CQmc9L0q=ozkg|B4B{V-kgCZQRK$%cuc9|#Je+%-eDTdp7HX0A$- zKH3eeZCtCx!)U%DLZa^QI>i4u4^ z{4;AFOF1NS_y0XL{gEyOwGg0ILo)x7!rTsQRKQg};?VuSC-+*4l>p^7oXYX1Kg!iH z<@N?jNtmAhA@!ASLZ}>x)KakeE4R^~3%K>55dz#*uI&)0ZN(Jn4z!khLw?8OX(8UC z_T@k*rg9}BoHA-b6wt!VDX|fv5CD*Yeg;7!DWTq>QitOB{5CX%LeIl<>m&$-rZ*o^ zS84^o$=FR;l;Lnmj1K~A9(?^ZkBP*a=mct zTTz@_O;?38*>`JZIovl54m=)XCN=Mu%sE~wCN}SvA<T{On)Z## zi(;_xYQO{wQqzoS2KHfN$|OVmP*d;%R!eDbSQVveqXDT1tB_@SmD(m7n0EU+4X+F$ zfs!9e-<0Pdw2In9Fq!-wP5ZrPZBO73J9v+}Vr$<#>Mx%!hyS{{$-Yx{8Sta`ZGPgo z{O9Kt{-3>9O#e~uH>po(VvZrKK$|Hc&W5JIufpu-?GXoDHK~(M-`95a|GLGvy(Y+5VL#>p@`qD zyo{~)hk_`3b?K#eSI7d`m$Y$zHvf7KaZsl8;#~CiU(`)n#iv?xWbT3H#ro^=(gPr@ zCvNJClHjXS6C?97n)Gm^0S<*!#!2nv)=7(u159(WPN!jB5|ZT> z8!9^7wq@xHRSr)#<$Gl@xE1<}=e+h5*?yu=@#kw4oJa%Z3QgzrW}WqW%PX~m#uGz;qlKba8DAkyVw5`z-{ZSlSI*n4QF<-8@XZq}Y zOJfUIeLe9HSOHbXBC*th!R4vO%Fp-*3vjtltL#`Rg4O#Q!c?(3LWv`A-S(B2491Lh zq^?TotJ&n(OtlEYT)?BYVz|H5@}m3VOESQdEwI!Zl_;}b`MXf|a^*w9fXhHWhM1ld zTNxH*{{X?JqA=AuS>axLY6urK1@A?FfNyI9B`vg|TsjrtN#pGssyCrJt!L4@7vj>aN%tfQ9bi zT^@q1R2FrK);djDR{IliNxrW99JcQz$FLd&aA&fwuPyzB=noGmpadB!$I)w~Hd-1> zkB^LhAmAShiJu^Vh#wM&g=#M_swuFIVy_^kJW7t=Kt@PrV#_3CJY@P4#F%J=ozO6D z0zV%00D132ZnOsUuLr#jsyvG=lQ_%JDP(lf++5)m$C?cArW6J@}p|xG8&1mcSK@qd4 zYI6JJ!e`RLzlAR(rOCd^8sk^76!4Ih!4&X`!%V{q0(AM55!tYg2M`uT+LA@AA}!F} zqS>bNK1Cd~uBiPS_!hi9=8`Szp9-pESFPjtSfWSRzd!}X=|Uj;fw7hu(tS_ZGo#4( z>wOD}se=mh`a$VFR*9)h>JO)%_$t=v?1Q0E!*@4@r@6^BxTnPe8X_6DXX+`^L`h_v zhdw1Rg^o)nwMc%kIbiHDQ%Bjh+uqIWqKZ)ge5 zZT4I4dkyq&8?zu=X>LCI!ZtkZ9Z0?kl89z62~-iUp7Xp_(@-LeXoPucv)@E$#aV?d3_W*ub$3}ccWEBFeHH4MBdy+;x2z1?IpKp@9Cpyea7lI_WQre3Iq#N^ z%5&Nl$1*PYB?!wj1Djy5FJQAVj;5XUrU_45f=^@FAA7Pn_$LU;RNEq$<<~k+>Gtbn zmEg->__M}zzR|csk7}9@OvK}IB;SC%0nUvzm#(8^nMW9JgYC2AXXC0bW z!#{8~V(?!GrQQgs-I5xP#bDd`L*5hS|8>(V_0d5)&p{1-KlwSV`G2xj5B(7TE8jEl z{Uy6+i0oRUm*rT(cuyT}-1RrT26 z(cR(k%-Fi@Aofi0^h#Myd4(=JYVp+ROn*M-PxcC+s-bnkB)Y*Q>dC%g8O7egb6LJ| zgklhLyu+uirbXfLfvOL{=wQ(Qd_gm50(?Tu@&VNkz4j+WM-Nf~TYkBe*=JpRHGe2Om+^G^A3@0(&z*ecUpxJKU#qiSN_RE%P`{1 zKe=cLMjZJk2Q{vPILVVv(P$^~H%OwYTRWc-gc%&xW)Ie*sC9(!_T{XyL`{;hCx7>L zyk9huCUgVMo&-4O4CEjO!^9e3fg0I|V>zs=V#S)}WtjeA!&@L=ox`!`D;BoNud?GS zCTE@NKK7LY4tvho{T77RfYdi&h@|$f0@wVl36tSZ9ae>^iQDXL39qXrF1bab3eqb(UOA4el?m?gj}dWf&a z4(DQ70*+u5;*MwX17~~0HRsR^_XhGtv2(?>r}yJ0GDTQZT^o}n^eRdnHNDcM1*rV6 zHcCb3gld@1DiEbxH8>GB)fsm@PQs(B^f&A72FopUq51b*V#?pQZ`FT19g1+E-N8SP zVTEJ-S4|)0|7iMTsYz@86UO53*I`{>zb88BpI*OIzED53gg|&;KR%@RX1_x2yVhJV zUOOWkpGU|RE^Z>9l9Rs?&x;1r+|R3uCZdF92=)Z_YEvCIlh@PJ9hB(1F=Rq9nAi=l zbuCfOUB&{gzc?{?SkkA?*#~FRhsCd2*IDqo7wBU)nu6OPxHFF~i$Ff;3UVvRSgVr87;yE2Uld)R;a?$uIv-Z9Jou~@GU6bwS94Koq+A`&g z1Z}Ti(PW2YMFm6_4wWx{4gw>k|)p2vz1?v$8E;KVZuzMDzW}a zLw+EH&BV6`zIxLrOfQ6hNE$4bFX1G)`eQMcZW7SQu?AXVszs%{>30Ss4s@DYuV{i1 z$wuZ>WVwGRH*M3?wC1>+KRw=1l(qxWQx{gG!LQM6kZqu8!dih?VR_JFr%KmK*IyZJ zjIazf=Um}!;5QFgimn>3M%Pc>m#@^Z7RDfO7M`ri#7&*Dw(<@XSl3h6W*K=zTw!gv zHMgwM)OHOtk3MW0e9-*_6=hG7zQ`*I#UT$=6+||A33!Hdum5s~@QB-rS=Y@q=k~83 z&_9eFaR2PzKdkLPPL(78|DCz$zL1_QBg#}ohd2Cu2hxs|*}uD;+h+!|902x9@3uF^ zU-WS{G4>n-ET$C`Yo?e;R0JM9BX>*`RQdyFCc4f9C?}jJEc@bG>h1DXm=zYc1dpC8 zhEn=LqHR2|)IcjoC#zCw?N-ESJ(!ge6mz?La_!dHs4v)sA{;g%DHIl!vM{X^-pWi% zw-I985{OZgf+~zkZ5HN(dZu1%e8oZa@brQ_EYXXbQXjlKyM8sc#zgsYX2n6)a%IIq z_cEJ%>)8UDy^xj@afdq4l3U@O0jV-vvX+IW52_91;t;ViS+drcrf>X*VZDO?b?g1~ znq^^ExK+#CsSenWv!4Y8-yGdiX0duSZ&Vqc{7I>CuhMu}Wjdxg7vGXkY$GhW9iH5Y zOzlRg0i`mhP#d1?uiW^%GJkvisB&d?JZL4>Lv!IB$}XnR!`uP+EO>o0*pb!BTCqKe zrGXFO) z`N8<}b;yhB_l=35`NB>-u~`SNO+z)aop zmPcxG7O8R2h%G|?fFW-|4)6#siTj^Iq=Z22k_S8aPu8f z)Ys%vH``y%3%sA7?567BZRtQ)W8@j?09sqd@VNhX4rfOjO%rm8-bcR?Tdu=(qPNhF z@d!S)IqnE0M;}l0ilden7VqrZqur+%_?+`+#V0CgQ|X@p-jN6dU#7qG(bCkxb+n!s zcJd(+2EhAFA(DS25mRhif3sw@@`PNBB$HI{?19z7BC?t~bgbY7ySB1TItP9ZMEd}3 z5E03X5hn;gYtRcKpx_X54bLsZsLztQx0+5>5fq@*7+@B7XTKk;+Arqh@l-2j7XGDr zDycmxE=QvJc*(I-dM2{NTMdPp-VN_wK8@rkSAD6goDXD?hL4Hcx7oSmI%LBNP~>+Tf_m zTo#!yz06)?f%K_txl9)XYso~B->siBRhk)-n_{o`COpK>U|HeuuRCt63|4G{T(j>T zV!-;y3~aub_CPFBecb$(vuT9T1Iin3ct{q8K*9>|s&G_^zFNr?lsxeh;!%$>u7X3T zs@cM4r1j=(!eGX*U#e!CTK5>?;9%ozN+(jv!xyE@N~NSiQ8)uZs=hVVN5;oG^Bsh{ zXtu&`-sO>YHFvE(pJ^5z-nMeK#ZWixSPs0fgLS4*vNNY<7+eY6<@q_^R^VMf#6me= z?qKw)-es++3|_`YI5&L|vKlPJ%BzG4A(u3my)uIb7nvms;byi{aV2WV5q6c?WZFyB zo+qpP0i%y9K)bN2_Z?0IlQ*yscWO4kQI4&0rmdUJ9@#7d=2BiFG#~bu4AW(+0Skcw z|9nWeX*aRfP!Uqgu|2m{Zsx+jV4l5J70_;$waBY(2$iPIc~%XMX^8FQPZl57WnSQ} z?`MY!0?Gc!ah!*{7}h90?4d$ZM_92|&aTWNKUdOr#H6WQN=A@IR1YoA9*iC8qNyj} zPrt=sBS4VWt?6O_n$$%QfI02Pi8t8GdJM$Wjx9jP(Ov}A;-{BtVPh7a-WZ!%@ERm# zs7#<|#Fvx+ECuHe;|DWfDHnxTo*S7@L}ox1A|IWLC5SG{?q`p9^m`m++$>SN(*w#F z>6}WCbdkMrxW z=R@IHVzIH714|9cKzQZxJwrkSUk;gc^7p&;c{}4)L4LX(4?>kU$7#aTo%}dLk4C=HqVvRCYuuj} zVceFzKP|+#EproF_X11X(-nN(%N@`csD-f-<-#d$q&<~Gk}DHF6plXo=5czgja-Wr zsG4)u0^II(%2z0h8K@mqRs7s;bxu_PPy0jHroyG*w9cv@Q1@3u*A_2$Iar$fmwv@h z3ju6zanH3mID=y`O*J29{F$Fh9*CO(?k*mg+|nFL{1e=*66apVK6%`fRtz7&ri#CW zWm~uDG=q+x z>dD(5;PFqpw2%6+VM7m2GG4WNY;hwYGoWUVYxu#WP*Clv271gTq7uDJ7l}3$6yNdLw zhPZOiqvM>H4C>a&e;_sX?Wd~j+K&~PH1EnXDc4)qKfpvbrL}!Z!m*g_3&R&|b#gTuY273GM-{k4vM;R5Tl zzFjpDON6(tp4V=|Tb=oXT8Oa~eri{MDFAv7hUWid9-yJ-KK%uldUD~XXvqeB{m*{q zyCn%smVR)5wOzkG`Rtxu8px$(-!Orz#gsfQ2-N5ae1KtK`~`3oKT!wBj(;Lr9;MfeueQA1(qtwWd=NMQm?8?CdM+Lb4ngu)PFr6ic^ z{Y(>TNTsp?*@1wa0#L(LkxY^7Xy|AUbSQre^=8>jK_0gss~^1&T4kciVkN_>#K?dM z<<$(AK{n&`Aps=`l7H9!)+Yy)BuqxBh0#X`Oh8BgwZy4&1JvZR?QzM{Wy4Igb4LPg2DVdlwW`7&|u*3 zHq^(^z%=X75X4{8cw;*=?>FKV;n-g@4ZQiwJt_`w6iMy(motmUZo8cVSyLGw={H(C?UeP@Jw!;5r3!Sad1;X(vmD7QT$*ka?+@} zdX?gdsr1K@LcmvW5Uzg8bgj_vv)%>1qRg*GjUrERR=q28Rc;@bavamAiE^2jED-O% zjxq$aJXtqoCm4|DkC>wN5jDWD8}DV$>YPoA)UxZkWy-gH)FvQ#h}Z(|nAnv_cB@s8 zg(4sFK@b;(4@X8>?rR}p`Xw4wI`hiKg`1>+Cy5_SqDh0i-uo#ah$vq1yhjEMz6^m3 zFboh1Ak;*{a}sjHa?N>`qHBH((Fy`EN^8RI;eceIY;GWn}&`^6Z$PPd&dnJ5pU!oRDY_3@0T+M4GL>N<~ z14#Kx84zK+`jF@ZTibq&%y^GPotl7~F)xYri(Nf8K6FcFSHAnGS!t|4GzRt}=uIh1 zFt)>hF|5|Y!GH<(UPk?}sc|KVW~_LmGZYTiz44v7hg$$C2@_15ZBh;YB9m4!G!7XF z6Pw3}3@z;JCv%N#ZALiJlIp<8qKS6xpyUg_2YsDS6=HFviAliYAXg-XRN1U(Y-|-$ z54SMPwzr)OBLnQ_ySu`~GXs)~y?x%oyL))dwzfi$54B>jSXhb>zgpyh!AFwdaFR;_ z_w0N-Itv9+97YEIjHf-uGpkF{{|X>C=}9>p*C%mDlVT6iILRGjzcixDu`gf(uPNCi z+jt+o)G7`(G8?9g6cXZ3pMnOxP0R7btNFvfe=?>1@($KAS8P3SCVJWopvylV(6HnD z7b+8%)k!CqU3K#$Q8RFT@#cRXEqSYBR&7h|i+aP8CXPu4RwB z0pfS-yv;y^F#?(GFJD;NpFX|Zz$}-H5qy3gFqUkFD1JaMM60%oR6wBDdbNAb{|KD) z`Gx=#+XxI&H$_p(-TrlyV|h1iG<z`48Z@D+@~5O4E2YY6+>I;2|4x zMfSg>m{rnA%F$?RJ@>C++(cg_#FznTlJ>hIZy*=R$NU}qz-Y_D*oLqMV7QLF24Xmk z>;@;cjl2dVWGmbZ2-!hE3xHoe3WsN$PQ!%P;oCSlB$AS{JI}C(q5a%jWTe8}eipAr#!de%cLh|7ftuN$*S;qARG3d`tH+PIrohH$PUkAZsxNPQY7%Sjsq37UaJ}mV z+l7ylD3gVKa)}u?oaX{7O4?4~e$)ht;1c)FWzJ=K_gwCKsSb;|Yr-q452JHDDxkcU z{knswTV{Co3Su0{9e})+`Te+C>K~Q~WzVPo1_4nDlHKps!P`^`3{w16(c9Ed%Qp|9 zHhlJHx6xMYcO{5MB0fD_m|qjDMkKx+oEf+Uc%yT$qn#M38qzEWdi-H5O|7%wg}xYX z$fIu)s>UzDU`s;_-`BjLK8AQndPfj>1ZRE#3tR&Tf0y(q9Dgu3>SU*!^Kuo>5DUG{Py8fOffS<`rP3u?RI~nV^2-+9@vX6hk zk0p7FKChFeulGW|fw4N7M7}y>|K(QQGy3$U#oPa6pv61=)Y0l4fAQk*ga~zIQC{qmtkq(W@(!i3BjWvX-)>prdpuM%Yg~=@AF@Aggqf2_j zhfLP%u+8R5cebIyM75(KqVX^BuL8ysPLu96_7hC;Q}DM;(tU4X^Gb;k%JJ+^t?i9U zMC&-)i^2=DCV6s7qDIXsrNb?ew(>>s8}kPIE2TqWU_!$-g(Qp?bLO+az~@8vf=V$a zJSOvag`Jw^=+N3tCDUi3yDBo+`7gP0aZ!80YHk3*&+vB)vIg~> zm6044G1G#|%kh^+QfQt83nwSioxxXFhE6aVsx8fwizNxgEvvo5ZpX$3(yEClW9c<6 z_T;deE)!8A*OxVfEjDZJj&9;bUs}ptGKHX6WKfobmBevKu0(%Q<&S$6!QpoHK^_^gCk=Q5|%2+5h4BaJsP6%2)-2s72iDdYQoZx&+-UAXSS2 zfUE?$u|}hmV|eQXp=QmkyblPcx36LtrwSx*;F8NZC#-0iKOn_`T$S71kn<7zir%hy z8dan5`A1-LgaQ}0-tNwNcXH+UxiaFX&P|X@!@#D|>l5VtTZEe^cYQoWwS`RPa&K0) zr)K`=NKA&H=Q`B`dm2wL7heV0K0O+1gnji2)`@vh0?6i7kPD<&*NA^*s@Az^1hGHp zj3mpMj$qZRw3bK-grxa?p+t$ITS}F6a`%(J32zzDM z@)QuC_6@z`bOWRFDUVT(+co5gQ9n{aI3SuPn9}B5iE{cr zGpzGB3YymBV~cS5vjjb3tTSEnK~yB=xYSmd2_7Y zO?yG+-Rr^A(+R!zWI8{2du*c(O(CT~0i%+tgQi$^kQjUp1c7*~iLb?k5Y#2kg9zlN z6>D9LzQuxn&K5sCnjxG@dS*KDE54an&;m(^*3CXfoF&qlON=D}uE8RHs5eaUv)m1m z@ZN&GLSAV!0J} zv4cSr-6A^1x7(E72l1M)jbjtvfzl$9nWMZWxC85I*Vy;$7)-&cIiytCYc_ISyJP8w z7?2)`cqM=V9pN0MYyJHQK)vDA;_vKIMWQrJZkU-D*>HPa)X9_lqP&}x7ek-2YTt3n z+&+3VFiA|X-|5`hzxnw|u3ih!A~UA1uhwZr17KO7c)aVx-leu1>A~x(e*9_`8q*j? z%g?n%(hYMr$8yIBk86WOE3mmj(hX$SE&WL|C}_3+f>*s$odI|E0e|CKmWfi`-yiKV zX0`{cwt5G}POTLXgl#k3C=AJ%4yN}e;hqq0iHtMNTOU`M6%TGg;}!bB%j03@@pZQ1 zsOIS?vV4J(#8Z#`1sfr8b;n9g(KNDCU%H6nvyrdh@fjvu^!&<+lC*xX@lSE1p=2H- zd97rw+j<~V^c>XjFL)wSbd~gTP3aw7y<#Y vc+@u#5GeAJKWF`0|t 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-commonMain-yBS35w.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-atomicfu-0.23.2-commonMain-yBS35w.klib new file mode 100644 index 0000000000000000000000000000000000000000..9c77064382e26c0f98112ca8ca74ef07f53899eb GIT binary patch literal 6341 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

    )qfg7aUu(hnXi z1{2guP||h)!vnoK|3oj-AA|=h=`g3xTunbCE~^Wn3qf(e z8JYk9&jSP>XcORnjn9t=CY|rRzwH$srl&3&8~{)Z3ORm=RHyqjB=bK-zEY8iMMVSv z$nbtf0@;5J$?{K;XA$DwP@q|20uAHCUIvN$8uH0MMS_;%f6l;fsWN^L@n1qR=)cmn zv@|sT;VSg=x)IbbB*+ErL1*v*0N*0Rzl-JXvOo*y-`KxhKK)f#ZLOfW3?==U{95lf zdkI=c|AhRlkDwX-mwej*`z}4!zeYAPw{rUHYs-(tSie2CeHRv+-{3I)cLj)_XY5H+5?}282Jug}LVhOx zIF{dx((gil@F&DSH&K69`lAi`%_RLU{{K_yPX_AGs=ulFWA48hq2Fci2i1RKlFCa% TLVf!&8R+8!GH^K#zy0-pYx&EH literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-concurrentMain-UxhG-g.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-concurrentMain-UxhG-g.klib new file mode 100644 index 0000000000000000000000000000000000000000..b57a741c1f29237655e36c766c0d29942f00aa99 GIT binary patch literal 6558 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-nativeDarwinMain-sy5nKg.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-nativeDarwinMain-sy5nKg.klib new file mode 100644 index 0000000000000000000000000000000000000000..576d518728456546647ee049d708948259c81edb GIT binary patch literal 4369 zcmWIWW@Zs#;Nak3U|>)LVg%q|;ABWiO-n4zDbWuNVP#!IUT4l|UpswH|K!Ot zt2Z=V+I8}$>(8aCGb>jfRY=RKiA(ZKi(KWM6j+%yPd}i2u4uEUwa;XMDGS>#JU#M& zWilJsk6X`g*y;oHV-67G_M;9qmlY%?XD6no#%Jf30R3H|mz-aeUs{rxms(7o_iaeD z#2_AFqh5AiE$#w~xYb$lAN4|ac&E7>4|x74KyJhG z!-~=$JT^X&_|rFqvzsO4=Zw~HanaQ z*LoUp$M~ME$kG7Mn{^*Gl+InA!pXYzxEEjLp5E_#H~YK}%4Zzq`7`BVg~Sf8c;2Kw zZNH}+P4D`y7*=fTX#26HZrLT9Fv$zs^LNkQ@mp8ZJ@t6P6ql^{WzI7W{oUj{v)fT~ z)4%*Q`Kdc+b_IpL(|G%0`kK6FN_wBLSlIXjutv`TjN`Ufma+_{ow-Mc=^=FhrCYC)$W-ranB zE%$QLtu4G~tLMDGcaiDD?$jAB=UkQ7E}htK)|=q(f5<@M*zSves~uMyW^uBqeB{!xJoakh0Tz{}i?dfQ zZfUzYX|1tbXZ%6^=My)(+c(NKA2@jU^7ohP^XHrC*USu<%h$HIeR_d`#wu-Yw7@e?`*xQ{Zn%H>)_X2%*E|(eH~5vo9Jbo+)bts1w)7s*X>ecVxN?J? z;`D8O-)@IB{LT*F%&oAZf1drvU303d-`DpR8|+rqjXr&`XzQ2xHJdwkf8f2wc7gxL z?#6Py&;OV~ap>}_Mlg_(f#D+%<1V8Wi6}nFE130&G1&lK4?G7xC}{zr^=nZ=3;ju#F(suv0!+B)y6 ziSMhYL4SXSt$Og{+k@)+j~zYNIs1t;n^rATUv=h5t5eZhc1!oXH+ehn%UoO4~;MpGVifg z(V4&8KJPp70>TdPb44#$P_&@>m}6JWYi+NSwjRHX3uFH5{mKMNed?!8dlmzI$$~fa zA^Wr>u_!&Ygv?fe6jG4E49d(ej!!JgH8UYEx{-4Rrjd~53wb6h<8^FiUUE)pN@@yu zX5)8tUSdgRSt@xZ3n96>D784hv?!TSn~jl4gaNhv3~LyJ+Rvx}qct7ijaxgY^^5?H zKqgE(W?LHF9OSkusO^jZ-Pp`QYe}P<2GR}l6sWz60II;0kKrm}TEFO4AXmnqDi;B| zNVEcH+ZWwR*TtfD~Whtn<;W1o;XUkf21204Lc9TZu^0=;k6<8K5c&0hHN^ zFc*6Tg>DJRP?+OEwGRT!#bycix(MA+$zE~pSk z09!6h{~{cUS)}7L8P&xz@tTZYpyM+aRDdJEXC!m66z2intiWu?z#s^Odx3f0jvK@S E0RHIry8r+H literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-nativeMain-UxhG-g.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.8.0-nativeMain-UxhG-g.klib new file mode 100644 index 0000000000000000000000000000000000000000..ca9743bf9559fa4a15193d8bf28150d591ac4a94 GIT binary patch literal 10838 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�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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-nativeMain-v1Leig.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-nativeMain-v1Leig.klib new file mode 100644 index 0000000000000000000000000000000000000000..f5005310cdcaf95bf40c66b466c791b67fcfdb2b GIT binary patch literal 11202 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 R*#p#)6lRzQWU+FCcmQdz%k}^O literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-tzfileMain-v1Leig.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-datetime-0.6.0-tzfileMain-v1Leig.klib new file mode 100644 index 0000000000000000000000000000000000000000..e272c349cb3c8d8256965b005dd281bdbef55a24 GIT binary patch literal 4903 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 x(4E@Z7nqVpT7C%xVVq9-TD0Y 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-serialization-core-1.6.2-nativeMain-0z2eOA.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.kotlinx-kotlinx-serialization-core-1.6.2-nativeMain-0z2eOA.klib new file mode 100644 index 0000000000000000000000000000000000000000..683a41b724f175c5fbcf1bd0abe6fa85e52d8770 GIT binary patch literal 4457 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 P*8}i_J) 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 Ef8E+SApigX literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-nativeMain-7tIhOQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-nativeMain-7tIhOQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..86f2edb64926397d410814bb77390ac22a3b504e GIT binary patch literal 9293 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-uikitMain-SvRtdQ.klib b/.kotlin/metadata/kotlinTransformedMetadataLibraries/org.jetbrains.skiko-skiko-0.8.15-uikitMain-SvRtdQ.klib new file mode 100644 index 0000000000000000000000000000000000000000..75039eddb6a0516c4269cb68db91429fc811f872 GIT binary patch literal 6499 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 literal 0 HcmV?d00001 diff --git a/build.gradle.kts b/build.gradle.kts index 82bf71d..c98a2b8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,4 +7,5 @@ plugins { alias(libs.plugins.jetbrainsCompose) apply false alias(libs.plugins.kotlinMultiplatform) apply false alias(libs.plugins.jetbrainsKotlinAndroid) apply false + alias(libs.plugins.compose.compiler) apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index de532f5..24b0c05 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,11 +10,9 @@ androidx-core-ktx = "1.13.0" androidx-espresso-core = "3.5.1" androidx-material = "1.11.0" androidx-test-junit = "1.1.5" -compose = "1.6.6" -compose-plugin = "1.6.2" +compose = "1.7.0" junit = "4.13.2" -kotlin = "1.9.23" -kotlinVersion = "1.9.21" +kotlin = "2.0.20" coreKtx = "1.13.1" compose-activity = "1.9.0" libphonenumber = "8.2.0" @@ -44,6 +42,7 @@ compose-activity = { module = "androidx.activity:activity-compose", version.ref [plugins] androidApplication = { id = "com.android.application", version.ref = "agp" } androidLibrary = { id = "com.android.library", version.ref = "agp" } -jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } +jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } -jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" } +jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock index 9e45ffd..f8988e4 100644 --- a/iosApp/Podfile.lock +++ b/iosApp/Podfile.lock @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../multiplatformContact" SPEC CHECKSUMS: - multiplatformContact: e313b72b77ce8131faff645367489c1b90d8a96c + multiplatformContact: 21677214180c295e19408eb8fcfe69060f794801 PODFILE CHECKSUM: 0fceeaded57cfa26aeb77819576c80092a2dea18 diff --git a/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json b/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json index 316f139..b2f9624 100644 --- a/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json +++ b/iosApp/Pods/Local Podspecs/multiplatformContact.podspec.json @@ -13,6 +13,9 @@ "platforms": { "ios": "14.0" }, + "xcconfig": { + "ENABLE_USER_SCRIPT_SANDBOXING": "NO" + }, "pod_target_xcconfig": { "KOTLIN_PROJECT_PATH": ":multiplatformContact", "PRODUCT_MODULE_NAME": "shared" @@ -26,6 +29,6 @@ } ], "resources": [ - "build/compose/ios/shared/compose-resources" + "build/compose/cocoapods/compose-resources" ] } diff --git a/iosApp/Pods/Manifest.lock b/iosApp/Pods/Manifest.lock index 9e45ffd..f8988e4 100644 --- a/iosApp/Pods/Manifest.lock +++ b/iosApp/Pods/Manifest.lock @@ -9,7 +9,7 @@ EXTERNAL SOURCES: :path: "../multiplatformContact" SPEC CHECKSUMS: - multiplatformContact: e313b72b77ce8131faff645367489c1b90d8a96c + multiplatformContact: 21677214180c295e19408eb8fcfe69060f794801 PODFILE CHECKSUM: 0fceeaded57cfa26aeb77819576c80092a2dea18 diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj index f2fc984..3ded084 100644 --- a/iosApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -36,20 +36,20 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-resources.sh"; sourceTree = ""; }; + 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; B097DD7534E741D5C41838011D755842 /* Pods-iosApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-iosApp"; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DA248089480B703A6CF0F4D5F0763457 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - DC2AE9C0FD053575A7EF1FBE46EF0937 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; - DF13595F9FCDA7331E581063939A7AFE /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/ios/shared/compose-resources"; sourceTree = ""; }; + C7CD3AE5541043B08E230A41960716A7 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; + CE311FBDCC7D160182CA838BB7012D27 /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/cocoapods/compose-resources"; sourceTree = ""; }; + E11DC744AF0FB40FC3EEBFE5360D2471 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; @@ -67,18 +67,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0AA3985A588264E6AB492847C423FBB8 /* multiplatformContact */ = { - isa = PBXGroup; - children = ( - DF13595F9FCDA7331E581063939A7AFE /* compose-resources */, - 657E76C0A9A155724851DD8C94C176C1 /* Frameworks */, - C7AB6E714D2F274DAA83091C9828E98D /* Pod */, - 720161D5E483914B949793C70251C965 /* Support Files */, - ); - name = multiplatformContact; - path = ../../multiplatformContact; - sourceTree = ""; - }; 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -98,7 +86,7 @@ 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */ = { isa = PBXGroup; children = ( - 0AA3985A588264E6AB492847C423FBB8 /* multiplatformContact */, + 782449DA7C6FEA4653016F0474A3EBE9 /* multiplatformContact */, ); name = "Development Pods"; sourceTree = ""; @@ -120,30 +108,34 @@ path = "Target Support Files/Pods-iosApp"; sourceTree = ""; }; - 657E76C0A9A155724851DD8C94C176C1 /* Frameworks */ = { + 620B92AADAAF121EA4B1FF065543ECC0 /* Support Files */ = { isa = PBXGroup; children = ( - DC2AE9C0FD053575A7EF1FBE46EF0937 /* shared.framework */, + 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */, + 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */, ); - name = Frameworks; + name = "Support Files"; + path = "../iosApp/Pods/Target Support Files/multiplatformContact"; sourceTree = ""; }; - 720161D5E483914B949793C70251C965 /* Support Files */ = { + 782449DA7C6FEA4653016F0474A3EBE9 /* multiplatformContact */ = { isa = PBXGroup; children = ( - 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */, - A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */, + CE311FBDCC7D160182CA838BB7012D27 /* compose-resources */, + 9F815CAB836CA921CF9462477A533278 /* Frameworks */, + DF396749B9F831C456B12B3837D95124 /* Pod */, + 620B92AADAAF121EA4B1FF065543ECC0 /* Support Files */, ); - name = "Support Files"; - path = "../iosApp/Pods/Target Support Files/multiplatformContact"; + name = multiplatformContact; + path = ../../multiplatformContact; sourceTree = ""; }; - C7AB6E714D2F274DAA83091C9828E98D /* Pod */ = { + 9F815CAB836CA921CF9462477A533278 /* Frameworks */ = { isa = PBXGroup; children = ( - DA248089480B703A6CF0F4D5F0763457 /* multiplatformContact.podspec */, + C7CD3AE5541043B08E230A41960716A7 /* shared.framework */, ); - name = Pod; + name = Frameworks; sourceTree = ""; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -165,6 +157,14 @@ name = Frameworks; sourceTree = ""; }; + DF396749B9F831C456B12B3837D95124 /* Pod */ = { + isa = PBXGroup; + children = ( + E11DC744AF0FB40FC3EEBFE5360D2471 /* multiplatformContact.podspec */, + ); + name = Pod; + sourceTree = ""; + }; E4801F62A6B08CD9B5410329F1A18FDE /* iOS */ = { isa = PBXGroup; children = ( @@ -387,7 +387,7 @@ }; 5421F297C812E9FB327A65CD1313621A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A60D36BD8510949E41A513F945510EDA /* multiplatformContact.release.xcconfig */; + baseConfigurationReference = 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -508,7 +508,7 @@ }; C34325D3B641862AE7A1139AFB4E0AF5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 07888A5914E414091AB5754C04C88751 /* multiplatformContact.debug.xcconfig */; + baseConfigurationReference = 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist new file mode 100644 index 0000000..b7a3e29 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh +${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist new file mode 100644 index 0000000..5eb32b2 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Debug-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist new file mode 100644 index 0000000..b7a3e29 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh +${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist new file mode 100644 index 0000000..5eb32b2 --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-Release-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/libPhoneNumber_iOS.framework \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh new file mode 100755 index 0000000..60d2aeb --- /dev/null +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh @@ -0,0 +1,186 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink -f "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/libPhoneNumber-iOS/libPhoneNumber_iOS.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist index cb39459..2ad6ba5 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Debug-input-files.xcfilelist @@ -1,2 +1,2 @@ ${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh -${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources \ No newline at end of file +${PODS_ROOT}/../../multiplatformContact/build/compose/cocoapods/compose-resources \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist index cb39459..2ad6ba5 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources-Release-input-files.xcfilelist @@ -1,2 +1,2 @@ ${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh -${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources \ No newline at end of file +${PODS_ROOT}/../../multiplatformContact/build/compose/cocoapods/compose-resources \ No newline at end of file diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh index e7b922d..b39183f 100755 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh @@ -97,10 +97,10 @@ EOM esac } if [[ "$CONFIGURATION" == "Debug" ]]; then - install_resource "${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources" + install_resource "${PODS_ROOT}/../../multiplatformContact/build/compose/cocoapods/compose-resources" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_resource "${PODS_ROOT}/../../multiplatformContact/build/compose/ios/shared/compose-resources" + install_resource "${PODS_ROOT}/../../multiplatformContact/build/compose/cocoapods/compose-resources" fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig index 2478a96..8c923e7 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig @@ -1,4 +1,5 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +ENABLE_USER_SCRIPT_SANDBOXING = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' diff --git a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig index 2478a96..8c923e7 100644 --- a/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig +++ b/iosApp/Pods/Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig @@ -1,4 +1,5 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +ENABLE_USER_SCRIPT_SANDBOXING = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' diff --git a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig index 45805ae..e3362f6 100644 --- a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig +++ b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.debug.xcconfig @@ -1,5 +1,6 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact +ENABLE_USER_SCRIPT_SANDBOXING = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 KOTLIN_PROJECT_PATH = :multiplatformContact diff --git a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig index 45805ae..e3362f6 100644 --- a/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig +++ b/iosApp/Pods/Target Support Files/multiplatformContact/multiplatformContact.release.xcconfig @@ -1,5 +1,6 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/multiplatformContact +ENABLE_USER_SCRIPT_SANDBOXING = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../multiplatformContact/build/cocoapods/framework" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 KOTLIN_PROJECT_PATH = :multiplatformContact diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index 54a6af1..9c61d27 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -10,21 +10,21 @@ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 3BC64D771718E107DD1E735E /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00CAA88294B80F3B29D92584 /* Pods_iosApp.framework */; }; 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; + BA7E9141DFC9343677956A0B /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECDCBB71984EE56B1436CE14 /* Pods_iosApp.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 00CAA88294B80F3B29D92584 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 25B405ABF374A15F8E5B4AB9 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - 68D6FAFB1EF17F55108A395D /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 7555FF7B242A565900829871 /* MultiplatformContacts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MultiplatformContacts.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; + C4D5CF14F93DD2DD36CCF4C7 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + EAE45C34512C71B475E5A58E /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + ECDCBB71984EE56B1436CE14 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -32,7 +32,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3BC64D771718E107DD1E735E /* Pods_iosApp.framework in Frameworks */, + BA7E9141DFC9343677956A0B /* Pods_iosApp.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -50,8 +50,8 @@ 752B2644E372C606A66E1C63 /* Pods */ = { isa = PBXGroup; children = ( - 25B405ABF374A15F8E5B4AB9 /* Pods-iosApp.debug.xcconfig */, - 68D6FAFB1EF17F55108A395D /* Pods-iosApp.release.xcconfig */, + C4D5CF14F93DD2DD36CCF4C7 /* Pods-iosApp.debug.xcconfig */, + EAE45C34512C71B475E5A58E /* Pods-iosApp.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -63,7 +63,7 @@ 7555FF7D242A565900829871 /* iosApp */, 7555FF7C242A565900829871 /* Products */, 752B2644E372C606A66E1C63 /* Pods */, - 7E26B6E3184EEC13FCC396CF /* Frameworks */, + 983B9268D3930DE50EA2605E /* Frameworks */, ); sourceTree = ""; }; @@ -87,10 +87,10 @@ path = iosApp; sourceTree = ""; }; - 7E26B6E3184EEC13FCC396CF /* Frameworks */ = { + 983B9268D3930DE50EA2605E /* Frameworks */ = { isa = PBXGroup; children = ( - 00CAA88294B80F3B29D92584 /* Pods_iosApp.framework */, + ECDCBB71984EE56B1436CE14 /* Pods_iosApp.framework */, ); name = Frameworks; sourceTree = ""; @@ -110,12 +110,12 @@ isa = PBXNativeTarget; buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; buildPhases = ( - CA9BC957D94B7CFEA119161D /* [CP] Check Pods Manifest.lock */, + CB7345DB5F2E35566B2E17F9 /* [CP] Check Pods Manifest.lock */, F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, - BD288948CCDD4E6F88229AEA /* [CP] Copy Pods Resources */, + A8FCA0995BE0CF1247DAAD2F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -172,7 +172,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - BD288948CCDD4E6F88229AEA /* [CP] Copy Pods Resources */ = { + A8FCA0995BE0CF1247DAAD2F /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -189,7 +189,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; showEnvVarsInLog = 0; }; - CA9BC957D94B7CFEA119161D /* [CP] Check Pods Manifest.lock */ = { + CB7345DB5F2E35566B2E17F9 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -364,7 +364,7 @@ }; 7555FFA6242A565B00829871 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 25B405ABF374A15F8E5B4AB9 /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = C4D5CF14F93DD2DD36CCF4C7 /* Pods-iosApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -372,9 +372,7 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = 9Z5F72MRRD; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", - ); + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -396,7 +394,7 @@ }; 7555FFA7242A565B00829871 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68D6FAFB1EF17F55108A395D /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = EAE45C34512C71B475E5A58E /* Pods-iosApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "Apple Development"; @@ -404,9 +402,7 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = "${TEAM_ID}"; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", - ); + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index 801d8ee..75a88b9 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -6,6 +6,7 @@ plugins { alias(libs.plugins.jetbrainsCompose) kotlin("native.cocoapods") id("com.vanniktech.maven.publish") version "0.28.0" + alias(libs.plugins.compose.compiler) } kotlin { diff --git a/multiplatformContact/multiplatformContact.podspec b/multiplatformContact/multiplatformContact.podspec index f3500a4..843b678 100644 --- a/multiplatformContact/multiplatformContact.podspec +++ b/multiplatformContact/multiplatformContact.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |spec| spec.summary = 'Some description for the Shared Module' spec.vendored_frameworks = 'build/cocoapods/framework/shared.framework' spec.libraries = 'c++' - spec.ios.deployment_target = '14.0' + spec.ios.deployment_target = '14.0' if !Dir.exist?('build/cocoapods/framework/shared.framework') || Dir.empty?('build/cocoapods/framework/shared.framework') @@ -22,6 +22,10 @@ Pod::Spec.new do |spec| Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)" end + spec.xcconfig = { + 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', + } + spec.pod_target_xcconfig = { 'KOTLIN_PROJECT_PATH' => ':multiplatformContact', 'PRODUCT_MODULE_NAME' => 'shared', @@ -46,5 +50,5 @@ Pod::Spec.new do |spec| SCRIPT } ] - spec.resources = ['build/compose/ios/shared/compose-resources'] + spec.resources = ['build/compose/cocoapods/compose-resources'] end \ No newline at end of file diff --git a/multiplatformContact/src/androidMain/kotlin/Time.kt b/multiplatformContact/src/androidMain/kotlin/Time.kt deleted file mode 100644 index 4734d13..0000000 --- a/multiplatformContact/src/androidMain/kotlin/Time.kt +++ /dev/null @@ -1,33 +0,0 @@ -import java.util.Timer -import kotlin.concurrent.schedule - -actual class TimerManager { - private var timer: Timer? = null - - actual fun scheduleTimer( - visibilityDuration: Long, - onTimerTriggered: () -> Unit - ) { - if (timer != null) { - // Timer is already in use, cancel it first - cancelTimer() - } - - // Create a new Timer instance - timer = Timer("Message Bar Animation Timer", true) - timer?.schedule(visibilityDuration) { - onTimerTriggered() - // Cancel the timer after triggering the action - cancelTimer() - } - } - - actual fun cancelTimer() { - timer?.cancel() - timer?.purge() - timer = null - } - - - -} \ No newline at end of file diff --git a/multiplatformContact/src/commonMain/kotlin/Time.kt b/multiplatformContact/src/commonMain/kotlin/Time.kt deleted file mode 100644 index d457422..0000000 --- a/multiplatformContact/src/commonMain/kotlin/Time.kt +++ /dev/null @@ -1,7 +0,0 @@ -expect class TimerManager() { - fun scheduleTimer( - visibilityDuration: Long, - onTimerTriggered: () -> Unit - ) - fun cancelTimer() -} \ No newline at end of file diff --git a/multiplatformContact/src/iosMain/kotlin/Time.kt b/multiplatformContact/src/iosMain/kotlin/Time.kt deleted file mode 100644 index f730cf7..0000000 --- a/multiplatformContact/src/iosMain/kotlin/Time.kt +++ /dev/null @@ -1,21 +0,0 @@ -import platform.Foundation.NSTimer - -actual class TimerManager { - private var timer: NSTimer? = null - - actual fun scheduleTimer( - visibilityDuration: Long, - onTimerTriggered: () -> Unit - ) { - timer = NSTimer.scheduledTimerWithTimeInterval( - visibilityDuration.toDouble() / 1000, - repeats = false, - block = { onTimerTriggered() } - ) - } - - actual fun cancelTimer() { - timer?.invalidate() - timer = null - } -} \ No newline at end of file diff --git a/sample/android/build.gradle.kts b/sample/android/build.gradle.kts index cc59657..943c8e0 100644 --- a/sample/android/build.gradle.kts +++ b/sample/android/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsCompose) alias(libs.plugins.jetbrainsKotlinAndroid) + alias(libs.plugins.compose.compiler) } android { diff --git a/sample/common/build.gradle.kts b/sample/common/build.gradle.kts index 89be5bd..840e58e 100644 --- a/sample/common/build.gradle.kts +++ b/sample/common/build.gradle.kts @@ -4,6 +4,7 @@ plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) alias(libs.plugins.jetbrainsCompose) + alias(libs.plugins.compose.compiler) } kotlin { diff --git a/settings.gradle.kts b/settings.gradle.kts index 9c58487..0c96ef0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,4 @@ -rootProject.name = "MultiplatformContactsLib" +rootProject.name = "MultiplatformContacts" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") pluginManagement { From bbdceb0496b249d1b54ca4c626c2283f85ce6520 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Wed, 5 Mar 2025 18:53:56 +0300 Subject: [PATCH 6/7] ios config -update --- iosApp/Podfile | 4 - iosApp/Podfile.lock | 2 +- iosApp/Pods/Manifest.lock | 2 +- iosApp/Pods/Pods.xcodeproj/project.pbxproj | 124 +++++++++--------- iosApp/iosApp.xcodeproj/project.pbxproj | 18 --- multiplatformContact/build.gradle.kts | 9 -- .../iosMain/kotlin/multiContacts/Picker.kt | 17 --- 7 files changed, 62 insertions(+), 114 deletions(-) diff --git a/iosApp/Podfile b/iosApp/Podfile index 7696d98..eec8d47 100644 --- a/iosApp/Podfile +++ b/iosApp/Podfile @@ -5,10 +5,6 @@ target 'iosApp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! platform :ios, '14.0' # ios.deploymentTarget -# pod 'PhoneNumberKit', '~> 3.7' -# -# pod 'libPhoneNumber-iOS', '~> 0.8' - pod 'multiplatformContact', :path => '../multiplatformContact' # Pods for iosApp diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock index f8988e4..ae801fc 100644 --- a/iosApp/Podfile.lock +++ b/iosApp/Podfile.lock @@ -11,6 +11,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: multiplatformContact: 21677214180c295e19408eb8fcfe69060f794801 -PODFILE CHECKSUM: 0fceeaded57cfa26aeb77819576c80092a2dea18 +PODFILE CHECKSUM: 0b6b656cb75b3f7f044ea684a3d46361666e3f9b COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Manifest.lock b/iosApp/Pods/Manifest.lock index f8988e4..ae801fc 100644 --- a/iosApp/Pods/Manifest.lock +++ b/iosApp/Pods/Manifest.lock @@ -11,6 +11,6 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: multiplatformContact: 21677214180c295e19408eb8fcfe69060f794801 -PODFILE CHECKSUM: 0fceeaded57cfa26aeb77819576c80092a2dea18 +PODFILE CHECKSUM: 0b6b656cb75b3f7f044ea684a3d46361666e3f9b COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj index 3ded084..8377085 100644 --- a/iosApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -20,13 +20,13 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 410F68BDC69466BCEA0F51489C82E15A /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8252EF4DA567716D3FE6BFA65902CA28 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */; }; + 410F68BDC69466BCEA0F51489C82E15A /* Pods-iosApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 42DE4C0106600A5B6D599285368F3270 /* Pods-iosApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8252EF4DA567716D3FE6BFA65902CA28 /* Pods-iosApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A2475209BEE7612101900020629C625 /* Pods-iosApp-dummy.m */; }; 8A6248DC582BF1F1219B2724F364D3AF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 4C6013B8AB9F6E1F284B0F5722A05AFB /* PBXContainerItemProxy */ = { + FCDFD630233F0D88D928931630210AD0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -36,23 +36,21 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-resources.sh"; sourceTree = ""; }; - 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; + 0011AEE22E8296B3D9E0B0B2CDCAB2EE /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; + 03474B27B370D639E8D806589A23E1F7 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; + 1A2FB55B5C37861BC78ECD1420D818C3 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; 384DDA2CB25005BD6479B5987C619DD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; - 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; - 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; - 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; - 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; - 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 3A2475209BEE7612101900020629C625 /* Pods-iosApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-iosApp-dummy.m"; sourceTree = ""; }; + 42DE4C0106600A5B6D599285368F3270 /* Pods-iosApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-iosApp-umbrella.h"; sourceTree = ""; }; + 482384ADFE4EF692B16FACB8C2021970 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; + 83350B28D2CED399B45C2040DE1A548C /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A43877303056397968EC90C7AAFE17E8 /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; + A79C2AA5C063914B2D1BD80187FDF6DE /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; B097DD7534E741D5C41838011D755842 /* Pods-iosApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-iosApp"; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C7CD3AE5541043B08E230A41960716A7 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = build/cocoapods/framework/shared.framework; sourceTree = ""; }; - CE311FBDCC7D160182CA838BB7012D27 /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/cocoapods/compose-resources"; sourceTree = ""; }; - E11DC744AF0FB40FC3EEBFE5360D2471 /* multiplatformContact.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = multiplatformContact.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-acknowledgements.plist"; sourceTree = ""; }; - F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; - FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-iosApp.modulemap"; sourceTree = ""; }; + BCAED803D074E2E9C3B1327F049C8C2A /* Pods-iosApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-iosApp-Info.plist"; sourceTree = ""; }; + CF7ACC5E0745276F70205BD2295FEDD2 /* multiplatformContact.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.release.xcconfig; sourceTree = ""; }; + ECDB5F4288ADF0E581AC3021A330E33F /* multiplatformContact.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = multiplatformContact.debug.xcconfig; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -67,14 +65,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 4C16E8CC03E90AF9CABF8C82B813AE97 /* Pods-iosApp */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; 1F86AA6785DF34AFD5A71790761717DE /* Products */ = { isa = PBXGroup; children = ( @@ -83,69 +73,75 @@ name = Products; sourceTree = ""; }; - 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */ = { - isa = PBXGroup; - children = ( - 782449DA7C6FEA4653016F0474A3EBE9 /* multiplatformContact */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - 4C16E8CC03E90AF9CABF8C82B813AE97 /* Pods-iosApp */ = { + 310087C345B86EEF25A054485E0BB5CB /* Pods-iosApp */ = { isa = PBXGroup; children = ( - FB978CA3A69A4DEF4DC035E9CD8D83A4 /* Pods-iosApp.modulemap */, - 4D3E6DCB9CAB65A8A05C467E2BBC1F0D /* Pods-iosApp-acknowledgements.markdown */, - F6DF6FB4000E345BDEE186C956C36ABF /* Pods-iosApp-acknowledgements.plist */, - 9BC3BD8CAFAE0C8EB92CD04E5FC24E61 /* Pods-iosApp-dummy.m */, - 6A3C5EB0586A09C512019B6B6A2DE103 /* Pods-iosApp-Info.plist */, - 257390D34074D2442461A69FE6970CBD /* Pods-iosApp-resources.sh */, - 70E8DFC7821955063C886C71258CBE53 /* Pods-iosApp-umbrella.h */, - F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */, - 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */, + 482384ADFE4EF692B16FACB8C2021970 /* Pods-iosApp.modulemap */, + A43877303056397968EC90C7AAFE17E8 /* Pods-iosApp-acknowledgements.markdown */, + 0011AEE22E8296B3D9E0B0B2CDCAB2EE /* Pods-iosApp-acknowledgements.plist */, + 3A2475209BEE7612101900020629C625 /* Pods-iosApp-dummy.m */, + BCAED803D074E2E9C3B1327F049C8C2A /* Pods-iosApp-Info.plist */, + 42DE4C0106600A5B6D599285368F3270 /* Pods-iosApp-umbrella.h */, + A79C2AA5C063914B2D1BD80187FDF6DE /* Pods-iosApp.debug.xcconfig */, + 1A2FB55B5C37861BC78ECD1420D818C3 /* Pods-iosApp.release.xcconfig */, ); name = "Pods-iosApp"; path = "Target Support Files/Pods-iosApp"; sourceTree = ""; }; - 620B92AADAAF121EA4B1FF065543ECC0 /* Support Files */ = { + 7F3E228BFEC00EFD2BE63A4B5931AACF /* Support Files */ = { isa = PBXGroup; children = ( - 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */, - 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */, + ECDB5F4288ADF0E581AC3021A330E33F /* multiplatformContact.debug.xcconfig */, + CF7ACC5E0745276F70205BD2295FEDD2 /* multiplatformContact.release.xcconfig */, ); name = "Support Files"; path = "../iosApp/Pods/Target Support Files/multiplatformContact"; sourceTree = ""; }; - 782449DA7C6FEA4653016F0474A3EBE9 /* multiplatformContact */ = { + 8FED14589C9CCA35C3D5896D1BB36D3F /* multiplatformContact */ = { isa = PBXGroup; children = ( - CE311FBDCC7D160182CA838BB7012D27 /* compose-resources */, - 9F815CAB836CA921CF9462477A533278 /* Frameworks */, - DF396749B9F831C456B12B3837D95124 /* Pod */, - 620B92AADAAF121EA4B1FF065543ECC0 /* Support Files */, + B0591A004BA5DF2C64B1D25E0E681CC1 /* Frameworks */, + DD4BCDECD4401FA49BFD2A31E45AFB24 /* Pod */, + 7F3E228BFEC00EFD2BE63A4B5931AACF /* Support Files */, ); name = multiplatformContact; path = ../../multiplatformContact; sourceTree = ""; }; - 9F815CAB836CA921CF9462477A533278 /* Frameworks */ = { + 920D8993BDB22317F6D6B1628CCCAC1C /* Development Pods */ = { isa = PBXGroup; children = ( - C7CD3AE5541043B08E230A41960716A7 /* shared.framework */, + 8FED14589C9CCA35C3D5896D1BB36D3F /* multiplatformContact */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + B0591A004BA5DF2C64B1D25E0E681CC1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03474B27B370D639E8D806589A23E1F7 /* shared.framework */, ); name = Frameworks; sourceTree = ""; }; + C9F6DDEE5D76F65BB478A349731F54F4 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 310087C345B86EEF25A054485E0BB5CB /* Pods-iosApp */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 3639441500DD8D8DE7464F01B3E80EE4 /* Development Pods */, + 920D8993BDB22317F6D6B1628CCCAC1C /* Development Pods */, D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 1F86AA6785DF34AFD5A71790761717DE /* Products */, - 11C970DEAE48C6D0282DFE54684F53F1 /* Targets Support Files */, + C9F6DDEE5D76F65BB478A349731F54F4 /* Targets Support Files */, ); sourceTree = ""; }; @@ -157,10 +153,10 @@ name = Frameworks; sourceTree = ""; }; - DF396749B9F831C456B12B3837D95124 /* Pod */ = { + DD4BCDECD4401FA49BFD2A31E45AFB24 /* Pod */ = { isa = PBXGroup; children = ( - E11DC744AF0FB40FC3EEBFE5360D2471 /* multiplatformContact.podspec */, + 83350B28D2CED399B45C2040DE1A548C /* multiplatformContact.podspec */, ); name = Pod; sourceTree = ""; @@ -199,7 +195,7 @@ buildRules = ( ); dependencies = ( - C7DF6D20C4F0BFD6CDFFA604BE51639F /* PBXTargetDependency */, + BA9800F3B6CD70BFD0B34BDADF2EB9D5 /* PBXTargetDependency */, ); name = "Pods-iosApp"; productName = Pods_iosApp; @@ -271,18 +267,18 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - C7DF6D20C4F0BFD6CDFFA604BE51639F /* PBXTargetDependency */ = { + BA9800F3B6CD70BFD0B34BDADF2EB9D5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = multiplatformContact; target = 18A7947D7AA498985D397D562F5C4DC0 /* multiplatformContact */; - targetProxy = 4C6013B8AB9F6E1F284B0F5722A05AFB /* PBXContainerItemProxy */; + targetProxy = FCDFD630233F0D88D928931630210AD0 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 3F152A2292287AA82F6706808CDF0395 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F981EE0C95E2DFD40CA16F05D2C35B8A /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = A79C2AA5C063914B2D1BD80187FDF6DE /* Pods-iosApp.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -387,7 +383,7 @@ }; 5421F297C812E9FB327A65CD1313621A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4C85947B9DCCACCB6896006D8890FC32 /* multiplatformContact.release.xcconfig */; + baseConfigurationReference = CF7ACC5E0745276F70205BD2295FEDD2 /* multiplatformContact.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -406,7 +402,7 @@ }; 56B7CA5DD01ADB69BB7F79F545BA3800 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9C49AEBC7AA7C80C03295804C6F07963 /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = 1A2FB55B5C37861BC78ECD1420D818C3 /* Pods-iosApp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -508,7 +504,7 @@ }; C34325D3B641862AE7A1139AFB4E0AF5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 29E328F1642C5A2FF19A75E20EC964D5 /* multiplatformContact.debug.xcconfig */; + baseConfigurationReference = ECDB5F4288ADF0E581AC3021A330E33F /* multiplatformContact.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index 9c61d27..ebb65f6 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -115,7 +115,6 @@ 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, - A8FCA0995BE0CF1247DAAD2F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -172,23 +171,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - A8FCA0995BE0CF1247DAAD2F /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; CB7345DB5F2E35566B2E17F9 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; diff --git a/multiplatformContact/build.gradle.kts b/multiplatformContact/build.gradle.kts index 75a88b9..753b46f 100644 --- a/multiplatformContact/build.gradle.kts +++ b/multiplatformContact/build.gradle.kts @@ -32,15 +32,6 @@ kotlin { baseName = "shared" isStatic = true } - // Must define the pods that are in the Podfile (Is this just the way it works?) -// pod("PhoneNumberKit") { -// version ="3.7" -// extraOpts += listOf("-compiler-option", "-fmodules") -// } -// pod("libPhoneNumber-iOS") { -// version ="0.8" -// extraOpts += listOf("-compiler-option", "-fmodules") -// } } sourceSets { diff --git a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt index 787ee56..c7da77e 100644 --- a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt @@ -2,7 +2,6 @@ package multiContacts import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import kotlinx.cinterop.ExperimentalForeignApi import platform.Contacts.CNContact import platform.ContactsUI.CNContactPickerDelegateProtocol import platform.ContactsUI.CNContactPickerViewController @@ -18,27 +17,11 @@ import platform.darwin.NSObject typealias ContactPickedCallback = (String) -> Unit -@OptIn(ExperimentalForeignApi::class) @Composable actual fun pickMultiplatformContacts( countryISOCode: String, onResult: ContactPickedCallback ): Launcher { -// val phoneUtil = NBPhoneNumberUtil() -// try { -// val parsedNumber: NBPhoneNumber? = phoneUtil.parse("0003455", "KE",null) -// // Check if parsedNumber is null before formatting -// if (parsedNumber != null) { -// val formattedString: String? = phoneUtil.format(parsedNumber, NBEPhoneNumberFormatE164,null) -// println("Formatted phone number: $formattedString") -// } else { -// println("Parsed number is null.") -// } -// -// } catch (e: Exception) { -// println("Exception occurred: $e") -// } - val launcherCustom = remember { Launcher(onLaunch = { val picker = CNContactPickerViewController() From be8982024e2fd6f9220215ce42da5ac3f3841853 Mon Sep 17 00:00:00 2001 From: SirDennis Date: Thu, 6 Mar 2025 15:18:41 +0300 Subject: [PATCH 7/7] swift_Kotlin swiftklib interop --- .../default/linkdata/module | Bin 0 -> 129 bytes .../0_lilytreasure.knm | Bin 0 -> 2282 bytes .../1_lilytreasure.knm | Bin 0 -> 206 bytes .../linkdata/package_io.github/0_github.knm | Bin 0 -> 19 bytes .../default/linkdata/package_io/0_io.knm | Bin 0 -> 12 bytes .../default/manifest | 14 ++ ...ontact-cinterop-ContactsHelper-0iLOpA.klib | Bin 0 -> 12395 bytes ...ontact-cinterop-ContactsHelper-3T0pWA.klib | Bin 0 -> 12634 bytes ...ontact-cinterop-ContactsHelper-C4bI1g.klib | Bin 0 -> 12787 bytes ...ontact-cinterop-ContactsHelper-ENxwMA.klib | Bin 0 -> 12489 bytes ...ontact-cinterop-ContactsHelper-JiUdfg.klib | Bin 0 -> 12634 bytes ...ontact-cinterop-ContactsHelper-P-idng.klib | Bin 0 -> 12635 bytes ...ontact-cinterop-ContactsHelper-Pgzrcg.klib | Bin 0 -> 12490 bytes ...ontact-cinterop-ContactsHelper-UhctSQ.klib | Bin 0 -> 12490 bytes ...ontact-cinterop-ContactsHelper-aXE8UA.klib | Bin 0 -> 12490 bytes ...ontact-cinterop-ContactsHelper-cWFK5A.klib | Bin 0 -> 12827 bytes build.gradle.kts | 1 + gradle/libs.versions.toml | 2 + iosApp/Pods/Pods.xcodeproj/project.pbxproj | 124 +++++++++--------- iosApp/iosApp.xcodeproj/project.pbxproj | 40 +++++- iosApp/iosApp/contacts/ContactsHelper.swift | 19 +++ multiplatformContact/build.gradle.kts | 26 +++- .../iosMain/kotlin/multiContacts/Picker.kt | 4 + 23 files changed, 162 insertions(+), 68 deletions(-) create mode 100644 .kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/module create mode 100644 .kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/0_lilytreasure.knm create mode 100644 .kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/1_lilytreasure.knm create mode 100644 .kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github/0_github.knm create mode 100644 .kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io/0_io.knm create mode 100644 .kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/manifest create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-0iLOpA.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-3T0pWA.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-C4bI1g.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-ENxwMA.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-JiUdfg.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-P-idng.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-Pgzrcg.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-UhctSQ.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-aXE8UA.klib create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-cWFK5A.klib create mode 100644 iosApp/iosApp/contacts/ContactsHelper.swift diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/module b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/module new file mode 100644 index 0000000000000000000000000000000000000000..42e6842f49587b553e6c17ae80705a17eef26dbc GIT binary patch literal 129 zcmd;bwaLuaOV2FHC{5DK$;_!NDN0Q&E-gy6$}P<)$t=i8EJ@2R%5~1qD@jZ)(M`_G tD@iTNFVKYw6nmuR6r>i}DKTgcT{6Qe|GY=fwy#Ug*-GF(# z1H-RaGvMAzX$`XexqTcQc9AMW?$ZCt^7fBGu{o$Gc5vD~0?o0Vw}Hnjzw0r8C=8=2 zFw#F`7-$hZcDU6iTfBSZuoBRSlrWUX8mK@nqQh<~f;?!PaxaLwAgJ*6$qFlm=ROpO!Ar5t<<5{hbNDUgd6JH3NT_IUVM`V1Wf{%ks``7qq>`{?QwJVZuwQ zFFCf!JW!ji)n-0q{J`sCC}a-z8b5NELF!%j%njxQX!3TOyY@Sb)i7hVYB`RDZv`Mk znEjNufH1eoTef=wD}EA@RGo?>cKT`wZXm zXq^RJ&qYUI*)D78e=DHS1f)oUCP5`hs^k;GrqC)hjZBKF_)OCb`c+B+ zdIzmS=aIQi?;>-9E=c{7&};M_dT-JDQvX0$jg}=|7uKK~5`QIZfj*Y_Yhg9ICGAsb zYiLuryFJYQfbI+LGJPrS_xVKOUu6mCP*E|J5`LEobht?Ll&-wam_sE^C%S4XZv;Xe z#B`d}kpUed)RCAjCw0REIz(7&OmbNhWUUdbg$TJR$&H#h$x-AGE#)XJDzC>%su`-s zuwM4E9?+54dFJw5px0%-@qs=NVf<`NcSGtX26Tw9r<;uY@E*2ns0p?A_v%BwqOMU=_6hDAL z=5#`q^%Nls5AkG*(+ZwSc*@Yk2hhlEgcU)2QLE6kDCreRzPwDb)=yHa(ntR@>QO)H zv(jP5cZy@=_qqH$&Ny8XSIRWZyTy-Ua>Lj_|H685W6K~@a==Nlh#9{T-EZRQi5N?% zmFRXsF_*5GqKe9B72ExOYF)aCF~$`!{mH{Rm+M=_^#R$@RRZR{wQrG%R=KOsl4p9J xWVgo2ePqAW6@otv@?5m~B5eO*_%OxXA0hDxCT+eP{TW$~{}=fOhNkC@{{U)k=x6`{ literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/1_lilytreasure.knm b/.kotlin/metadata/commonizer/multiplatformContact/ContactsHelper/EsDht3F_h7ukY1zFLwZ7hPe1ZZ0=/(ios_arm64, ios_simulator_arm64, ios_x64)/io.github.lilytreasure_multiplatformContact-cinterop-ContactsHelper/default/linkdata/package_io.github.lilytreasure/1_lilytreasure.knm new file mode 100644 index 0000000000000000000000000000000000000000..52cd25b3fc053809c64a83cf7b25b4d373b9c14e GIT binary patch literal 206 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-3T0pWA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-3T0pWA.klib new file mode 100644 index 0000000000000000000000000000000000000000..faa3b12695f78528295e3d39d6acd2f3a6f2d544 GIT binary patch literal 12634 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-ENxwMA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-ENxwMA.klib new file mode 100644 index 0000000000000000000000000000000000000000..2262d741dffc8ca425404bad42e6337407969ed4 GIT binary patch literal 12489 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-JiUdfg.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-JiUdfg.klib new file mode 100644 index 0000000000000000000000000000000000000000..886accec30df88eb86fff485ebd0c6c6dacea8f0 GIT binary patch literal 12634 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-aXE8UA.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-aXE8UA.klib new file mode 100644 index 0000000000000000000000000000000000000000..66eeef1794eb0927707a168e299a123fb8f4d5ce GIT binary patch literal 12490 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 literal 0 HcmV?d00001 diff --git a/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-cWFK5A.klib b/.kotlin/metadata/kotlinCInteropLibraries/multiplatformContact-cinterop-ContactsHelper-cWFK5A.klib new file mode 100644 index 0000000000000000000000000000000000000000..b5515415b0294d4b06c21345250cbab2dcf3ce87 GIT binary patch literal 12827 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≀Y1#2xEKkUZgPT`)2T}Nu?xRw) zMdKnnU4B%Is*rI(y8VZV^nvLFoRDGXm@3L_)o79U0UWZgRZ#u}8_p3pYxOe0!kBU1 zo{5#JXqe9B*}!^2<}VIY>SfVF>L=3zt}UUcRLZ1pR1#ed5>7R-X@>H_KTOV6u0Z=0 zT#~`FmguA$G#6{0Xz$Lb4i#|zteBEtvWXNO+zr1DYoUgZhXBW3U;-jfsg2zk$S+N%cOedN&O3Y?6puBVW82Dv-YGx>d`MT>$ zu*LFxB|1$|-ofS@Dw5hgfmLqW4MzXx3m_6#awP+Q#2v!lraJQWB%wM47}y!)f1B!P zPp10g4Ud_DuAT1lS253D^N>GhZ>6hmrfY1dZ31L8HnIC?ulGFS^J|Cc_Yj%2{{hWt zW@+&sOKU|BRnMup{W2(+l~tRGuZ$vt4es$43!v7C=X6>hJ&kj22L%+gHanu-W08hCuF1DAiAc?{4i;nLUn8Ff? zU@RP{FU`9rmAE09Mqp#;>+bT zon6>poQC8=PQv|4h_uWHl?^>ItdwJ+wt>1A zSLp!N&B$Susqf%#OvpdWE{ahKq_w$GGA!@iB2Xo#h*^G!Y&QZ*wuFXW8sR>T~LS@F!zX}WsDp@x3T z7TR0MBb+WeArQmz%{lT<>&3zN4B>(-wOA*dz`Kr?BfRA3jBXMPFn#ur!~_Nsj-OZ3 zI$b)kf^oxa>Iv2m$8VkOGs+vGzZ-ELP7{(;;JosnL^Z?T<}MSeB+L(X7UG`R(f^K{k`L0Xr;Sb~N>Bkib$06{3PHn^aw2ORQ`)GAhT@Ew)M}qWOztTNA-ioyC{aMpmQ~hQAe)+;35Wx$2f(9GYHB+lD zAO7(9=w@oUlluTL2BVeFz9?jAcnLo@=Kw#>NcgxS=OI6qbTo(sSWfJ~*pu8Qm*@wK zn>xV`l-F^szAXJnX&jS6IQDabY-2yE&%oa&Sh=Gi zD35kTmtccLLr>QYh+vLpAr<|EikFV2LCzNB6xG4SxT2K}dBNxyr*CZlE<=KzLr(T( zl|xdzCYolALlz5-80RSJkjgg&+d*>DMAx=;0FH-gw@^AjSz8d8Fps@S7;#oqg5s1S zX0W~`BD!t@I90-OkeL)0F74i91JU1FXi-V0q*Y0z*xCi|Be;@`GFA5vf0A$L@%`R} z%+RkujY^p=0o13={URTLP8Y$tZvilH0;H9CpK`oA8iMRJ+KL;ZkRlgmb?M+s!xKX) zbfU&e0HnQ>)E8!T@8Bbn8&MRZ4OKp*yTogegSyP+7vO6igufT{6d2x+LpprCX=Q0n z**(dDxh(TeK|cHma<}wM!MT<8OxZfwfWCxkNr6AixxRH4cyJ8Bc8`#F6Dei@9WkmE z!DvJtZ$(peVtWsLZ190}H5t9d5Y17_&5_u#w>r|~H8itg9-9?!FY0-=cAnB!tWnsdcBT~{NkIcd^pa-?Kc_e(31e4w5vuVWt=rv*%zv0HxwB(q(*P-TuL*3VxF*u zz|67;W7Fy4Zvp9G_OCtR(Wl>u5R5bQ-+C}>BoaPA>^WPGa|DHC`uoC~>cZdjDZsbS55&!NxI0QV{^Jx$) z*y9BL<@HDNEYv@mXXT~-+#K~6bIwPgf0_T$MEe^s6u-bYJOlH5Gwp9c)BOV7{hQGL zZmNC4fC=`;gnini#P$mVIrx9Z;5q02$?&AP_6gOWJ*{5{v+>v=^}oaY9M!*jpnija z;g`V(JvI;j4#SgPs3#mx1NO9j75s%G>92A;+Y|MK_RoTc{tN9L(H}#5S}H#Qdg}kv zqU6^}&rkdZ&>to96PQ2q2kjSsHXnPm{}t+guYD!O-@qaN1&5mK8Js`%kU#30C&*6+ z`n1qs`UTnL_mF?BZ=SIHSsa*uVY&M)mj7MCJfV3yn5QZ&{0of+`R|13SDNQanLi +// target.compilations["main"].cinterops { +// create("ContactsHelper") +// } +// } + cocoapods { version = "1.0.0" summary = "Some description for the Shared Module" homepage = "Link to the Shared Module homepage" ios.deploymentTarget = "14.0" - podfile = project.file("../iosApp/Podfile") // why doesn't it load the cocoapods from the iosApp podfile? + podfile = project.file("../iosApp/Podfile") // ✅ This will load your Podfile correctly framework { baseName = "shared" isStatic = true } } - sourceSets { androidMain.dependencies { diff --git a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt index c7da77e..f7b5fd3 100644 --- a/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt +++ b/multiplatformContact/src/iosMain/kotlin/multiContacts/Picker.kt @@ -2,6 +2,7 @@ package multiContacts import androidx.compose.runtime.Composable import androidx.compose.runtime.remember +import kotlinx.cinterop.ExperimentalForeignApi import platform.Contacts.CNContact import platform.ContactsUI.CNContactPickerDelegateProtocol import platform.ContactsUI.CNContactPickerViewController @@ -22,6 +23,9 @@ actual fun pickMultiplatformContacts( countryISOCode: String, onResult: ContactPickedCallback ): Launcher { + //Contacts helper +// val contacts=ContactsHelper() +// contacts.loadContacts() val launcherCustom = remember { Launcher(onLaunch = { val picker = CNContactPickerViewController()