diff --git a/.expo-shared/assets.json b/.expo-shared/assets.json new file mode 100644 index 00000000..1e6decfb --- /dev/null +++ b/.expo-shared/assets.json @@ -0,0 +1,4 @@ +{ + "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, + "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true +} diff --git a/.github/readme-images/screenshots.png b/.github/readme-images/screenshots.png new file mode 100644 index 00000000..8e6b4162 Binary files /dev/null and b/.github/readme-images/screenshots.png differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..3f4f305a --- /dev/null +++ b/.gitignore @@ -0,0 +1,73 @@ +node_modules/**/* +.expo/* +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ + +# macOS +.DS_Store + +# @generated expo-cli sync-2138f1e3e130677ea10ea873f6d498e3890e677b +# The following patterns were generated by expo-cli + +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +*.keystore +!debug.keystore + +# Bundle artifacts +*.jsbundle + +# CocoaPods +/ios/Pods/ + +# Expo +.expo/ +web-build/ + +# @end expo-cli \ No newline at end of file diff --git a/App.js b/App.js new file mode 100644 index 00000000..42c7b56b --- /dev/null +++ b/App.js @@ -0,0 +1,41 @@ +import React, { useEffect } from "react"; +import { StatusBar } from "react-native"; + +import { useFonts } from "expo-font"; +import { Provider as PaperProvider } from "react-native-paper"; +import { Provider } from "react-redux"; +import { persistor, store } from "./src/redux/store"; +import { PersistGate } from "redux-persist/lib/integration/react"; + +import Main from "./src/navigators/Main"; + +import { createDB, deleteDb } from "./src/database/DBHelper"; +import { fonts } from "./src/theme/fonts"; + +const App = () => { + const [loaded] = useFonts(fonts); + + useEffect(() => { + createDB(); + }, []); + + if (!loaded) { + return null; + } + + return ( + + + + +
+ + + + ); +}; + +export default App; diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..cfe50792 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Rajarshee Chatterjee + +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/README.md b/README.md new file mode 100644 index 00000000..833fc38a --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +

+
+ LNReader +
+

+ +

LNReader is a Tachiyomi-like, free and open source light novel reader for Android.

+ +--- + +## Screenshots: +

+ +

+ +## Download +Get the app from our [releases page](https://github.com/rajarsheechatterjee/LNReader/releases). + +## License +[MIT ](https://github.com/rajarsheechatterjee/lnreader/blob/main/LICENSE) diff --git a/android/app/BUCK b/android/app/BUCK new file mode 100644 index 00000000..48d00d42 --- /dev/null +++ b/android/app/BUCK @@ -0,0 +1,55 @@ +# To learn about Buck see [Docs](https://buckbuild.com/). +# To run your application with Buck: +# - install Buck +# - `npm start` - to start the packager +# - `cd android` +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` +# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck +# - `buck install -r android/app` - compile, install and run application +# + +load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") + +lib_deps = [] + +create_aar_targets(glob(["libs/*.aar"])) + +create_jar_targets(glob(["libs/*.jar"])) + +android_library( + name = "all-libs", + exported_deps = lib_deps, +) + +android_library( + name = "app-code", + srcs = glob([ + "src/main/java/**/*.java", + ]), + deps = [ + ":all-libs", + ":build_config", + ":res", + ], +) + +android_build_config( + name = "build_config", + package = "com.rajarsheechatterjee.LNReader", +) + +android_resource( + name = "res", + package = "com.rajarsheechatterjee.LNReader", + res = "src/main/res", +) + +android_binary( + name = "app", + keystore = "//android/keystores:debug", + manifest = "src/main/AndroidManifest.xml", + package_type = "debug", + deps = [ + ":app-code", + ], +) diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 00000000..02d857f7 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,219 @@ +apply plugin: "com.android.application" + +import com.android.build.OutputFile + +/** + * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets + * and bundleReleaseJsAndAssets). + * These basically call `react-native bundle` with the correct arguments during the Android build + * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the + * bundle directly from the development server. Below you can see all the possible configurations + * and their defaults. If you decide to add a configuration block, make sure to add it before the + * `apply from: "../../node_modules/react-native/react.gradle"` line. + * + * project.ext.react = [ + * // the name of the generated asset file containing your JS bundle + * bundleAssetName: "index.android.bundle", + * + * // the entry file for bundle generation. If none specified and + * // "index.android.js" exists, it will be used. Otherwise "index.js" is + * // default. Can be overridden with ENTRY_FILE environment variable. + * entryFile: "index.android.js", + * + * // https://reactnative.dev/docs/performance#enable-the-ram-format + * bundleCommand: "ram-bundle", + * + * // whether to bundle JS and assets in debug mode + * bundleInDebug: false, + * + * // whether to bundle JS and assets in release mode + * bundleInRelease: true, + * + * // whether to bundle JS and assets in another build variant (if configured). + * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants + * // The configuration property can be in the following formats + * // 'bundleIn${productFlavor}${buildType}' + * // 'bundleIn${buildType}' + * // bundleInFreeDebug: true, + * // bundleInPaidRelease: true, + * // bundleInBeta: true, + * + * // whether to disable dev mode in custom build variants (by default only disabled in release) + * // for example: to disable dev mode in the staging build type (if configured) + * devDisabledInStaging: true, + * // The configuration property can be in the following formats + * // 'devDisabledIn${productFlavor}${buildType}' + * // 'devDisabledIn${buildType}' + * + * // the root of your project, i.e. where "package.json" lives + * root: "../../", + * + * // where to put the JS bundle asset in debug mode + * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", + * + * // where to put the JS bundle asset in release mode + * jsBundleDirRelease: "$buildDir/intermediates/assets/release", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in debug mode + * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", + * + * // where to put drawable resources / React Native assets, e.g. the ones you use via + * // require('./image.png')), in release mode + * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", + * + * // by default the gradle tasks are skipped if none of the JS files or assets change; this means + * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to + * // date; if you have any other folders that you want to ignore for performance reasons (gradle + * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ + * // for example, you might want to remove it from here. + * inputExcludes: ["android/**", "ios/**"], + * + * // override which node gets called and with what additional arguments + * nodeExecutableAndArgs: ["node"], + * + * // supply additional arguments to the packager + * extraPackagerArgs: [] + * ] + */ + +project.ext.react = [ + enableHermes: true +] + +apply from: '../../node_modules/react-native-unimodules/gradle.groovy' +apply from: "../../node_modules/react-native/react.gradle" +apply from: "../../node_modules/expo-constants/scripts/get-app-config-android.gradle" +apply from: "../../node_modules/expo-updates/scripts/create-manifest-android.gradle" + +/** + * Set this to true to create two separate APKs instead of one: + * - An APK that only works on ARM devices + * - An APK that only works on x86 devices + * The advantage is the size of the APK is reduced by about 4MB. + * Upload all the APKs to the Play Store and people will download + * the correct one based on the CPU architecture of their device. + */ +def enableSeparateBuildPerCPUArchitecture = false + +/** + * Run Proguard to shrink the Java bytecode in release builds. + */ +def enableProguardInReleaseBuilds = false + +/** + * The preferred build flavor of JavaScriptCore. + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' + +/** + * Whether to enable the Hermes VM. + * + * This should be set on project.ext.react and mirrored here. If it is not set + * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode + * and the benefits of using Hermes will therefore be sharply reduced. + */ +def enableHermes = project.ext.react.get("enableHermes", false); + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + applicationId 'com.rajarsheechatterjee.LNReader' + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0.21" + } + splits { + abi { + reset() + enable enableSeparateBuildPerCPUArchitecture + universalApk false // If true, also generate a universal APK + include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" + } + } + signingConfigs { + debug { + storeFile file('debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + buildTypes { + debug { + signingConfig signingConfigs.debug + } + release { + // Caution! In production, you need to generate your own keystore file. + // see https://reactnative.dev/docs/signed-apk-android. + signingConfig signingConfigs.debug + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + } + } + + // applicationVariants are e.g. debug, release + applicationVariants.all { variant -> + variant.outputs.each { output -> + // For each separate APK per architecture, set a unique version code as described here: + // https://developer.android.com/studio/build/configure-apk-splits.html + def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] + def abi = output.getFilter(OutputFile.ABI) + if (abi != null) { // null for the universal-debug, universal-release variants + output.versionCodeOverride = + versionCodes.get(abi) * 1048576 + defaultConfig.versionCode + } + + } + } +} + +dependencies { + implementation fileTree(dir: "libs", include: ["*.jar"]) + //noinspection GradleDynamicVersion + implementation "com.facebook.react:react-native:+" // From node_modules + implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" + debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { + exclude group:'com.facebook.fbjni' + } + debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { + exclude group:'com.facebook.flipper' + exclude group:'com.squareup.okhttp3', module:'okhttp' + } + debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { + exclude group:'com.facebook.flipper' + } + addUnimodulesDependencies() + + if (enableHermes) { + def hermesPath = "../../node_modules/hermes-engine/android/"; + debugImplementation files(hermesPath + "hermes-debug.aar") + releaseImplementation files(hermesPath + "hermes-release.aar") + } else { + implementation jscFlavor + } +} + +// Run this once to be able to run the application with BUCK +// puts all compile dependencies into folder libs for BUCK to use +task copyDownloadableDepsToLibs(type: Copy) { + from configurations.compile + into 'libs' +} + +apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/android/app/build_defs.bzl b/android/app/build_defs.bzl new file mode 100644 index 00000000..fff270f8 --- /dev/null +++ b/android/app/build_defs.bzl @@ -0,0 +1,19 @@ +"""Helper definitions to glob .aar and .jar targets""" + +def create_aar_targets(aarfiles): + for aarfile in aarfiles: + name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] + lib_deps.append(":" + name) + android_prebuilt_aar( + name = name, + aar = aarfile, + ) + +def create_jar_targets(jarfiles): + for jarfile in jarfiles: + name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] + lib_deps.append(":" + name) + prebuilt_jar( + name = name, + binary_jar = jarfile, + ) diff --git a/android/app/debug.keystore b/android/app/debug.keystore new file mode 100644 index 00000000..364e105e Binary files /dev/null and b/android/app/debug.keystore differ diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 00000000..11b02572 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,10 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..99e38fc5 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/android/app/src/debug/java/com/lnreader/ReactNativeFlipper.java b/android/app/src/debug/java/com/lnreader/ReactNativeFlipper.java new file mode 100644 index 00000000..ff98a382 --- /dev/null +++ b/android/app/src/debug/java/com/lnreader/ReactNativeFlipper.java @@ -0,0 +1,69 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + *

This source code is licensed under the MIT license found in the LICENSE file in the root + * directory of this source tree. + */ +package com.lnreader; + +import android.content.Context; +import com.facebook.flipper.android.AndroidFlipperClient; +import com.facebook.flipper.android.utils.FlipperUtils; +import com.facebook.flipper.core.FlipperClient; +import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; +import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; +import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; +import com.facebook.flipper.plugins.inspector.DescriptorMapping; +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; +import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; +import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; +import com.facebook.flipper.plugins.react.ReactFlipperPlugin; +import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.bridge.ReactContext; +import com.facebook.react.modules.network.NetworkingModule; +import okhttp3.OkHttpClient; + +public class ReactNativeFlipper { + public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { + if (FlipperUtils.shouldEnableFlipper(context)) { + final FlipperClient client = AndroidFlipperClient.getInstance(context); + client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); + client.addPlugin(new ReactFlipperPlugin()); + client.addPlugin(new DatabasesFlipperPlugin(context)); + client.addPlugin(new SharedPreferencesFlipperPlugin(context)); + client.addPlugin(CrashReporterPlugin.getInstance()); + NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); + NetworkingModule.setCustomClientBuilder( + new NetworkingModule.CustomClientBuilder() { + @Override + public void apply(OkHttpClient.Builder builder) { + builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); + } + }); + client.addPlugin(networkFlipperPlugin); + client.start(); + // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized + // Hence we run if after all native modules have been initialized + ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); + if (reactContext == null) { + reactInstanceManager.addReactInstanceEventListener( + new ReactInstanceManager.ReactInstanceEventListener() { + @Override + public void onReactContextInitialized(ReactContext reactContext) { + reactInstanceManager.removeReactInstanceEventListener(this); + reactContext.runOnNativeModulesQueueThread( + new Runnable() { + @Override + public void run() { + client.addPlugin(new FrescoFlipperPlugin()); + } + }); + } + }); + } else { + client.addPlugin(new FrescoFlipperPlugin()); + } + } + } +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..b4c7a7aa --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/assets/index.android.bundle b/android/app/src/main/assets/index.android.bundle new file mode 100644 index 00000000..f063a48c --- /dev/null +++ b/android/app/src/main/assets/index.android.bundle @@ -0,0 +1,1183 @@ +var __BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=this.process||{};process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production"; +!(function(r){"use strict";r.__r=o,r.__d=function(r,i,n){if(null!=e[i])return;var o={dependencyMap:n,factory:r,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}};e[i]=o},r.__c=n,r.__registerSegment=function(r,e){s[r]=e};var e=n(),t={},i={}.hasOwnProperty;function n(){return e=Object.create(null)}function o(r){var t=r,i=e[t];return i&&i.isInitialized?i.publicModule.exports:d(t,i)}function l(r){var i=r;if(e[i]&&e[i].importedDefault!==t)return e[i].importedDefault;var n=o(i),l=n&&n.__esModule?n.default:n;return e[i].importedDefault=l}function u(r){var n=r;if(e[n]&&e[n].importedAll!==t)return e[n].importedAll;var l,u=o(n);if(u&&u.__esModule)l=u;else{if(l={},u)for(var a in u)i.call(u,a)&&(l[a]=u[a]);l.default=u}return e[n].importedAll=l}o.importDefault=l,o.importAll=u;var a=!1;function d(e,t){if(!a&&r.ErrorUtils){var i;a=!0;try{i=v(e,t)}catch(e){r.ErrorUtils.reportFatalError(e)}return a=!1,i}return v(e,t)}var c=16,f=65535;function p(r){return{segmentId:r>>>c,localId:r&f}}o.unpackModuleId=p,o.packModuleId=function(r){return(r.segmentId<0){var n=p(t),a=n.segmentId,d=n.localId,c=s[a];null!=c&&(c(d),i=e[t])}var f=r.nativeRequire;if(!i&&f){var v=p(t),h=v.segmentId;f(v.localId,h),i=e[t]}if(!i)throw Error('Requiring unknown module "'+t+'".');if(i.hasError)throw m(t,i.error);i.isInitialized=!0;var I=i,g=I.factory,y=I.dependencyMap;try{var _=i.publicModule;return _.id=t,g(r,o,l,u,_,_.exports,y),i.factory=void 0,i.dependencyMap=void 0,_.exports}catch(r){throw i.hasError=!0,i.error=r,i.isInitialized=!1,i.publicModule.exports=void 0,r}}function m(r,e){return Error('Requiring module "'+r+'", which threw an exception: '+e)}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); +!(function(n){var e=(function(){function n(n,e){return n}function e(n){var e={};return n.forEach(function(n,r){e[n]=!0}),e}function r(n,r,u){if(n.formatValueCalls++,n.formatValueCalls>200)return"[TOO BIG formatValueCalls "+n.formatValueCalls+" exceeded limit of 200]";var f=t(n,r);if(f)return f;var c=Object.keys(r),s=e(c);if(d(r)&&(c.indexOf('message')>=0||c.indexOf('description')>=0))return o(r);if(0===c.length){if(v(r)){var g=r.name?': '+r.name:'';return n.stylize('[Function'+g+']','special')}if(p(r))return n.stylize(RegExp.prototype.toString.call(r),'regexp');if(y(r))return n.stylize(Date.prototype.toString.call(r),'date');if(d(r))return o(r)}var h,b,m='',j=!1,O=['{','}'];(h=r,Array.isArray(h)&&(j=!0,O=['[',']']),v(r))&&(m=' [Function'+(r.name?': '+r.name:'')+']');return p(r)&&(m=' '+RegExp.prototype.toString.call(r)),y(r)&&(m=' '+Date.prototype.toUTCString.call(r)),d(r)&&(m=' '+o(r)),0!==c.length||j&&0!=r.length?u<0?p(r)?n.stylize(RegExp.prototype.toString.call(r),'regexp'):n.stylize('[Object]','special'):(n.seen.push(r),b=j?i(n,r,u,s,c):c.map(function(e){return l(n,r,u,s,e,j)}),n.seen.pop(),a(b,m,O)):O[0]+m+O[1]}function t(n,e){if(s(e))return n.stylize('undefined','undefined');if('string'==typeof e){var r="'"+JSON.stringify(e).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(r,'string')}return c(e)?n.stylize(''+e,'number'):u(e)?n.stylize(''+e,'boolean'):f(e)?n.stylize('null','null'):void 0}function o(n){return'['+Error.prototype.toString.call(n)+']'}function i(n,e,r,t,o){for(var i=[],a=0,u=e.length;a-1&&(u=l?u.split('\n').map(function(n){return' '+n}).join('\n').substr(2):'\n'+u.split('\n').map(function(n){return' '+n}).join('\n')):u=n.stylize('[Circular]','special')),s(a)){if(l&&i.match(/^\d+$/))return u;(a=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=n.stylize(a,'name')):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=n.stylize(a,'string'))}return a+': '+u}function a(n,e,r){return n.reduce(function(n,e){return 0,e.indexOf('\n')>=0&&0,n+e.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?r[0]+(''===e?'':e+'\n ')+' '+n.join(',\n ')+' '+r[1]:r[0]+e+' '+n.join(', ')+' '+r[1]}function u(n){return'boolean'==typeof n}function f(n){return null===n}function c(n){return'number'==typeof n}function s(n){return void 0===n}function p(n){return g(n)&&'[object RegExp]'===h(n)}function g(n){return'object'==typeof n&&null!==n}function y(n){return g(n)&&'[object Date]'===h(n)}function d(n){return g(n)&&('[object Error]'===h(n)||n instanceof Error)}function v(n){return'function'==typeof n}function h(n){return Object.prototype.toString.call(n)}function b(n,e){return Object.prototype.hasOwnProperty.call(n,e)}return function(e,t){return r({seen:[],formatValueCalls:0,stylize:n},e,t.depth)}})(),r='(index)',t={trace:0,info:1,warn:2,error:3},o=[];o[t.trace]='debug',o[t.info]='log',o[t.warn]='warning',o[t.error]='error';var i=1;function l(r){return function(){var l;l=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(n){return e(n,{depth:10})}).join(', ');var a=arguments[0],u=r;'string'==typeof a&&'Warning: '===a.slice(0,9)&&u>=t.error&&(u=t.warn),n.__inspectorLog&&n.__inspectorLog(o[u],l,[].slice.call(arguments),i),s.length&&(l=p('',l)),n.nativeLoggingHook(l,u)}}function a(n,e){return Array.apply(null,Array(e)).map(function(){return n})}var u="\u2502",f="\u2510",c="\u2518",s=[];function p(n,e){return s.join('')+n+' '+(e||'')}if(n.nativeLoggingHook){n.console;n.console={error:l(t.error),info:l(t.info),log:l(t.info),warn:l(t.warn),trace:l(t.trace),debug:l(t.trace),table:function(e){if(!Array.isArray(e)){var o=e;for(var i in e=[],o)if(o.hasOwnProperty(i)){var l=o[i];l[r]=i,e.push(l)}}if(0!==e.length){var u=Object.keys(e[0]).sort(),f=[],c=[];u.forEach(function(n,r){c[r]=n.length;for(var t=0;t';return function(){for(var r=arguments.length,u=new Array(r),e=0;eF.length&&F.push(t)}function D(t,n,f,c){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var s=!1;if(null===t)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case u:s=!0}}if(s)return f(c,t,""===n?"."+B(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var p=0;p0?s[s.length-1]:null,h=s.length>1?s[s.length-2]:null,y='function'==typeof v,C='function'==typeof h;C&&u(y,'Cannot have a non-function arg after a function arg.');var M=y?v:null,b=C?h:null,p=y+C;if(s=s.slice(0,s.length-p),'sync'===l)return o.callNativeSyncHook(n,t,s,b,M);o.enqueueNativeCall(n,t,s,b,M)}).type=l,f}function c(n,t){return-1!==n.indexOf(t)}function v(t,o){return n(o,t||{})}g.__fbGenNativeModule=l;var h={};if(g.nativeModuleProxy)h=g.nativeModuleProxy;else if(!g.nativeExtensions){var y=g.__fbBatchedBridgeConfig;u(y,'__fbBatchedBridgeConfig is not set, cannot invoke native modules');var C=r(d[4]);(y.remoteModuleConfig||[]).forEach(function(n,t){var o=l(n,t);o&&(o.module?h[o.name]=o.module:C(h,o.name,{get:function(){return f(o.name,t)}}))})}m.exports=h},18,[9,19,25,11,37]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),n=r(d[2]),s=r(d[3]);m.exports=function(u,p){return t(u)||o(u,p)||n(u,p)||s()},m.exports.default=m.exports,m.exports.__esModule=!0},19,[20,21,22,24]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t){if(Array.isArray(t))return t},m.exports.default=m.exports,m.exports.__esModule=!0},20,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t,l){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=n){var o,u,f=[],y=!0,p=!1;try{for(n=n.call(t);!(y=(o=n.next()).done)&&(f.push(o.value),!l||f.length!==l);y=!0);}catch(t){p=!0,u=t}finally{try{y||null==n.return||n.return()}finally{if(p)throw u}}return f}},m.exports.default=m.exports,m.exports.__esModule=!0},21,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(o,n){if(o){if("string"==typeof o)return t(o,n);var s=Object.prototype.toString.call(o).slice(8,-1);return"Object"===s&&o.constructor&&(s=o.constructor.name),"Map"===s||"Set"===s?Array.from(o):"Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?t(o,n):void 0}},m.exports.default=m.exports,m.exports.__esModule=!0},22,[23]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,l=new Array(n);o=5){var c=this._queue;this._queue=[[],[],[],this._callID],this._lastFlush=o,g.nativeFlushQueueImmediate(c)}n.counterEvent('pending_js_to_native_queue',this._queue[0].length),this.__spy&&this.__spy({type:1,module:t+'',method:l,args:u})}},{key:"createDebugLookup",value:function(t,l,u){}},{key:"setImmediatesCallback",value:function(t){this._immediatesCallback=t}},{key:"__guard",value:function(t){if(this.__shouldPauseOnThrow())t();else try{t()}catch(t){s.reportFatalError(t)}}},{key:"__shouldPauseOnThrow",value:function(){return'undefined'!=typeof DebuggerInternal&&!0===DebuggerInternal.shouldPauseOnThrow}},{key:"__callImmediates",value:function(){n.beginEvent('JSTimers.callImmediates()'),null!=this._immediatesCallback&&this._immediatesCallback(),n.endEvent()}},{key:"__callFunction",value:function(t,l,u){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush,this.__spy?n.beginEvent(t+"."+l+"("+o(u)+")"):n.beginEvent(t+"."+l+"(...)"),this.__spy&&this.__spy({type:0,module:t,method:l,args:u});var s=this.getCallableModule(t);h(!!s,'Module %s is not a registered callable module (calling %s)',t,l),h(!!s[l],'Method %s does not exist on module %s',l,t),s[l].apply(s,u),n.endEvent()}},{key:"__invokeCallback",value:function(l,u){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush;var s=l>>>1,n=1&l?this._successCallbacks.get(s):this._failureCallbacks.get(s);n&&(this._successCallbacks.delete(s),this._failureCallbacks.delete(s),n.apply(void 0,t(u)))}}],[{key:"spy",value:function(t){c.prototype.__spy=!0===t?function(t){console.log((0===t.type?'N->JS':'JS->N')+" : "+(t.module?t.module+'.':'')+t.method+"("+JSON.stringify(t.args)+")")}:!1===t?null:t}}]),c})());m.exports=c},26,[27,31,32,33,34,35,11,36,12]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),n=r(d[2]),s=r(d[3]);m.exports=function(u){return t(u)||o(u)||n(u)||s()},m.exports.default=m.exports,m.exports.__esModule=!0},27,[28,29,22,30]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(o){if(Array.isArray(o))return t(o)},m.exports.default=m.exports,m.exports.__esModule=!0},28,[23]); +__d(function(g,r,i,a,m,e,d){m.exports=function(o){if("undefined"!=typeof Symbol&&null!=o[Symbol.iterator]||null!=o["@@iterator"])return Array.from(o)},m.exports.default=m.exports,m.exports.__esModule=!0},29,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},m.exports.default=m.exports,m.exports.__esModule=!0},30,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(o,n){if(!(o instanceof n))throw new TypeError("Cannot call a class as a function")},m.exports.default=m.exports,m.exports.__esModule=!0},31,[]); +__d(function(g,r,i,a,m,e,d){function t(t,n){for(var o=0;o=t.length?{done:!0}:{done:!1,value:t[f++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(t,n){if(t){if("string"==typeof t)return f(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?f(t,n):void 0}}function f(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);oc+"...(truncated)...".length?u.substring(0,c)+"...(truncated)...":u}if('object'!=typeof u||null===u)return u;var l=u;if(Array.isArray(u))b.length>=f?l="[ ... array with "+u.length+" values ... ]":u.length>y&&(l=u.slice(0,y).concat(["... extra "+(u.length-y)+" values truncated ..."]));else{(0,n.default)('object'==typeof u,'This was already found earlier');var s=Object.keys(u);if(b.length>=f)l="{ ... object with "+s.length+" keys ... }";else if(s.length>v){l={};for(var h,I=o(s.slice(0,v));!(h=I()).done;){var p=h.value;l[p]=u[p]}l['...(truncated keys)...']=s.length-v}}return b.unshift(l),l}return function(t){if(void 0===t)return'undefined';if(null===t)return'null';if('function'==typeof t)try{return t.toString()}catch(t){return'[function unknown]'}else{if(t instanceof Error)return t.name+': '+t.message;try{var n=JSON.stringify(t,I);return void 0===n?'["'+typeof t+'" failed to stringify]':n}catch(n){if('function'==typeof t.toString)try{return t.toString()}catch(t){}}}return'["'+typeof t+'" failed to stringify]'}}var c=l({maxDepth:10,maxStringLimit:100,maxArrayLimit:50,maxObjectKeysLimit:50});e.default=c},36,[1,11]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t,n,u){var b,c=u.get,o=!1!==u.enumerable,f=!1!==u.writable,l=!1;function s(u){b=u,l=!0,Object.defineProperty(t,n,{value:u,configurable:!0,enumerable:o,writable:f})}Object.defineProperty(t,n,{get:function(){return l||(l=!0,s(c())),b},set:s,configurable:!0,enumerable:o})}},37,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),u=r(d[4]),s=r(d[5]);function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var f=r(d[6]),p=r(d[7]),v=(function(v){c(R,f);var h,y,b=(h=R,y=l(),function(){var t,n=s(h);if(y){var o=s(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return u(this,t)});function R(){var n;t(this,R);var o=new p;return(n=b.call(this,o)).sharedSubscriber=o,n}return n(R,[{key:"addListener",value:function(t,n,c){return o(s(R.prototype),"addListener",this).call(this,t,n,c)}},{key:"removeAllListeners",value:function(t){o(s(R.prototype),"removeAllListeners",this).call(this,t)}},{key:"removeSubscription",value:function(t){t.emitter!==this?t.emitter.removeSubscription(t):o(s(R.prototype),"removeSubscription",this).call(this,t)}}]),R})();m.exports=new v},38,[31,32,39,42,44,41,47,50]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);function o(s,p,u){return"undefined"!=typeof Reflect&&Reflect.get?(m.exports=o=Reflect.get,m.exports.default=m.exports,m.exports.__esModule=!0):(m.exports=o=function(o,s,p){var u=t(o,s);if(u){var f=Object.getOwnPropertyDescriptor(u,s);return f.get?f.get.call(p):f.value}},m.exports.default=m.exports,m.exports.__esModule=!0),o(s,p,u||s)}m.exports=o,m.exports.default=m.exports,m.exports.__esModule=!0},39,[40]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(o,n){for(;!Object.prototype.hasOwnProperty.call(o,n)&&null!==(o=t(o)););return o},m.exports.default=m.exports,m.exports.__esModule=!0},40,[41]); +__d(function(g,r,i,a,m,e,d){function t(o){return m.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},m.exports.default=m.exports,m.exports.__esModule=!0,t(o)}m.exports=t,m.exports.default=m.exports,m.exports.__esModule=!0},41,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(o,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");o.prototype=Object.create(n&&n.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),n&&t(o,n)},m.exports.default=m.exports,m.exports.__esModule=!0},42,[43]); +__d(function(g,r,i,a,m,e,d){function t(o,s){return m.exports=t=Object.setPrototypeOf||function(t,o){return t.__proto__=o,t},m.exports.default=m.exports,m.exports.__esModule=!0,t(o,s)}m.exports=t,m.exports.default=m.exports,m.exports.__esModule=!0},43,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]).default,o=r(d[1]);m.exports=function(n,u){return!u||"object"!==t(u)&&"function"!=typeof u?o(n):u},m.exports.default=m.exports,m.exports.__esModule=!0},44,[45,46]); +__d(function(g,r,i,a,m,e,d){function o(t){"@babel/helpers - typeof";return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(m.exports=o=function(o){return typeof o},m.exports.default=m.exports,m.exports.__esModule=!0):(m.exports=o=function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},m.exports.default=m.exports,m.exports.__esModule=!0),o(t)}m.exports=o,m.exports.default=m.exports,m.exports.__esModule=!0},45,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},m.exports.default=m.exports,m.exports.__esModule=!0},46,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),o=r(d[4]),c=function(){return!0},b=(function(){function b(n){t(this,b),this._subscriber=n||new u}return n(b,[{key:"addListener",value:function(t,n,u){return this._subscriber.addSubscription(t,new s(this,this._subscriber,n,u))}},{key:"once",value:function(t,n,s){var u=this;return this.addListener(t,function(){u.removeCurrentListener();for(var t=arguments.length,o=new Array(t),c=0;c=0||Object.prototype.propertyIsEnumerable.call(o,l)&&(s[l]=o[l])}return s},m.exports.default=m.exports,m.exports.__esModule=!0},60,[61]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){if(null==t)return{};var o,u,f={},s=Object.keys(t);for(u=0;u=0||(f[o]=t[o]);return f},m.exports.default=m.exports,m.exports.__esModule=!0},61,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);function o(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);o&&(c=c.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,c)}return n}function n(n){for(var c=1;c1&&(o-=1),o<.16666666666666666?l+6*(n-l)*o:o<.5?n:o<.6666666666666666?l+(n-l)*(.6666666666666666-o)*6:l}function n(n,o,t){var u=t<.5?t*(1+o):t+o-t*o,s=2*t-u,h=l(s,u,n+.3333333333333333),c=l(s,u,n),b=l(s,u,n-.3333333333333333);return Math.round(255*h)<<24|Math.round(255*c)<<16|Math.round(255*b)<<8}var o,t='[-+]?\\d*\\.?\\d+',u="[-+]?\\d*\\.?\\d+%";function s(){for(var l=arguments.length,n=new Array(l),o=0;o255?255:n}function c(l){return(parseFloat(l)%360+360)%360/360}function b(l){var n=parseFloat(l);return n<0?0:n>1?255:Math.round(255*n)}function p(l){var n=parseFloat(l);return n<0?0:n>100?1:n/100}var y={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199};m.exports=function(l){var f,k=(void 0===o&&(o={rgb:new RegExp('rgb'+s(t,t,t)),rgba:new RegExp('rgba'+s(t,t,t,t)),hsl:new RegExp('hsl'+s(t,u,u)),hsla:new RegExp('hsla'+s(t,u,u,t)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/}),o);return'number'==typeof l?l>>>0===l&&l>=0&&l<=4294967295?l:null:'object'==typeof l&&null!=l&&null!=(0,r(d[0]).normalizeColorObject)(l)?l:'string'!=typeof l?null:(f=k.hex6.exec(l))?parseInt(f[1]+'ff',16)>>>0:y.hasOwnProperty(l)?y[l]:(f=k.rgb.exec(l))?(h(f[1])<<24|h(f[2])<<16|h(f[3])<<8|255)>>>0:(f=k.rgba.exec(l))?(h(f[1])<<24|h(f[2])<<16|h(f[3])<<8|b(f[4]))>>>0:(f=k.hex3.exec(l))?parseInt(f[1]+f[1]+f[2]+f[2]+f[3]+f[3]+'ff',16)>>>0:(f=k.hex8.exec(l))?parseInt(f[1],16)>>>0:(f=k.hex4.exec(l))?parseInt(f[1]+f[1]+f[2]+f[2]+f[3]+f[3]+f[4]+f[4],16)>>>0:(f=k.hsl.exec(l))?(255|n(c(f[1]),p(f[2]),p(f[3])))>>>0:(f=k.hsla.exec(l))?(n(c(f[1]),p(f[2]),p(f[3]))|b(f[4]))>>>0:null}},69,[70]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.processColorObject=e.normalizeColorObject=e.ColorAndroidPrivate=e.PlatformColor=void 0;e.PlatformColor=function(){for(var o=arguments.length,t=new Array(o),n=0;n3?p-3:0),l=3;l>>8)>>>0,o|=0)}}},80,[56,69,70]); +__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),r(d[1]),r(d[2]),r(d[3]).default;m.exports=function(t){return t}},81,[82,56,11,36]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o={createIdentityMatrix:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},createCopy:function(t){return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]]},createOrthographic:function(t,n,o,u,s,c){return[2/(n-t),0,0,0,0,2/(u-o),0,0,0,0,-2/(c-s),0,-(n+t)/(n-t),-(u+o)/(u-o),-(c+s)/(c-s),1]},createFrustum:function(t,n,o,u,s,c){var v=1/(n-t),f=1/(u-o),h=1/(s-c);return[s*v*2,0,0,0,0,s*f*2,0,0,(n+t)*v,(u+o)*f,(c+s)*h,-1,0,0,c*s*h*2,0]},createPerspective:function(t,n,o,u){var s=1/Math.tan(t/2),c=1/(o-u);return[s/n,0,0,0,0,s,0,0,0,0,(u+o)*c,-1,0,0,u*o*c*2,0]},createTranslate2d:function(t,n){var u=o.createIdentityMatrix();return o.reuseTranslate2dCommand(u,t,n),u},reuseTranslate2dCommand:function(t,n,o){t[12]=n,t[13]=o},reuseTranslate3dCommand:function(t,n,o,u){t[12]=n,t[13]=o,t[14]=u},createScale:function(t){var n=o.createIdentityMatrix();return o.reuseScaleCommand(n,t),n},reuseScaleCommand:function(t,n){t[0]=n,t[5]=n},reuseScale3dCommand:function(t,n,o,u){t[0]=n,t[5]=o,t[10]=u},reusePerspectiveCommand:function(t,n){t[11]=-1/n},reuseScaleXCommand:function(t,n){t[0]=n},reuseScaleYCommand:function(t,n){t[5]=n},reuseScaleZCommand:function(t,n){t[10]=n},reuseRotateXCommand:function(t,n){t[5]=Math.cos(n),t[6]=Math.sin(n),t[9]=-Math.sin(n),t[10]=Math.cos(n)},reuseRotateYCommand:function(t,n){t[0]=Math.cos(n),t[2]=-Math.sin(n),t[8]=Math.sin(n),t[10]=Math.cos(n)},reuseRotateZCommand:function(t,n){t[0]=Math.cos(n),t[1]=Math.sin(n),t[4]=-Math.sin(n),t[5]=Math.cos(n)},createRotateZ:function(t){var n=o.createIdentityMatrix();return o.reuseRotateZCommand(n,t),n},reuseSkewXCommand:function(t,n){t[4]=Math.tan(n)},reuseSkewYCommand:function(t,n){t[1]=Math.tan(n)},multiplyInto:function(t,n,o){var u=n[0],s=n[1],c=n[2],v=n[3],f=n[4],h=n[5],M=n[6],l=n[7],C=n[8],p=n[9],x=n[10],T=n[11],y=n[12],S=n[13],P=n[14],q=n[15],D=o[0],X=o[1],Y=o[2],I=o[3];t[0]=D*u+X*f+Y*C+I*y,t[1]=D*s+X*h+Y*p+I*S,t[2]=D*c+X*M+Y*x+I*P,t[3]=D*v+X*l+Y*T+I*q,D=o[4],X=o[5],Y=o[6],I=o[7],t[4]=D*u+X*f+Y*C+I*y,t[5]=D*s+X*h+Y*p+I*S,t[6]=D*c+X*M+Y*x+I*P,t[7]=D*v+X*l+Y*T+I*q,D=o[8],X=o[9],Y=o[10],I=o[11],t[8]=D*u+X*f+Y*C+I*y,t[9]=D*s+X*h+Y*p+I*S,t[10]=D*c+X*M+Y*x+I*P,t[11]=D*v+X*l+Y*T+I*q,D=o[12],X=o[13],Y=o[14],I=o[15],t[12]=D*u+X*f+Y*C+I*y,t[13]=D*s+X*h+Y*p+I*S,t[14]=D*c+X*M+Y*x+I*P,t[15]=D*v+X*l+Y*T+I*q},determinant:function(n){var o=t(n,16),u=o[0],s=o[1],c=o[2],v=o[3],f=o[4],h=o[5],M=o[6],l=o[7],C=o[8],p=o[9],x=o[10],T=o[11],y=o[12],S=o[13],P=o[14],q=o[15];return v*M*p*y-c*l*p*y-v*h*x*y+s*l*x*y+c*h*T*y-s*M*T*y-v*M*C*S+c*l*C*S+v*f*x*S-u*l*x*S-c*f*T*S+u*M*T*S+v*h*C*P-s*l*C*P-v*f*p*P+u*l*p*P+s*f*T*P-u*h*T*P-c*h*C*q+s*M*C*q+c*f*p*q-u*M*p*q-s*f*x*q+u*h*x*q},inverse:function(n){var u=o.determinant(n);if(!u)return n;var s=t(n,16),c=s[0],v=s[1],f=s[2],h=s[3],M=s[4],l=s[5],C=s[6],p=s[7],x=s[8],T=s[9],y=s[10],S=s[11],P=s[12],q=s[13],D=s[14],X=s[15];return[(C*S*q-p*y*q+p*T*D-l*S*D-C*T*X+l*y*X)/u,(h*y*q-f*S*q-h*T*D+v*S*D+f*T*X-v*y*X)/u,(f*p*q-h*C*q+h*l*D-v*p*D-f*l*X+v*C*X)/u,(h*C*T-f*p*T-h*l*y+v*p*y+f*l*S-v*C*S)/u,(p*y*P-C*S*P-p*x*D+M*S*D+C*x*X-M*y*X)/u,(f*S*P-h*y*P+h*x*D-c*S*D-f*x*X+c*y*X)/u,(h*C*P-f*p*P-h*M*D+c*p*D+f*M*X-c*C*X)/u,(f*p*x-h*C*x+h*M*y-c*p*y-f*M*S+c*C*S)/u,(l*S*P-p*T*P+p*x*q-M*S*q-l*x*X+M*T*X)/u,(h*T*P-v*S*P-h*x*q+c*S*q+v*x*X-c*T*X)/u,(v*p*P-h*l*P+h*M*q-c*p*q-v*M*X+c*l*X)/u,(h*l*x-v*p*x-h*M*T+c*p*T+v*M*S-c*l*S)/u,(C*T*P-l*y*P-C*x*q+M*y*q+l*x*D-M*T*D)/u,(v*y*P-f*T*P+f*x*q-c*y*q-v*x*D+c*T*D)/u,(f*l*P-v*C*P-f*M*q+c*C*q+v*M*D-c*l*D)/u,(v*C*x-f*l*x+f*M*T-c*C*T-v*M*y+c*l*y)/u]},transpose:function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},multiplyVectorByMatrix:function(n,o){var u=t(n,4),s=u[0],c=u[1],v=u[2],f=u[3];return[s*o[0]+c*o[4]+v*o[8]+f*o[12],s*o[1]+c*o[5]+v*o[9]+f*o[13],s*o[2]+c*o[6]+v*o[10]+f*o[14],s*o[3]+c*o[7]+v*o[11]+f*o[15]]},v3Length:function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},v3Normalize:function(t,n){var u=1/(n||o.v3Length(t));return[t[0]*u,t[1]*u,t[2]*u]},v3Dot:function(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]},v3Combine:function(t,n,o,u){return[o*t[0]+u*n[0],o*t[1]+u*n[1],o*t[2]+u*n[2]]},v3Cross:function(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]},quaternionToDegreesXYZ:function(n,u,s){var c=t(n,4),v=c[0],f=c[1],h=c[2],M=c[3],l=v*v,C=f*f,p=h*h,x=v*f+h*M,T=M*M+l+C+p,y=180/Math.PI;return x>.49999*T?[0,2*Math.atan2(v,M)*y,90]:x<-.49999*T?[0,-2*Math.atan2(v,M)*y,-90]:[o.roundTo3Places(Math.atan2(2*v*M-2*f*h,1-2*l-2*p)*y),o.roundTo3Places(Math.atan2(2*f*M-2*v*h,1-2*C-2*p)*y),o.roundTo3Places(Math.asin(2*v*f+2*h*M)*y)]},roundTo3Places:function(t){var n=t.toString().split('e');return.001*Math.round(n[0]+'e'+(n[1]?+n[1]-3:3))},decomposeMatrix:function(t){n(16===t.length,'Matrix decomposition needs a list of 3d matrix values, received %s',t);var u=[],s=[],c=[],v=[],f=[];if(t[15]){for(var h=[],M=[],l=0;l<4;l++){h.push([]);for(var C=0;C<4;C++){var p=t[4*l+C]/t[15];h[l].push(p),M.push(3===C?0:p)}}if(M[15]=1,o.determinant(M)){if(0!==h[0][3]||0!==h[1][3]||0!==h[2][3]){var x=[h[0][3],h[1][3],h[2][3],h[3][3]],T=o.inverse(M),y=o.transpose(T);u=o.multiplyVectorByMatrix(x,y)}else u[0]=u[1]=u[2]=0,u[3]=1;for(var S=0;S<3;S++)f[S]=h[3][S];for(var P=[],q=0;q<3;q++)P[q]=[h[q][0],h[q][1],h[q][2]];c[0]=o.v3Length(P[0]),P[0]=o.v3Normalize(P[0],c[0]),v[0]=o.v3Dot(P[0],P[1]),P[1]=o.v3Combine(P[1],P[0],1,-v[0]),c[1]=o.v3Length(P[1]),P[1]=o.v3Normalize(P[1],c[1]),v[0]/=c[1],v[1]=o.v3Dot(P[0],P[2]),P[2]=o.v3Combine(P[2],P[0],1,-v[1]),v[2]=o.v3Dot(P[1],P[2]),P[2]=o.v3Combine(P[2],P[1],1,-v[2]),c[2]=o.v3Length(P[2]),P[2]=o.v3Normalize(P[2],c[2]),v[1]/=c[2],v[2]/=c[2];var D,X=o.v3Cross(P[1],P[2]);if(o.v3Dot(P[0],X)<0)for(var Y=0;Y<3;Y++)c[Y]*=-1,P[Y][0]*=-1,P[Y][1]*=-1,P[Y][2]*=-1;return s[0]=.5*Math.sqrt(Math.max(1+P[0][0]-P[1][1]-P[2][2],0)),s[1]=.5*Math.sqrt(Math.max(1-P[0][0]+P[1][1]-P[2][2],0)),s[2]=.5*Math.sqrt(Math.max(1-P[0][0]-P[1][1]+P[2][2],0)),s[3]=.5*Math.sqrt(Math.max(1+P[0][0]+P[1][1]+P[2][2],0)),P[2][1]>P[1][2]&&(s[0]=-s[0]),P[0][2]>P[2][0]&&(s[1]=-s[1]),P[1][0]>P[0][1]&&(s[2]=-s[2]),{rotationDegrees:D=s[0]<.001&&s[0]>=0&&s[1]<.001&&s[1]>=0?[0,0,o.roundTo3Places(180*Math.atan2(P[0][1],P[0][0])/Math.PI)]:o.quaternionToDegreesXYZ(s,h,P),perspective:u,quaternion:s,scale:c,skew:v,translation:f,rotate:D[2],rotateX:D[0],rotateY:D[1],scaleX:c[0],scaleY:c[1],translateX:f[0],translateY:f[1]}}}}};m.exports=o},82,[19,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t={width:void 0,height:void 0};m.exports=function(h,n){return(h=h||t)!==(n=n||t)&&(h.width!==n.width||h.height!==n.height)}},83,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=(r(d[2]),r(d[3]),r(d[4]),r(d[5]),(function(){function u(){t(this,u)}return n(u,null,[{key:"validateStyleProp",value:function(t,n,u){}},{key:"validateStyle",value:function(t,n){}},{key:"addValidStylePropTypes",value:function(t){}}]),u})());m.exports=u},84,[31,32,67,78,79,11]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function t(n){if(null!==n&&'object'==typeof n){if(!Array.isArray(n))return n;for(var f={},o=0,u=n.length;o1?u-1:0),c=1;cthis.eventPool.length&&this.eventPool.push(e)}function Q(e){e.eventPool=[],e.getPooled=D,e.release=F}o(U.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=M)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=M)},persist:function(){this.isPersistent=M},isPersistent:A,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=A,this._dispatchInstances=this._dispatchListeners=null}}),U.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},U.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,Q(n),n},Q(U);var O=U.extend({touchHistory:function(){return null}});function j(e){return"topTouchStart"===e}function H(e){return"topTouchMove"===e}var W=["topTouchStart"],L=["topTouchMove"],B=["topTouchCancel","topTouchEnd"],V=[],Y={touchBank:V,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};function q(e){return e.timeStamp||e.timestamp}function X(e){if(null==(e=e.identifier))throw Error("Touch object is missing identifier.");return e}function $(e){var t=X(e),n=V[t];n?(n.touchActive=!0,n.startPageX=e.pageX,n.startPageY=e.pageY,n.startTimeStamp=q(e),n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=q(e),n.previousPageX=e.pageX,n.previousPageY=e.pageY,n.previousTimeStamp=q(e)):(n={touchActive:!0,startPageX:e.pageX,startPageY:e.pageY,startTimeStamp:q(e),currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:q(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:q(e)},V[t]=n),Y.mostRecentTimeStamp=q(e)}function K(e){var t=V[X(e)];t&&(t.touchActive=!0,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=q(e),Y.mostRecentTimeStamp=q(e))}function G(e){var t=V[X(e)];t&&(t.touchActive=!1,t.previousPageX=t.currentPageX,t.previousPageY=t.currentPageY,t.previousTimeStamp=t.currentTimeStamp,t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=q(e),Y.mostRecentTimeStamp=q(e))}var J={recordTouchTrack:function(e,t){if(H(e))t.changedTouches.forEach(K);else if(j(e))t.changedTouches.forEach($),Y.numberActiveTouches=t.touches.length,1===Y.numberActiveTouches&&(Y.indexOfSingleActiveTouch=t.touches[0].identifier);else if(("topTouchEnd"===e||"topTouchCancel"===e)&&(t.changedTouches.forEach(G),Y.numberActiveTouches=t.touches.length,1===Y.numberActiveTouches))for(e=0;ea||(l=a),Re(l,e,i)}}}),x=function(e){return be.get(e._nativeTag)||null},E=Te,S=function(e){var t=(e=e.stateNode)._nativeTag;if(void 0===t&&(t=(e=e.canonical)._nativeTag),!t)throw Error("All native instances should have a tag.");return e},ie.injection.injectGlobalResponderHandler({onChange:function(e,t,n){null!==t?u.UIManager.setJSResponder(t.stateNode._nativeTag,n):u.UIManager.clearJSResponder()}});var _e=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;_e.hasOwnProperty("ReactCurrentDispatcher")||(_e.ReactCurrentDispatcher={current:null}),_e.hasOwnProperty("ReactCurrentBatchConfig")||(_e.ReactCurrentBatchConfig={suspense:null});var Ce="function"==typeof Symbol&&Symbol.for,Ne=Ce?Symbol.for("react.element"):60103,ze=Ce?Symbol.for("react.portal"):60106,Ie=Ce?Symbol.for("react.fragment"):60107,Me=Ce?Symbol.for("react.strict_mode"):60108,Ae=Ce?Symbol.for("react.profiler"):60114,Ue=Ce?Symbol.for("react.provider"):60109,De=Ce?Symbol.for("react.context"):60110,Fe=Ce?Symbol.for("react.concurrent_mode"):60111,Qe=Ce?Symbol.for("react.forward_ref"):60112,Oe=Ce?Symbol.for("react.suspense"):60113,je=Ce?Symbol.for("react.suspense_list"):60120,He=Ce?Symbol.for("react.memo"):60115,We=Ce?Symbol.for("react.lazy"):60116,Le=Ce?Symbol.for("react.block"):60121,Be="function"==typeof Symbol&&Symbol.iterator;function Ve(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=Be&&e[Be]||e["@@iterator"])?e:null}function Ye(e){if(-1===e._status){var t=e._result;t||(t=e._ctor),t=t(),e._status=0,e._result=t,t.then(function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)},function(t){0===e._status&&(e._status=2,e._result=t)})}}function qe(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Ie:return"Fragment";case ze:return"Portal";case Ae:return"Profiler";case Me:return"StrictMode";case Oe:return"Suspense";case je:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case De:return(e.displayName||"Context")+".Consumer";case Ue:return(e._context.displayName||"Context")+".Provider";case Qe:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case He:return qe(e.type);case Le:return qe(e.render);case We:if(e=1===e._status?e._result:null)return qe(e)}return null}function Xe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function $e(e){if(Xe(e)!==e)throw Error("Unable to find node on an unmounted component.")}function Ke(e){var t=e.alternate;if(!t){if(null===(t=Xe(e)))throw Error("Unable to find node on an unmounted component.");return t!==e?null:e}for(var n=e,r=t;;){var i=n.return;if(null===i)break;var l=i.alternate;if(null===l){if(null!==(r=i.return)){n=r;continue}break}if(i.child===l.child){for(l=i.child;l;){if(l===n)return $e(i),e;if(l===r)return $e(i),t;l=l.sibling}throw Error("Unable to find node on an unmounted component.")}if(n.return!==r.return)n=i,r=l;else{for(var a=!1,o=i.child;o;){if(o===n){a=!0,n=i,r=l;break}if(o===r){a=!0,r=i,n=l;break}o=o.sibling}if(!a){for(o=l.child;o;){if(o===n){a=!0,n=l,r=i;break}if(o===r){a=!0,r=l,n=i;break}o=o.sibling}if(!a)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(n.alternate!==r)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(3!==n.tag)throw Error("Unable to find node on an unmounted component.");return n.stateNode.current===n?e:t}function Ge(e){if(!(e=Ke(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var Je={},Ze=null,et=0,tt={unsafelyIgnoreFunctions:!0};function nt(e,t){return"object"!=typeof t||null===t||u.deepDiffer(e,t,tt)}function rt(e,t,n){if(Array.isArray(t))for(var r=t.length;r--&&0Tt||(e.current=bt[Tt],bt[Tt]=null,Tt--)}function Et(e,t){bt[++Tt]=e.current,e.current=t}var St={},wt={current:St},kt={current:!1},Pt=St;function Rt(e,t){var n=e.type.contextTypes;if(!n)return St;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,l={};for(i in n)l[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function _t(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Ct(){xt(kt),xt(wt)}function Nt(e,t,n){if(wt.current!==St)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");Et(wt,t),Et(kt,n)}function zt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error((qe(t)||"Unknown")+'.getChildContext(): key "'+i+'" is not defined in childContextTypes.');return o({},n,{},r)}function It(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||St,Pt=wt.current,Et(wt,e),Et(kt,kt.current),!0}function Mt(e,t,n){var r=e.stateNode;if(!r)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");n?(e=zt(e,t,Pt),r.__reactInternalMemoizedMergedChildContext=e,xt(kt),xt(wt),Et(wt,e)):xt(kt),Et(kt,n)}var At=c.unstable_runWithPriority,Ut=c.unstable_scheduleCallback,Dt=c.unstable_cancelCallback,Ft=c.unstable_requestPaint,Qt=c.unstable_now,Ot=c.unstable_getCurrentPriorityLevel,jt=c.unstable_ImmediatePriority,Ht=c.unstable_UserBlockingPriority,Wt=c.unstable_NormalPriority,Lt=c.unstable_LowPriority,Bt=c.unstable_IdlePriority,Vt={},Yt=c.unstable_shouldYield,qt=void 0!==Ft?Ft:function(){},Xt=null,$t=null,Kt=!1,Gt=Qt(),Jt=1e4>Gt?Qt:function(){return Qt()-Gt};function Zt(){switch(Ot()){case jt:return 99;case Ht:return 98;case Wt:return 97;case Lt:return 96;case Bt:return 95;default:throw Error("Unknown priority level.")}}function en(e){switch(e){case 99:return jt;case 98:return Ht;case 97:return Wt;case 96:return Lt;case 95:return Bt;default:throw Error("Unknown priority level.")}}function tn(e,t){return e=en(e),At(e,t)}function nn(e,t,n){return e=en(e),Ut(e,t,n)}function rn(e){return null===Xt?(Xt=[e],$t=Ut(jt,an)):Xt.push(e),Vt}function ln(){if(null!==$t){var e=$t;$t=null,Dt(e)}an()}function an(){if(!Kt&&null!==Xt){Kt=!0;var e=0;try{var t=Xt;tn(99,function(){for(;e=t&&(Or=!0),e.firstContext=null)}function xn(e,t){if(gn!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(gn=e,t=1073741823),t={context:e,observedBits:t,next:null},null===mn){if(null===hn)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");mn=t,hn.dependencies={expirationTime:0,firstContext:t,responders:null}}else mn=mn.next=t;return e._currentValue}var En=!1;function Sn(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function wn(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function kn(e,t){return(e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null}).next=e}function Pn(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function Rn(e,t){var n=e.alternate;null!==n&&wn(n,e),null===(n=(e=e.updateQueue).baseQueue)?(e.baseQueue=t.next=t,t.next=t):(t.next=n.next,n.next=t)}function _n(e,t,n,r){var i=e.updateQueue;En=!1;var l=i.baseQueue,a=i.shared.pending;if(null!==a){if(null!==l){var u=l.next;l.next=a.next,a.next=u}l=a,i.shared.pending=null,null!==(u=e.alternate)&&(null!==(u=u.updateQueue)&&(u.baseQueue=a))}if(null!==l){u=l.next;var s=i.baseState,c=0,f=null,d=null,p=null;if(null!==u)for(var h=u;;){if((a=h.expirationTime)c&&(c=a)}else{null!==p&&(p=p.next={expirationTime:1073741823,suspenseConfig:h.suspenseConfig,tag:h.tag,payload:h.payload,callback:h.callback,next:null}),wl(a,h.suspenseConfig);e:{var g=e,v=h;switch(a=t,m=n,v.tag){case 1:if("function"==typeof(g=v.payload)){s=g.call(m,s,a);break e}s=g;break e;case 3:g.effectTag=-4097&g.effectTag|64;case 0:if(null===(a="function"==typeof(g=v.payload)?g.call(m,s,a):g)||void 0===a)break e;s=o({},s,a);break e;case 2:En=!0}}null!==h.callback&&(e.effectTag|=32,null===(a=i.effects)?i.effects=[h]:a.push(h))}if(null===(h=h.next)||h===u){if(null===(a=i.shared.pending))break;h=l.next=a.next,a.next=u,i.baseQueue=l=a,i.shared.pending=null}}null===p?f=s:p.next=d,i.baseState=f,i.baseQueue=p,kl(c),e.expirationTime=c,e.memoizedState=s}}function Cn(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;tm?(g=h,h=null):g=h.sibling;var v=d(i,h,o[m],u);if(null===v){null===h&&(h=g);break}e&&h&&null===v.alternate&&t(i,h),a=l(v,a,m),null===c?s=v:c.sibling=v,c=v,h=g}if(m===o.length)return n(i,h),s;if(null===h){for(;mm?(g=h,h=null):g=h.sibling;var y=d(i,h,v.value,u);if(null===y){null===h&&(h=g);break}e&&h&&null===y.alternate&&t(i,h),a=l(y,a,m),null===c?s=y:c.sibling=y,c=y,h=g}if(v.done)return n(i,h),s;if(null===h){for(;!v.done;m++,v=o.next())null!==(v=f(i,v.value,u))&&(a=l(v,a,m),null===c?s=v:c.sibling=v,c=v);return s}for(h=r(i,h);!v.done;m++,v=o.next())null!==(v=p(h,i,m,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?m:v.key),a=l(v,a,m),null===c?s=v:c.sibling=v,c=v);return e&&h.forEach(function(e){return t(i,e)}),s}return function(e,r,l,o){var u="object"==typeof l&&null!==l&&l.type===Ie&&null===l.key;u&&(l=l.props.children);var s="object"==typeof l&&null!==l;if(s)switch(l.$$typeof){case Ne:e:{for(s=l.key,u=r;null!==u;){if(u.key===s){switch(u.tag){case 7:if(l.type===Ie){n(e,u.sibling),(r=i(u,l.props.children)).return=e,e=r;break e}break;default:if(u.elementType===l.type){n(e,u.sibling),(r=i(u,l.props)).ref=On(e,u,l),r.return=e,e=r;break e}}n(e,u);break}t(e,u),u=u.sibling}l.type===Ie?((r=$l(l.props.children,e.mode,o,l.key)).return=e,e=r):((o=Xl(l.type,l.key,l.props,null,e.mode,o)).ref=On(e,r,l),o.return=e,e=o)}return a(e);case ze:e:{for(u=l.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===l.containerInfo&&r.stateNode.implementation===l.implementation){n(e,r.sibling),(r=i(r,l.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Gl(l,e.mode,o)).return=e,e=r}return a(e)}if("string"==typeof l||"number"==typeof l)return l=""+l,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,l)).return=e,e=r):(n(e,r),(r=Kl(l,e.mode,o)).return=e,e=r),a(e);if(Qn(l))return h(e,r,l,o);if(Ve(l))return m(e,r,l,o);if(s&&jn(e,l),void 0===l&&!u)switch(e.tag){case 1:case 0:throw e=e.type,Error((e.displayName||e.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}return n(e,r)}}var Wn=Hn(!0),Ln=Hn(!1),Bn={},Vn={current:Bn},Yn={current:Bn},qn={current:Bn};function Xn(e){if(e===Bn)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return e}function $n(e,t){Et(qn,t),Et(Yn,e),Et(Vn,Bn),xt(Vn),Et(Vn,{isInAParentText:!1})}function Kn(){xt(Vn),xt(Yn),xt(qn)}function Gn(e){Xn(qn.current);var t=Xn(Vn.current),n=e.type;n="AndroidTextInput"===n||"RCTMultilineTextInputView"===n||"RCTSinglelineTextInputView"===n||"RCTText"===n||"RCTVirtualText"===n,t!==(n=t.isInAParentText!==n?{isInAParentText:n}:t)&&(Et(Yn,e),Et(Vn,n))}function Jn(e){Yn.current===e&&(xt(Vn),xt(Yn))}var Zn={current:0};function er(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===n.dehydrated||ct()||ct()))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function tr(e,t){return{responder:e,props:t}}var nr=_e.ReactCurrentDispatcher,rr=_e.ReactCurrentBatchConfig,ir=0,lr=null,ar=null,or=null,ur=!1;function sr(){throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.")}function cr(e,t){if(null===t)return!1;for(var n=0;nl))throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");l+=1,or=ar=null,t.updateQueue=null,nr.current=Fr,e=n(r,i)}while(t.expirationTime===ir)}if(nr.current=Ar,t=null!==ar&&null!==ar.next,ir=0,or=ar=lr=null,ur=!1,t)throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return e}function dr(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===or?lr.memoizedState=or=e:or=or.next=e,or}function pr(){if(null===ar){var e=lr.alternate;e=null!==e?e.memoizedState:null}else e=ar.next;var t=null===or?lr.memoizedState:or.next;if(null!==t)or=t,ar=e;else{if(null===e)throw Error("Rendered more hooks than during the previous render.");e={memoizedState:(ar=e).memoizedState,baseState:ar.baseState,baseQueue:ar.baseQueue,queue:ar.queue,next:null},null===or?lr.memoizedState=or=e:or=or.next=e}return or}function hr(e,t){return"function"==typeof t?t(e):t}function mr(e){var t=pr(),n=t.queue;if(null===n)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");n.lastRenderedReducer=e;var r=ar,i=r.baseQueue,l=n.pending;if(null!==l){if(null!==i){var a=i.next;i.next=l.next,l.next=a}r.baseQueue=i=l,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var o=a=l=null,u=i;do{var s=u.expirationTime;if(slr.expirationTime&&(lr.expirationTime=s,kl(s))}else null!==o&&(o=o.next={expirationTime:1073741823,suspenseConfig:u.suspenseConfig,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),wl(s,u.suspenseConfig),r=u.eagerReducer===e?u.eagerState:e(r,u.action);u=u.next}while(null!==u&&u!==i);null===o?l=r:o.next=a,on(r,t.memoizedState)||(Or=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=o,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function gr(e){var t=pr(),n=t.queue;if(null===n)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,l=t.memoizedState;if(null!==i){n.pending=null;var a=i=i.next;do{l=e(l,a.action),a=a.next}while(a!==i);on(l,t.memoizedState)||(Or=!0),t.memoizedState=l,null===t.baseQueue&&(t.baseState=l),n.lastRenderedState=l}return[l,r]}function vr(e){var t=dr();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:hr,lastRenderedState:e}).dispatch=Ir.bind(null,lr,e),[t.memoizedState,e]}function yr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=lr.updateQueue)?(t={lastEffect:null},lr.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function br(){return pr().memoizedState}function Tr(e,t,n,r){var i=dr();lr.effectTag|=e,i.memoizedState=yr(1|t,n,void 0,void 0===r?null:r)}function xr(e,t,n,r){var i=pr();r=void 0===r?null:r;var l=void 0;if(null!==ar){var a=ar.memoizedState;if(l=a.destroy,null!==r&&cr(r,a.deps))return void yr(t,n,l,r)}lr.effectTag|=e,i.memoizedState=yr(1|t,n,l,r)}function Er(e,t){return Tr(516,4,e,t)}function Sr(e,t){return xr(516,4,e,t)}function wr(e,t){return xr(4,2,e,t)}function kr(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Pr(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,xr(4,2,kr.bind(null,t,e),n)}function Rr(){}function _r(e,t){return dr().memoizedState=[e,void 0===t?null:t],e}function Cr(e,t){var n=pr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&cr(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Nr(e,t){var n=pr();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&cr(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function zr(e,t,n){var r=Zt();tn(98>r?98:r,function(){e(!0)}),tn(97 component.");i=ht(),u.UIManager.createView(i,"RCTRawText",e,{text:r}),ye.set(i,t),t.stateNode=i}return null;case 13:return xt(Zn),r=t.memoizedState,0!=(64&t.effectTag)?(t.expirationTime=n,t):(r=null!==r,i=!1,null!==e&&(i=null!==(n=e.memoizedState),r||null===n||null!==(n=e.child.sibling)&&(null!==(l=t.firstEffect)?(t.firstEffect=n,n.nextEffect=l):(t.firstEffect=t.lastEffect=n,n.nextEffect=null),n.effectTag=8)),r&&!i&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Zn.current)?qi===Fi&&(qi=ji):(qi!==Fi&&qi!==ji||(qi=Hi),0!==Ji&&null!==Bi&&(ea(Bi,Yi),ta(Bi,Ji)))),(r||i)&&(t.effectTag|=4),null);case 4:return Kn(),Kr(t),null;case 10:return yn(t),null;case 17:return _t(t.type)&&Ct(),null;case 19:if(xt(Zn),null===(r=t.memoizedState))return null;if(i=0!=(64&t.effectTag),null===(l=r.rendering)){if(i)li(r,!1);else if(qi!==Fi||null!==e&&0!=(64&e.effectTag))for(e=t.child;null!==e;){if(null!==(l=er(e))){for(t.effectTag|=64,li(r,!1),null!==(e=l.updateQueue)&&(t.updateQueue=e,t.effectTag|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,e=n,r=t.child;null!==r;)n=e,(i=r).effectTag&=2,i.nextEffect=null,i.firstEffect=null,i.lastEffect=null,null===(l=i.alternate)?(i.childExpirationTime=0,i.expirationTime=n,i.child=null,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null):(i.childExpirationTime=l.childExpirationTime,i.expirationTime=l.expirationTime,i.child=l.child,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,n=l.dependencies,i.dependencies=null===n?null:{expirationTime:n.expirationTime,firstContext:n.firstContext,responders:n.responders}),r=r.sibling;return Et(Zn,1&Zn.current|2),t.child}e=e.sibling}}else{if(!i)if(null!==(e=er(l))){if(t.effectTag|=64,i=!0,null!==(e=e.updateQueue)&&(t.updateQueue=e,t.effectTag|=4),li(r,!0),null===r.tail&&"hidden"===r.tailMode&&!l.alternate)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Jt()-r.renderingStartTime>r.tailExpiration&&1t)&&sl.set(e,t))}}function gl(e,t){e.expirationTime=(e=n>(e=e.nextKnownPendingLevel)?n:e)&&t!==e?0:e}function yl(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=rn(Tl.bind(null,e));else{var t=vl(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=pl();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var i=e.callbackPriority;if(e.callbackExpirationTime===t&&i>=r)return;n!==Vt&&Dt(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?rn(Tl.bind(null,e)):nn(r,bl.bind(null,e),{timeout:10*(1073741821-t)-Jt()}),e.callbackNode=t}}}function bl(e,t){if(dl=0,t){t=pl();var n=e.lastExpiredTime;return(0===n||n>t)&&(e.lastExpiredTime=t),yl(e),null}if(0===(n=vl(e)))return null;if(t=e.callbackNode,(48&Li)!==Mi)throw Error("Should not already be working.");Ul();var r=n,i=Li;Li|=Ui;var l=Sl();for(e===Bi&&r===Yi||xl(e,r);;)try{_l();break}catch(t){El(e,t)}if(vn(),zi.current=l,Li=i,null!==Vi?i=Fi:(Bi=null,i=qi),i!==Fi){if(i===Oi&&(i=Pl(e,n=2=n)){e.lastPingedTime=n,xl(e,n);break}if(0!==(l=vl(e))&&l!==n)break;if(0!==i&&i!==n){e.lastPingedTime=i;break}e.timeoutHandle=vt(Il.bind(null,e),r);break}Il(e);break;case Hi:if(ea(e,n),n===(i=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=zl(r)),Zi&&(0===(r=e.lastPingedTime)||r>=n)){e.lastPingedTime=n,xl(e,n);break}if(0!==(r=vl(e))&&r!==n)break;if(0!==i&&i!==n){e.lastPingedTime=i;break}if(1073741823!==Ki?r=10*(1073741821-Ki)-Jt():1073741823===$i?r=0:(r=10*(1073741821-$i)-5e3,n=10*(1073741821-n)-(i=Jt()),0>(r=i-r)&&(r=0),n<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ni(r/1960))-r)&&(r=n)),10=(r=0|a.busyMinDurationMs)?r=0:(i=0|a.busyDelayMs,r=(l=Jt()-(10*(1073741821-l)-(0|a.timeoutMs||5e3)))<=i?0:i+r-l),10=t?Yi:t:1073741823);if(0!==e.tag&&n===Oi&&(n=Pl(e,t=2 component higher in the tree to provide a loading indicator or placeholder to display."+fn(a))}qi!==Wi&&(qi=Oi),o=ui(o,a),f=l;do{switch(f.tag){case 3:u=o,f.effectTag|=4096,f.expirationTime=t,Rn(f,Ri(f,u,t));break e;case 1:u=o;var T=f.type,x=f.stateNode;if(0==(64&f.effectTag)&&("function"==typeof T.getDerivedStateFromError||null!==x&&"function"==typeof x.componentDidCatch&&(null===ll||!ll.has(x)))){f.effectTag|=4096,f.expirationTime=t,Rn(f,_i(f,u,t));break e}}f=f.return}while(null!==f)}Vi=Nl(Vi)}catch(e){t=e;continue}break}}function Sl(){var e=zi.current;return zi.current=Ar,null===e?Ar:e}function wl(e,t){e<$i&&2Ji&&(Ji=e)}function Pl(e,t){var n=Li;Li|=Ui;var r=Sl();for(e===Bi&&t===Yi||xl(e,t);;)try{Rl();break}catch(t){El(e,t)}if(vn(),Li=n,zi.current=r,null!==Vi)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");return Bi=null,qi}function Rl(){for(;null!==Vi;)Vi=Cl(Vi)}function _l(){for(;null!==Vi&&!Yt();)Vi=Cl(Vi)}function Cl(e){var t=Ci(e.alternate,e,Yi);return e.memoizedProps=e.pendingProps,null===t&&(t=Nl(e)),Ii.current=null,t}function Nl(e){Vi=e;do{var t=Vi.alternate;if(e=Vi.return,0==(2048&Vi.effectTag)){if(t=ai(t,Vi,Yi),1===Yi||1!==Vi.childExpirationTime){for(var n=0,r=Vi.child;null!==r;){var i=r.expirationTime,l=r.childExpirationTime;i>n&&(n=i),l>n&&(n=l),r=r.sibling}Vi.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Vi.firstEffect),null!==Vi.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Vi.firstEffect),e.lastEffect=Vi.lastEffect),1(e=e.childExpirationTime)?t:e}function Il(e){var t=Zt();return tn(99,Ml.bind(null,e,t)),null}function Ml(e,t){do{Ul()}while(null!==ol);if((48&Li)!==Mi)throw Error("Should not already be working.");var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=zl(n);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Bi&&(Vi=Bi=null,Yi=0),1=n?ei(e,t,n):(Et(Zn,1&Zn.current),null!==(t=ii(e,t,n))?t.sibling:null);Et(Zn,1&Zn.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return ri(e,t,n);t.effectTag|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null),Et(Zn,Zn.current),!r)return null}return ii(e,t,n)}Or=!1}else Or=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=Rt(t,wt.current),Tn(t,n),i=fr(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,_t(r)){var l=!0;It(t)}else l=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,Sn(t);var a=r.getDerivedStateFromProps;"function"==typeof a&&In(t,r,a,e),i.updater=Mn,t.stateNode=i,i._reactInternalFiber=t,Fn(t,r,e,n),t=qr(null,t,r,!0,l,n)}else t.tag=0,jr(null,t,i,n),t=t.child;return t;case 16:e:{if(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,Ye(i),1!==i._status)throw i._result;switch(i=i._result,t.type=i,l=t.tag=Yl(i),e=dn(i,e),l){case 0:t=Vr(null,t,i,e,n);break e;case 1:t=Yr(null,t,i,e,n);break e;case 11:t=Hr(null,t,i,e,n);break e;case 14:t=Wr(null,t,i,dn(i.type,e),r,n);break e}throw Error("Element type is invalid. Received a promise that resolves to: "+i+". Lazy element type must resolve to a class or function.")}return t;case 0:return r=t.type,i=t.pendingProps,Vr(e,t,r,i=t.elementType===r?i:dn(r,i),n);case 1:return r=t.type,i=t.pendingProps,Yr(e,t,r,i=t.elementType===r?i:dn(r,i),n);case 3:if(Xr(t),r=t.updateQueue,null===e||null===r)throw Error("If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.");return r=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,wn(e,t),_n(t,r,null,n),(r=t.memoizedState.element)===i?t=ii(e,t,n):(jr(e,t,r,n),t=t.child),t;case 5:return Gn(t),r=t.pendingProps.children,Br(e,t),jr(e,t,r,n),t=t.child;case 6:return null;case 13:return ei(e,t,n);case 4:return $n(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Wn(t,null,r,n):jr(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,Hr(e,t,r,i=t.elementType===r?i:dn(r,i),n);case 7:return jr(e,t,t.pendingProps,n),t.child;case 8:case 12:return jr(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,i=t.pendingProps,a=t.memoizedProps,l=i.value;var o=t.type._context;if(Et(pn,o._currentValue),o._currentValue=l,null!==a)if(o=a.value,0===(l=on(o,l)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(o,l):1073741823))){if(a.children===i.children&&!kt.current){t=ii(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var u=o.dependencies;if(null!==u){a=o.child;for(var s=u.firstContext;null!==s;){if(s.context===r&&0!=(s.observedBits&l)){1===o.tag&&((s=kn(n,null)).tag=2,Pn(o,s)),o.expirationTime=t&&e<=t}function ea(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function ta(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function na(e){var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw Error("Unable to find node on an unmounted component.");throw Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(e))}return null===(e=Ge(t))?null:e.stateNode}function ra(e,t,n,r){var i=t.current,l=pl(),a=Nn.suspense;l=hl(l,i,a);e:if(n){n=n._reactInternalFiber;t:{if(Xe(n)!==n||1!==n.tag)throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var o=n;do{switch(o.tag){case 3:o=o.stateNode.context;break t;case 1:if(_t(o.type)){o=o.stateNode.__reactInternalMemoizedMergedChildContext;break t}}o=o.return}while(null!==o);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}if(1===n.tag){var u=n.type;if(_t(u)){n=zt(n,u,o);break e}}n=o}else n=St;return null===t.context?t.context=n:t.pendingContext=n,(t=kn(l,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),Pn(i,t),ml(i,l),l}function ia(e,t,n){var r=30&&(I=new Set,C(-1))},e.setSelectedLog=C,e.clearWarnings=function(){var t=Array.from(I).filter(function(t){return'warn'!==t.level});t.length!==I.size&&(I=new Set(t),C(-1),z())},e.clearErrors=function(){var t=Array.from(I).filter(function(t){return'error'!==t.level&&'fatal'!==t.level});t.length!==I.size&&(I=new Set(t),C(-1))},e.dismiss=W,e.setWarningFilter=function(t){O=t},e.setAppInfo=function(t){L=t},e.getAppInfo=function(){return null!=L?L():null},e.checkWarningFilter=function(t){return O(t)},e.addIgnorePatterns=function(t){var n=t.filter(function(t){if(t instanceof RegExp){for(var n,o=w(A.entries());!(n=o()).done;){var u=n.value;if(u instanceof RegExp&&u.toString()===t.toString())return!1}return!0}return!A.has(t)});if(0===n.length)return;for(var o,u=w(n);!(o=u()).done;){var l=o.value;A.add(l),I=new Set(Array.from(I).filter(function(t){return!R(t.message.content)}))}z()},e.setDisabled=function(t){if(t===D)return;D=t,z()},e.isDisabled=function(){return D},e.observe=N,e.withSubscription=function(t){return(function(f){(0,u.default)(h,f);var p,v,y=(p=h,v=b(),function(){var t,n=(0,c.default)(p);if(v){var o=(0,c.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,l.default)(this,t)});function h(){var t;(0,n.default)(this,h);for(var o=arguments.length,u=new Array(o),l=0;l=l.length-1&&C(o-1),W(l[o]))},t._handleMinimize=function(){C(-1)},t._handleSetSelectedLog=function(t){C(t)},t}return(0,o.default)(h,[{key:"componentDidCatch",value:function(t,n){P(t,n.componentStack)}},{key:"render",value:function(){return this.state.hasError?null:s.createElement(t,{logs:Array.from(this.state.logs),isDisabled:this.state.isDisabled,selectedLogIndex:this.state.selectedLogIndex})}},{key:"componentDidMount",value:function(){var t=this;this._subscription=N(function(n){t.setState(n)})}},{key:"componentWillUnmount",value:function(){null!=this._subscription&&this._subscription.unsubscribe()}}],[{key:"getDerivedStateFromError",value:function(){return{hasError:!0}}}]),h})(s.Component)};var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=h(n);if(o&&o.has(t))return o.get(t);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var s=l?Object.getOwnPropertyDescriptor(t,c):null;s&&(s.get||s.set)?Object.defineProperty(u,c,s):u[c]=t[c]}u.default=t,o&&o.set(t,u);return u})(r(d[6])),f=t(r(d[7])),p=r(d[8]),v=t(r(d[9])),y=t(r(d[10]));function h(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(h=function(t){return t?o:n})(t)}function b(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function w(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=S(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var u=0;return function(){return u>=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function S(t,n){if(t){if("string"==typeof t)return E(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?E(t,n):void 0}}function E(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);o=0;){if('syntax'===u[l].level){o=l;break}l-=1}_=o,z(),y.default&&setTimeout(function(){n<0&&o>=0?y.default.show():n>=0&&o<0&&y.default.hide()},0)}function W(t){I.has(t)&&(I.delete(t),z())}function N(t){var n={observer:t};return x.add(n),t(M()),{unsubscribe:function(){x.delete(n)}}}},102,[1,31,32,42,44,41,6,103,112,114,117,97]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),n=t(r(d[2])),l=(function(t,s){if(!s&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=u(s);if(n&&n.has(t))return n.get(t);var l={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var y=o?Object.getOwnPropertyDescriptor(t,c):null;y&&(y.get||y.set)?Object.defineProperty(l,c,y):l[c]=t[c]}l.default=t,n&&n.set(t,l);return l})(r(d[3]));function u(t){if("function"!=typeof WeakMap)return null;var s=new WeakMap,n=new WeakMap;return(u=function(t){return t?n:s})(t)}var o=(function(){function t(n){(0,s.default)(this,t),this.symbolicated={error:null,stack:null,status:'NONE'},this.level=n.level,this.type=n.type,this.message=n.message,this.stack=n.stack,this.category=n.category,this.componentStack=n.componentStack,this.codeFrame=n.codeFrame,this.isComponentError=n.isComponentError,this.count=1}return(0,n.default)(t,[{key:"incrementCount",value:function(){this.count+=1}},{key:"getAvailableStack",value:function(){return'COMPLETE'===this.symbolicated.status?this.symbolicated.stack:this.stack}},{key:"retrySymbolicate",value:function(t){'COMPLETE'!==this.symbolicated.status&&(l.deleteStack(this.stack),this.handleSymbolicate(t))}},{key:"symbolicate",value:function(t){'NONE'===this.symbolicated.status&&this.handleSymbolicate(t)}},{key:"handleSymbolicate",value:function(t){var s=this;'PENDING'!==this.symbolicated.status&&(this.updateStatus(null,null,null,t),l.symbolicate(this.stack).then(function(n){s.updateStatus(null,null==n?void 0:n.stack,null==n?void 0:n.codeFrame,t)},function(n){s.updateStatus(n,null,null,t)}))}},{key:"updateStatus",value:function(t,s,n,l){var u=this.symbolicated.status;null!=t?this.symbolicated={error:t,stack:null,status:'FAILED'}:null!=s?(n&&(this.codeFrame=n),this.symbolicated={error:null,stack:s,status:'COMPLETE'}):this.symbolicated={error:null,stack:null,status:'PENDING'},l&&u!==this.symbolicated.status&&l(this.symbolicated.status)}}]),t})();e.default=o},103,[1,31,32,104]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.deleteStack=function(t){u.delete(t)},e.symbolicate=function(t){var o=u.get(t);null==o&&(o=(0,n.default)(t).then(f),u.set(t,o));return o};var n=t(r(d[1]));function o(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=l(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var c=0;return function(){return c>=t.length?{done:!0}:{done:!1,value:t[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(t,n){if(t){if("string"==typeof t)return c(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(t,n):void 0}}function c(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,l=new Array(n);o=0;--h){var f=this.tryEntries[h],l=f.completion;if("root"===f.tryLoc)return u("end");if(f.tryLoc<=this.prev){var s=c.call(f,"catchLoc"),p=c.call(f,"finallyLoc");if(s&&p){if(this.prev=0;--o){var u=this.tryEntries[o];if(u.tryLoc<=this.prev&&c.call(u,"finallyLoc")&&this.prev=0;--n){var o=this.tryEntries[n];if(o.finallyLoc===t)return this.complete(o.completion,o.afterLoc),A(o),b}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc===t){var c=o.completion;if("throw"===c.type){var u=c.arg;A(o)}return u}}throw new Error("illegal catch attempt")},delegateYield:function(t,o,c){return this.delegate={iterator:Y(t),resultName:o,nextLoc:c},"next"===this.method&&(this.arg=n),b}},t})("object"==typeof m?m.exports:{});try{regeneratorRuntime=t}catch(n){Function("r","regeneratorRuntime = r")(t)}},107,[]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).getEnforcing('SourceCode');e.default=n},108,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0])(r(d[1])),l='http://localhost:8081/';m.exports=function(){if(void 0===t){var o=n.default.getConstants().scriptURL.match(/^https?:\/\/.*?\//);t=o?o[0]:null}return{url:t||l,bundleLoadedFromServer:null!==t}}},109,[1,108]); +__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),m.exports={fetch:fetch,Headers:Headers,Request:Request,Response:Response}},110,[111]); +__d(function(g,r,i,a,m,e,d){var t,o;t=this,o=function(t){'use strict';var o='undefined'!=typeof globalThis&&globalThis||'undefined'!=typeof self&&self||void 0!==o&&o,n={searchParams:'URLSearchParams'in o,iterable:'Symbol'in o&&'iterator'in Symbol,blob:'FileReader'in o&&'Blob'in o&&(function(){try{return new Blob,!0}catch(t){return!1}})(),formData:'FormData'in o,arrayBuffer:'ArrayBuffer'in o};if(n.arrayBuffer)var s=['[object Int8Array]','[object Uint8Array]','[object Uint8ClampedArray]','[object Int16Array]','[object Uint16Array]','[object Int32Array]','[object Uint32Array]','[object Float32Array]','[object Float64Array]'],h=ArrayBuffer.isView||function(t){return t&&s.indexOf(Object.prototype.toString.call(t))>-1};function f(t){if('string'!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||''===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function u(t){return'string'!=typeof t&&(t=String(t)),t}function c(t){var o={next:function(){var o=t.shift();return{done:void 0===o,value:o}}};return n.iterable&&(o[Symbol.iterator]=function(){return o}),o}function y(t){this.map={},t instanceof y?t.forEach(function(t,o){this.append(o,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(o){this.append(o,t[o])},this)}function l(t){if(t.bodyUsed)return Promise.reject(new TypeError('Already read'));t.bodyUsed=!0}function p(t){return new Promise(function(o,n){t.onload=function(){o(t.result)},t.onerror=function(){n(t.error)}})}function b(t){var o=new FileReader,n=p(o);return o.readAsArrayBuffer(t),n}function w(t){for(var o=new Uint8Array(t),n=new Array(o.length),s=0;s-1?s:n),this.mode=o.mode||this.mode||null,this.signal=o.signal||this.signal,this.referrer=null,('GET'===this.method||'HEAD'===this.method)&&h)throw new TypeError('Body not allowed for GET or HEAD requests');if(this._initBody(h),!('GET'!==this.method&&'HEAD'!==this.method||'no-store'!==o.cache&&'no-cache'!==o.cache)){var f=/([?&])_=[^&]*/;if(f.test(this.url))this.url=this.url.replace(f,'$1_='+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?'&':'?')+'_='+(new Date).getTime()}}}function A(t){var o=new FormData;return t.trim().split('&').forEach(function(t){if(t){var n=t.split('='),s=n.shift().replace(/\+/g,' '),h=n.join('=').replace(/\+/g,' ');o.append(decodeURIComponent(s),decodeURIComponent(h))}}),o}function B(t,o){if(!(this instanceof B))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');o||(o={}),this.type='default',this.status=void 0===o.status?200:o.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===o.statusText?'':''+o.statusText,this.headers=new y(o.headers),this.url=o.url||'',this._initBody(t)}T.prototype.clone=function(){return new T(this,{body:this._bodyInit})},_.call(T.prototype),_.call(B.prototype),B.prototype.clone=function(){return new B(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new y(this.headers),url:this.url})},B.error=function(){var t=new B(null,{status:0,statusText:''});return t.type='error',t};var x=[301,302,303,307,308];B.redirect=function(t,o){if(-1===x.indexOf(o))throw new RangeError('Invalid status code');return new B(null,{status:o,headers:{location:t}})},t.DOMException=o.DOMException;try{new t.DOMException}catch(o){t.DOMException=function(t,o){this.message=t,this.name=o;var n=Error(t);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function O(s,h){return new Promise(function(f,c){var l=new T(s,h);if(l.signal&&l.signal.aborted)return c(new t.DOMException('Aborted','AbortError'));var p=new XMLHttpRequest;function b(){p.abort()}p.onload=function(){var t,o,n={status:p.status,statusText:p.statusText,headers:(t=p.getAllResponseHeaders()||'',o=new y,t.replace(/\r?\n[\t ]+/g,' ').split('\r').map(function(t){return 0===t.indexOf('\n')?t.substr(1,t.length):t}).forEach(function(t){var n=t.split(':'),s=n.shift().trim();if(s){var h=n.join(':').trim();o.append(s,h)}}),o)};n.url='responseURL'in p?p.responseURL:n.headers.get('X-Request-URL');var s='response'in p?p.response:p.responseText;setTimeout(function(){f(new B(s,n))},0)},p.onerror=function(){setTimeout(function(){c(new TypeError('Network request failed'))},0)},p.ontimeout=function(){setTimeout(function(){c(new TypeError('Network request failed'))},0)},p.onabort=function(){setTimeout(function(){c(new t.DOMException('Aborted','AbortError'))},0)},p.open(l.method,(function(t){try{return''===t&&o.location.href?o.location.href:t}catch(o){return t}})(l.url),!0),'include'===l.credentials?p.withCredentials=!0:'omit'===l.credentials&&(p.withCredentials=!1),'responseType'in p&&(n.blob?p.responseType='blob':n.arrayBuffer&&l.headers.get('Content-Type')&&-1!==l.headers.get('Content-Type').indexOf('application/octet-stream')&&(p.responseType='arraybuffer')),!h||'object'!=typeof h.headers||h.headers instanceof y?l.headers.forEach(function(t,o){p.setRequestHeader(o,t)}):Object.getOwnPropertyNames(h.headers).forEach(function(t){p.setRequestHeader(t,u(h.headers[t]))}),l.signal&&(l.signal.addEventListener('abort',b),p.onreadystatechange=function(){4===p.readyState&&l.signal.removeEventListener('abort',b)}),p.send(void 0===l._bodyInit?null:l._bodyInit)})}O.polyfill=!0,o.fetch||(o.fetch=O,o.Headers=y,o.Request=T,o.Response=B),t.Headers=y,t.Request=T,t.Response=B,t.fetch=O,Object.defineProperty(t,'__esModule',{value:!0})},'object'==typeof e&&void 0!==m?o(e):'function'==typeof define&&define.amd?define(['exports'],o):o(t.WHATWGFetch={})},111,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.parseInterpolation=B,e.parseComponentStack=h,e.parseLogBoxException=function(t){var u=null!=t.originalMessage?t.originalMessage:'Unknown',o=u.match(C);if(o){var F=o.slice(1),s=(0,n.default)(F,5),D=s[0],l=s[1],f=s[2],p=s[3],E=s[4];return{level:'fatal',type:'Metro Error',stack:[],isComponentError:!1,componentStack:[],codeFrame:{fileName:l,location:{row:parseInt(f,10),column:parseInt(p,10)},content:E},message:{content:D,substitutions:[]},category:l+"-"+f+"-"+p}}var k=u.match(v);if(k){var x=k.slice(1),O=(0,n.default)(x,5),S=O[0],j=O[1],w=O[2],A=O[3],I=O[4];return{level:'syntax',stack:[],isComponentError:!1,componentStack:[],codeFrame:{fileName:S,location:{row:parseInt(w,10),column:parseInt(A,10)},content:I},message:{content:j,substitutions:[]},category:S+"-"+w+"-"+A}}var P=u.match(y);if(P){var M=P.slice(1),N=(0,n.default)(M,3),T=N[0],_=N[1],L=N[2];return{level:'syntax',stack:[],isComponentError:!1,componentStack:[],codeFrame:{fileName:T,location:null,content:L},message:{content:_,substitutions:[]},category:T+"-1-1"}}if(u.match(/^TransformError /))return{level:'syntax',stack:t.stack,isComponentError:t.isComponentError,componentStack:[],message:{content:u,substitutions:[]},category:u};var U=t.componentStack;if(t.isFatal||t.isComponentError)return c({level:'fatal',stack:t.stack,isComponentError:t.isComponentError,componentStack:null!=U?h(U):[]},B([u]));if(null!=U)return c({level:'error',stack:t.stack,isComponentError:t.isComponentError,componentStack:h(U)},B([u]));return c({level:'error',stack:t.stack,isComponentError:t.isComponentError},b([u]))},e.parseLogBoxLog=b;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),F=t(r(d[4])),s=t(r(d[5]));function D(t,u){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);u&&(o=o.filter(function(u){return Object.getOwnPropertyDescriptor(t,u).enumerable})),n.push.apply(n,o)}return n}function c(t){for(var n=1;n=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(t,u){if(t){if("string"==typeof t)return p(t,u);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(t,u):void 0}}function p(t,u){(null==u||u>t.length)&&(u=t.length);for(var n=0,o=new Array(u);n]{2}[\t-\r 0-9\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+ \|(?:[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+|\x1B(?:[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)/,C=/^(?:InternalError Metro has encountered an error:) ((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*): ((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*) \(([0-9]+):([0-9]+)\)\n\n((?:[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)/,E=F.default.BOM+'%s';function B(t){var u=[],n=[],F=[],D=(0,o.default)(t);if('string'==typeof D[0]){for(var c,f=String(D.shift()).split('%s'),p=f.length-1,v=D.splice(0,p),y='',C='',B=0,h=l(f);!(c=h()).done;){var b=c.value;if(y+=b,C+=b,B0){var F=t[t.length-1];'string'==typeof F&&/\s{4}in/.test(F)&&((n=t.slice(0,-1))[0]=u.slice(0,-2),o=h(F))}if(0===o.length)for(var s,D=l(t);!(s=D()).done;){var f=s.value;if('string'==typeof f&&/\n {4}in /.exec(f)){var p=f.indexOf('\n in ');p>0&&n.push(f.slice(0,p)),o=h(f)}else n.push(f)}return c(c({},B(n)),{},{componentStack:o})}},112,[1,54,19,27,113,36]); +__d(function(g,r,i,a,m,e,d){'use strict';var A=r(d[0])({BOM:"\ufeff",BULLET:"\u2022",BULLET_SP:"\xa0\u2022\xa0",MIDDOT:"\xb7",MIDDOT_SP:"\xa0\xb7\xa0",MIDDOT_KATAKANA:"\u30fb",MDASH:"\u2014",MDASH_SP:"\xa0\u2014\xa0",NDASH:"\u2013",NDASH_SP:"\xa0\u2013\xa0",NBSP:"\xa0",PIZZA:"\ud83c\udf55",TRIANGLE_LEFT:"\u25c0",TRIANGLE_RIGHT:"\u25b6"});m.exports=A},113,[35]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);function n(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function o(o){for(var c=1;c=t.length?{done:!0}:{done:!1,value:t[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(t,n){if(t){if("string"==typeof t)return l(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?l(t,n):void 0}}function l(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,c=new Array(n);o|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,u=/\((\S*)(?::(\d+))(?::(\d+))\)/;function t(t){var o=l.exec(t);if(!o)return null;var c=o[2]&&0===o[2].indexOf('native'),s=o[2]&&0===o[2].indexOf('eval'),v=u.exec(o[2]);return s&&null!=v&&(o[2]=v[1],o[3]=v[2],o[4]=v[3]),{file:c?null:o[2],methodName:o[1]||n,arguments:c?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}var o=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function c(l){var u=o.exec(l);return u?{file:u[2],methodName:u[1]||n,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}var s=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,v=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function f(l){var u=s.exec(l);if(!u)return null;var t=u[3]&&u[3].indexOf(' > eval')>-1,o=v.exec(u[3]);return t&&null!=o&&(u[3]=o[1],u[4]=o[2],u[5]=null),{file:u[3],methodName:u[1]||n,arguments:u[2]?u[2].split(','):[],lineNumber:u[4]?+u[4]:null,column:u[5]?+u[5]:null}}var b=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function p(l){var u=b.exec(l);return u?{file:u[3],methodName:u[1]||n,arguments:[],lineNumber:+u[4],column:u[5]?+u[5]:null}:null}var x=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function h(l){var u=x.exec(l);return u?{file:u[2],methodName:u[1]||n,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}e.parse=function(n){return n.split('\n').reduce(function(n,l){var u=t(l)||c(l)||f(l)||h(l)||p(l);return u&&n.push(u),n},[])}},116,[]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).get('LogBox');e.default=n},117,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var p=o(n);if(p&&p.has(t))return p.get(t);var c={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var s=f?Object.getOwnPropertyDescriptor(t,u):null;s&&(s.get||s.set)?Object.defineProperty(c,u,s):c[u]=t[u]}c.default=t,p&&p.set(t,c);return c})(r(d[0]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,p=new WeakMap;return(o=function(t){return t?p:n})(t)}r(d[1]);var n=t.getEnforcing('ExceptionsManager'),p={reportFatalException:function(t,o,p){n.reportFatalException(t,o,p)},reportSoftException:function(t,o,p){n.reportSoftException(t,o,p)},updateExceptionMessage:function(t,o,p){n.updateExceptionMessage(t,o,p)},dismissRedbox:function(){n.dismissRedbox&&n.dismissRedbox()},reportException:function(t){n.reportException?n.reportException(t):t.isFatal?p.reportFatalException(t.message,t.stack,t.id):p.reportSoftException(t.message,t.stack,t.id)}},c=p;e.default=c},118,[17,56]); +__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('Promise',function(){return r(d[1])})},119,[120,121]); +__d(function(g,r,i,a,m,e,d){'use strict';var l=r(d[0]);function o(o,t,n){var c=Object.getOwnPropertyDescriptor(o,t),b=c||{},f=b.enumerable,u=b.writable,p=b.configurable;!c||p?l(o,t,{get:n,enumerable:!1!==f,writable:!1!==u}):console.error('Failed to set polyfill. '+t+' is not configurable.')}m.exports={polyfillObjectProperty:o,polyfillGlobal:function(l,t){o(g,l,t)}}},120,[37]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);r(d[1]),r(d[2]),m.exports=t},121,[122,124,125]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=n;var t=y(!0),o=y(!1),f=y(null),u=y(void 0),c=y(0),l=y('');function y(t){var o=new n(n._0);return o._V=1,o._W=t,o}n.resolve=function(p){if(p instanceof n)return p;if(null===p)return f;if(void 0===p)return u;if(!0===p)return t;if(!1===p)return o;if(0===p)return c;if(''===p)return l;if('object'==typeof p||'function'==typeof p)try{var h=p.then;if('function'==typeof h)return new n(h.bind(p))}catch(t){return new n(function(n,o){o(t)})}return y(p)};var p=function(n){return'function'==typeof Array.from?(p=Array.from,Array.from(n)):(p=function(n){return Array.prototype.slice.call(n)},Array.prototype.slice.call(n))};n.all=function(t){var o=p(t);return new n(function(t,f){if(0===o.length)return t([]);var u=o.length;function c(l,y){if(y&&('object'==typeof y||'function'==typeof y)){if(y instanceof n&&y.then===n.prototype.then){for(;3===y._V;)y=y._W;return 1===y._V?c(l,y._W):(2===y._V&&f(y._W),void y.then(function(n){c(l,n)},f))}var p=y.then;if('function'==typeof p)return void new n(p.bind(y)).then(function(n){c(l,n)},f)}o[l]=y,0==--u&&t(o)}for(var l=0;l0}function q(t){v[t]=null,f[t]=null,s[t]=null}function A(t){if(null!=t){var n=v.indexOf(t);if(-1!==n){var l=s[n];q(n),'setImmediate'!==l&&'requestIdleCallback'!==l&&N(t)}}}var D,O={setTimeout:function(t,n){for(var l=arguments.length,u=new Array(l>2?l-2:0),o=2;o2?l-2:0),o=2;o1?n-1:0),u=1;u-1&&(I.splice(t,1),y(u,o(),!0)),delete T[u],0===I.length&&E(!1)},l);T[u]=c}return u},cancelIdleCallback:function(t){A(t);var n=I.indexOf(t);-1!==n&&I.splice(n,1);var l=T[t];l&&(O.clearTimeout(l),delete T[t]),0===I.length&&E(!1)},clearTimeout:function(t){A(t)},clearInterval:function(t){A(t)},clearImmediate:function(t){A(t);var n=h.indexOf(t);-1!==n&&h.splice(n,1)},cancelAnimationFrame:function(t){A(t)},callTimers:function(t){l(0!==t.length,'Cannot call `callTimers` with an empty list of IDs.'),p=null;for(var n=0;n1)for(var o=1;o0){var n=I;I=[];for(var l=0;l=0,loaded:s,total:n})}},{key:"__didCompleteResponse",value:function(t,s,n){t===this._requestId&&(s&&(''!==this._responseType&&'text'!==this._responseType||(this._response=s),this._hasError=!0,n&&(this._timedOut=!0)),this._clearSubscriptions(),this._requestId=null,this.setReadyState(this.DONE),s?y._interceptor&&y._interceptor.loadingFailed(t,s):y._interceptor&&y._interceptor.loadingFinished(t,this._response.length))}},{key:"_clearSubscriptions",value:function(){(this._subscriptions||[]).forEach(function(t){t&&t.remove()}),this._subscriptions=[]}},{key:"getAllResponseHeaders",value:function(){if(!this.responseHeaders)return null;var t=this.responseHeaders||{};return Object.keys(t).map(function(s){return s+': '+t[s]}).join('\r\n')}},{key:"getResponseHeader",value:function(t){var s=this._lowerCaseResponseHeaders[t.toLowerCase()];return void 0!==s?s:null}},{key:"setRequestHeader",value:function(t,s){if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');this._headers[t.toLowerCase()]=String(s)}},{key:"setTrackingName",value:function(t){return this._trackingName=t,this}},{key:"open",value:function(t,s,n){if(this.readyState!==this.UNSENT)throw new Error('Cannot open, already sending');if(void 0!==n&&!n)throw new Error('Synchronous http requests are not supported');if(!s)throw new Error('Cannot load an empty url');this._method=t.toUpperCase(),this._url=s,this._aborted=!1,this.setReadyState(this.OPENED)}},{key:"send",value:function(s){var n=this;if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');if(this._sent)throw new Error('Request has already been sent');this._sent=!0;var o=this._incrementalEvents||!!this.onreadystatechange||!!this.onprogress;this._subscriptions.push(v.addListener('didSendNetworkData',function(s){return n.__didUploadProgress.apply(n,t(s))})),this._subscriptions.push(v.addListener('didReceiveNetworkResponse',function(s){return n.__didReceiveResponse.apply(n,t(s))})),this._subscriptions.push(v.addListener('didReceiveNetworkData',function(s){return n.__didReceiveData.apply(n,t(s))})),this._subscriptions.push(v.addListener('didReceiveNetworkIncrementalData',function(s){return n.__didReceiveIncrementalData.apply(n,t(s))})),this._subscriptions.push(v.addListener('didReceiveNetworkDataProgress',function(s){return n.__didReceiveDataProgress.apply(n,t(s))})),this._subscriptions.push(v.addListener('didCompleteNetworkResponse',function(s){return n.__didCompleteResponse.apply(n,t(s))}));var h='text';'arraybuffer'===this._responseType&&(h='base64'),'blob'===this._responseType&&(h='blob');var p;p='unknown'!==n._trackingName?n._trackingName:n._url,n._perfKey='network_XMLHttpRequest_'+String(p),f.startTimespan(n._perfKey),E(n._method,'XMLHttpRequest method needs to be defined (%s).',p),E(n._url,'XMLHttpRequest URL needs to be defined (%s).',p),v.sendRequest(n._method,n._trackingName,n._url,n._headers,s,h,o,n.timeout,n.__didCreateRequest.bind(n),n.withCredentials)}},{key:"abort",value:function(){this._aborted=!0,this._requestId&&v.abortRequest(this._requestId),this.readyState===this.UNSENT||this.readyState===this.OPENED&&!this._sent||this.readyState===this.DONE||(this._reset(),this.setReadyState(this.DONE)),this._reset()}},{key:"setResponseHeaders",value:function(t){this.responseHeaders=t||null;var s=t||{};this._lowerCaseResponseHeaders=Object.keys(s).reduce(function(t,n){return t[n.toLowerCase()]=s[n],t},{})}},{key:"setReadyState",value:function(t){this.readyState=t,this.dispatchEvent({type:'readystatechange'}),t===this.DONE&&(this._aborted?this.dispatchEvent({type:'abort'}):this._hasError?this._timedOut?this.dispatchEvent({type:'timeout'}):this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"addEventListener",value:function(t,s){'readystatechange'!==t&&'progress'!==t||(this._incrementalEvents=!0),n(u(y.prototype),"addEventListener",this).call(this,t,s)}}],[{key:"setInterceptor",value:function(t){y._interceptor=t}}]),y})(y.apply(void 0,t(O)));L.UNSENT=k,L.OPENED=N,L.HEADERS_RECEIVED=w,L.LOADING=S,L.DONE=D,L._interceptor=null,m.exports=L},134,[27,32,39,31,42,44,41,135,139,140,143,148,11,13]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),l=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6]));function b(t,l){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);l&&(n=n.filter(function(l){return Object.getOwnPropertyDescriptor(t,l).enumerable})),o.push.apply(o,n)}return o}function s(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:[],o=arguments.length>1?arguments[1]:void 0;t(this,s);var u=r(d[2]);this.data=u.createFromParts(n,o).data}return n(s,[{key:"data",get:function(){if(!this._data)throw new Error('Blob has been closed and is no longer available');return this._data},set:function(t){this._data=t}},{key:"slice",value:function(t,n){var s=r(d[2]),o=this.data,u=o.offset,l=o.size;return'number'==typeof t&&(t>l&&(t=l),u+=t,l-=t,'number'==typeof n&&(n<0&&(n=this.size+n),l=n-t)),s.createFromOptions({blobId:this.data.blobId,offset:u,size:l})}},{key:"close",value:function(){r(d[2]).release(this.data.blobId),this.data=null}},{key:"size",get:function(){return this.data.size}},{key:"type",get:function(){return this.data.type||''}}]),s})();m.exports=s},137,[31,32,135]); +__d(function(g,r,i,a,m,e,d){var n={};m.exports={register:function(t){n[t]?n[t]++:n[t]=1},unregister:function(t){n[t]&&(n[t]--,n[t]<=0&&delete n[t])},has:function(t){return n[t]&&n[t]>0}}},138,[]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t=new WeakMap,n=new WeakMap;function o(n){var o=t.get(n);return console.assert(null!=o,"'this' is expected an Event object, but got",n),o}function l(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"==typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!=typeof console&&"function"==typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function u(n,o){t.set(this,{eventTarget:n,event:o,eventPhase:2,currentTarget:n,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:o.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});for(var l=Object.keys(o),u=0;u0){for(var t=new Array(arguments.length),n=0;n0?C-4:C;for(u=0;u>16&255,s[v++]=h>>8&255,s[v++]=255&h;2===y&&(h=n[t.charCodeAt(u)]<<2|n[t.charCodeAt(u+1)]>>4,s[v++]=255&h);1===y&&(h=n[t.charCodeAt(u)]<<10|n[t.charCodeAt(u+1)]<<4|n[t.charCodeAt(u+2)]>>2,s[v++]=h>>8&255,s[v++]=255&h);return s},e.fromByteArray=function(n){for(var o,h=n.length,u=h%3,c=[],f=0,A=h-u;fA?A:f+16383));1===u?(o=n[h-1],c.push(t[o>>2]+t[o<<4&63]+'==')):2===u&&(o=(n[h-2]<<8)+n[h-1],c.push(t[o>>10]+t[o>>4&63]+t[o<<2&63]+'='));return c.join('')};for(var t=[],n=[],o='undefined'!=typeof Uint8Array?Uint8Array:Array,h='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',u=0,c=h.length;u0)throw new Error('Invalid string. Length must be a multiple of 4');var o=t.indexOf('=');return-1===o&&(o=n),[o,o===n?0:4-o%4]}function A(t,n,o){return 3*(n+o)/4-o}function C(n,o,h){for(var u,c,f=[],A=o;A>18&63]+t[c>>12&63]+t[c>>6&63]+t[63&c]);return f.join('')}n['-'.charCodeAt(0)]=62,n['_'.charCodeAt(0)]=63},148,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]);function s(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function p(n){for(var o=1;o0&&console.warn('Unrecognized WebSocket connection option(s) `'+Object.keys(b).join('`, `')+"`. Did you mean to put these under `headers`?"),Array.isArray(o)||(o=null),u._eventEmitter=new v(f.default),u._socketId=C++,u._registerEvents(),f.default.connect(t,o,{headers:y},u._socketId),u}return(0,o.default)(A,[{key:"binaryType",get:function(){return this._binaryType},set:function(t){if('blob'!==t&&'arraybuffer'!==t)throw new Error("binaryType must be either 'blob' or 'arraybuffer'");'blob'!==this._binaryType&&'blob'!==t||(I(b.isAvailable,'Native module BlobModule is required for blob support'),'blob'===t?b.addWebSocketHandler(this._socketId):b.removeWebSocketHandler(this._socketId)),this._binaryType=t}},{key:"close",value:function(t,s){this.readyState!==this.CLOSING&&this.readyState!==this.CLOSED&&(this.readyState=this.CLOSING,this._close(t,s))}},{key:"send",value:function(t){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');if(t instanceof y)return I(b.isAvailable,'Native module BlobModule is required for blob support'),void b.sendOverSocket(t,this._socketId);if('string'!=typeof t){if(!(t instanceof ArrayBuffer||ArrayBuffer.isView(t)))throw new Error('Unsupported data type');f.default.sendBinary(k(t),this._socketId)}else f.default.send(t,this._socketId)}},{key:"ping",value:function(){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');f.default.ping(this._socketId)}},{key:"_close",value:function(t,s){var n='number'==typeof t?t:1e3,o='string'==typeof s?s:'';f.default.close(n,o,this._socketId),b.isAvailable&&'blob'===this._binaryType&&b.removeWebSocketHandler(this._socketId)}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[this._eventEmitter.addListener('websocketMessage',function(s){if(s.id===t._socketId){var n=s.data;switch(s.type){case'binary':n=E.toByteArray(s.data).buffer;break;case'blob':n=b.createFromOptions(s.data)}t.dispatchEvent(new _('message',{data:n}))}}),this._eventEmitter.addListener('websocketOpen',function(s){s.id===t._socketId&&(t.readyState=t.OPEN,t.protocol=s.protocol,t.dispatchEvent(new _('open')))}),this._eventEmitter.addListener('websocketClosed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new _('close',{code:s.code,reason:s.reason})),t._unregisterEvents(),t.close())}),this._eventEmitter.addListener('websocketFailed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new _('error',{message:s.message})),t.dispatchEvent(new _('close',{message:s.message})),t._unregisterEvents(),t.close())})]}}]),A})(p.apply(void 0,['close','error','message','open']));L.CONNECTING=S,L.OPEN=N,L.CLOSING=w,L.CLOSED=O,m.exports=L},150,[1,60,31,32,42,44,41,151,137,135,139,145,152,148,147,11]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).getEnforcing('WebSocketModule');e.default=n},151,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=function n(o,c){s(this,n),this.type=o.toString(),t(this,c)}},152,[9,31]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]),c=r(d[3]),o=r(d[4]);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var l=r(d[5]),f=r(d[6]),h=(function(h){u(R,l);var p,v,y=(p=R,v=s(),function(){var t,n=o(p);if(v){var u=o(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return c(this,t)});function R(n,u,c){var o;return t(this,R),f(null!=n&&null!=u,'Failed to construct `File`: Must pass both `parts` and `name` arguments.'),(o=y.call(this,n,c)).data.name=u,o}return n(R,[{key:"name",get:function(){return f(null!=this.data.name,'Files must have a name set.'),this.data.name}},{key:"lastModified",get:function(){return this.data.lastModified||0}}]),R})();m.exports=h},153,[31,32,42,44,41,137,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6]));function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[7]);var h=0,y=1,_=2,p=(function(t){(0,s.default)(R,t);var p,v,b=(p=R,v=f(),function(){var t,n=(0,l.default)(p);if(v){var o=(0,l.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,u.default)(this,t)});function R(){var t;return(0,n.default)(this,R),(t=b.call(this)).EMPTY=h,t.LOADING=y,t.DONE=_,t._aborted=!1,t._subscriptions=[],t._reset(),t}return(0,o.default)(R,[{key:"_reset",value:function(){this._readyState=h,this._error=null,this._result=null}},{key:"_clearSubscriptions",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_setReadyState",value:function(t){this._readyState=t,this.dispatchEvent({type:'readystatechange'}),t===_&&(this._aborted?this.dispatchEvent({type:'abort'}):this._error?this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"readAsArrayBuffer",value:function(){throw new Error('FileReader.readAsArrayBuffer is not implemented')}},{key:"readAsDataURL",value:function(t){var n=this;if(this._aborted=!1,null==t)throw new TypeError("Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'");c.default.readAsDataURL(t.data).then(function(t){n._aborted||(n._result=t,n._setReadyState(_))},function(t){n._aborted||(n._error=t,n._setReadyState(_))})}},{key:"readAsText",value:function(t){var n=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'UTF-8';if(this._aborted=!1,null==t)throw new TypeError("Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'");c.default.readAsText(t.data,o).then(function(t){n._aborted||(n._result=t,n._setReadyState(_))},function(t){n._aborted||(n._error=t,n._setReadyState(_))})}},{key:"abort",value:function(){this._aborted=!0,this._readyState!==h&&this._readyState!==_&&(this._reset(),this._setReadyState(_)),this._reset()}},{key:"readyState",get:function(){return this._readyState}},{key:"error",get:function(){return this._error}},{key:"result",get:function(){return this._result}}]),R})(r(d[8]).apply(void 0,['abort','error','load','loadstart','loadend','progress']));p.EMPTY=h,p.LOADING=y,p.DONE=_,m.exports=p},154,[1,31,32,42,44,41,155,137,139]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).getEnforcing('FileReaderModule');e.default=n},155,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.URL=e.URLSearchParams=void 0;var n,o=t(r(d[1])),u=t(r(d[2])),s=t(r(d[3])),f=(r(d[4]),null);if(s.default&&'string'==typeof s.default.getConstants().BLOB_URI_SCHEME){var h=s.default.getConstants();f=h.BLOB_URI_SCHEME+':','string'==typeof h.BLOB_URI_HOST&&(f+="//"+h.BLOB_URI_HOST+"/")}n=Symbol.iterator;var l=(function(){function t(n){var u=this;(0,o.default)(this,t),this._searchParams=[],'object'==typeof n&&Object.keys(n).forEach(function(t){return u.append(t,n[t])})}return(0,u.default)(t,[{key:"append",value:function(t,n){this._searchParams.push([t,n])}},{key:"delete",value:function(t){throw new Error('not implemented')}},{key:"get",value:function(t){throw new Error('not implemented')}},{key:"getAll",value:function(t){throw new Error('not implemented')}},{key:"has",value:function(t){throw new Error('not implemented')}},{key:"set",value:function(t,n){throw new Error('not implemented')}},{key:"sort",value:function(){throw new Error('not implemented')}},{key:n,value:function(){return this._searchParams[Symbol.iterator]()}},{key:"toString",value:function(){if(0===this._searchParams.length)return'';var t=this._searchParams.length-1;return this._searchParams.reduce(function(n,o,u){return n+o.join('=')+(u===t?'':'&')},'')}}]),t})();function c(t){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}e.URLSearchParams=l;var w=(function(){function t(n,u){(0,o.default)(this,t),this._searchParamsInstance=null;var s=null;if(!u||c(n))this._url=n,this._url.endsWith('/')||(this._url+='/');else{if('string'==typeof u){if(!c(s=u))throw new TypeError("Invalid base URL: "+s)}else'object'==typeof u&&(s=u.toString());s.endsWith('/')&&(s=s.slice(0,s.length-1)),n.startsWith('/')||(n="/"+n),s.endsWith(n)&&(n=''),this._url=""+s+n}}return(0,u.default)(t,[{key:"hash",get:function(){throw new Error('not implemented')}},{key:"host",get:function(){throw new Error('not implemented')}},{key:"hostname",get:function(){throw new Error('not implemented')}},{key:"href",get:function(){return this.toString()}},{key:"origin",get:function(){throw new Error('not implemented')}},{key:"password",get:function(){throw new Error('not implemented')}},{key:"pathname",get:function(){throw new Error('not implemented')}},{key:"port",get:function(){throw new Error('not implemented')}},{key:"protocol",get:function(){throw new Error('not implemented')}},{key:"search",get:function(){throw new Error('not implemented')}},{key:"searchParams",get:function(){return null==this._searchParamsInstance&&(this._searchParamsInstance=new l),this._searchParamsInstance}},{key:"toJSON",value:function(){return this.toString()}},{key:"toString",value:function(){if(null===this._searchParamsInstance)return this._url;var t=this._url.indexOf('?')>-1?'&':'?';return this._url+t+this._searchParamsInstance.toString()}},{key:"username",get:function(){throw new Error('not implemented')}}],[{key:"createObjectURL",value:function(t){if(null===f)throw new Error('Cannot create URL for blob!');return""+f+t.data.blobId+"?offset="+t.data.offset+"&size="+t.size}},{key:"revokeObjectURL",value:function(t){}}]),t})();e.URL=w},156,[1,31,32,136,137]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),n=r(d[2]),l=r(d[3]),u=r(d[4]);function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}Object.defineProperty(e,'__esModule',{value:!0});var f=r(d[5]),b=(function(f){n(h,f);var b,s,y=(b=h,s=c(),function(){var t,o=u(b);if(s){var n=u(this).constructor;t=Reflect.construct(o,arguments,n)}else t=o.apply(this,arguments);return l(this,t)});function h(){throw t(this,h),y.call(this),new TypeError("AbortSignal cannot be constructed directly")}return o(h,[{key:"aborted",get:function(){var t=p.get(this);if("boolean"!=typeof t)throw new TypeError("Expected 'this' to be an 'AbortSignal' object, but got "+(null===this?"null":typeof this));return t}}]),h})(f.EventTarget);f.defineEventAttribute(b.prototype,"abort");var p=new WeakMap;Object.defineProperties(b.prototype,{aborted:{enumerable:!0}}),"function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag&&Object.defineProperty(b.prototype,Symbol.toStringTag,{configurable:!0,value:"AbortSignal"});var s=(function(){function n(){var o;t(this,n),y.set(this,(o=Object.create(b.prototype),f.EventTarget.call(o),p.set(o,!1),o))}return o(n,[{key:"signal",get:function(){return h(this)}},{key:"abort",value:function(){var t;t=h(this),!1===p.get(t)&&(p.set(t,!0),t.dispatchEvent({type:"abort"}))}}]),n})(),y=new WeakMap;function h(t){var o=y.get(t);if(null==o)throw new TypeError("Expected 'this' to be an 'AbortController' object, but got "+(null===t?"null":typeof t));return o}Object.defineProperties(s.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}}),"function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag&&Object.defineProperty(s.prototype,Symbol.toStringTag,{configurable:!0,value:"AbortController"}),e.AbortController=s,e.AbortSignal=b,e.default=s,m.exports=s,m.exports.AbortController=m.exports.default=s,m.exports.AbortSignal=b},157,[31,32,42,44,41,139]); +__d(function(g,r,i,a,m,e,d){'use strict';g.alert||(g.alert=function(t){r(d[0]).alert('Alert',''+t)})},158,[159]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),c=(function(){function t(){(0,n.default)(this,t)}return(0,o.default)(t,null,[{key:"alert",value:function(n,o,u,c){if('ios'===s.default.OS)t.prompt(n,o,u,'default');else if('android'===s.default.OS){if(!l.default)return;var f=l.default.getConstants(),v={title:n||'',message:o||'',cancelable:!1};c&&c.cancelable&&(v.cancelable=c.cancelable);var p=u?u.slice(0,3):[{text:"OK"}],b=p.pop(),y=p.pop(),h=p.pop();h&&(v.buttonNeutral=h.text||''),y&&(v.buttonNegative=y.text||''),b&&(v.buttonPositive=b.text||"OK");l.default.showAlert(v,function(t){return console.warn(t)},function(t,n){t===f.buttonClicked?n===f.buttonNeutral?h.onPress&&h.onPress():n===f.buttonNegative?y.onPress&&y.onPress():n===f.buttonPositive&&b.onPress&&b.onPress():t===f.dismissed&&c&&c.onDismiss&&c.onDismiss()})}}},{key:"prompt",value:function(t,n,o){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:'plain-text',c=arguments.length>4?arguments[4]:void 0,f=arguments.length>5?arguments[5]:void 0;if('ios'===s.default.OS){var v,p,b=[],y=[];'function'==typeof o?b=[o]:Array.isArray(o)&&o.forEach(function(t,n){if(b[n]=t.onPress,'cancel'===t.style?v=String(n):'destructive'===t.style&&(p=String(n)),t.text||n<(o||[]).length-1){var s={};s[n]=t.text||'',y.push(s)}}),u.default.alertWithArgs({title:t||'',message:n||void 0,buttons:y,type:l||void 0,defaultValue:c,cancelButtonKey:v,destructiveButtonKey:p,keyboardType:f},function(t,n){var o=b[t];o&&o(n)})}}}]),t})();m.exports=c},159,[1,31,32,56,160,161]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).get('DialogManagerAndroid');e.default=n},160,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1]));function n(){}m.exports={alertWithArgs:function(u,f){t.default&&t.default.showAlert(u,n,f||n)}}},161,[1,160]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).polyfillObjectProperty,o=g.navigator;void 0===o&&(g.navigator=o={}),t(o,'product',function(){return'ReactNative'})},162,[120]); +__d(function(g,r,i,a,m,e,d){'use strict';var n;if(g.RN$Bridgeless&&g.RN$registerCallableModule)n=g.RN$registerCallableModule;else{var t=r(d[0]);n=function(n,u){return t.registerLazyCallableModule(n,u)}}n('Systrace',function(){return r(d[1])}),n('JSTimers',function(){return r(d[2])}),n('HeapCapture',function(){return r(d[3])}),n('SamplingProfiler',function(){return r(d[4])}),n('RCTLog',function(){return r(d[5])}),n('RCTDeviceEventEmitter',function(){return r(d[6])}),n('RCTNativeAppEventEmitter',function(){return r(d[7])}),n('GlobalPerformanceLogger',function(){return r(d[8])}),n('JSDevSupportModule',function(){return r(d[9])}),n('HMRClient',function(){return r(d[10])})},163,[25,34,128,164,166,168,38,169,140,170,172]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),p={captureHeap:function(p){var u=null;try{g.nativeCaptureHeap(p),console.log('HeapCapture.captureHeap succeeded: '+p)}catch(t){console.log('HeapCapture.captureHeap error: '+t.toString()),u=t.toString()}t.default&&t.default.captureComplete(p,u)}};m.exports=p},164,[1,165]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var u=new WeakMap,o=new WeakMap;return(t=function(t){return t?o:u})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,u){if(!u&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var o=t(u);if(o&&o.has(n))return o.get(n);var f={},p=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in n)if("default"!==c&&Object.prototype.hasOwnProperty.call(n,c)){var l=p?Object.getOwnPropertyDescriptor(n,c):null;l&&(l.get||l.set)?Object.defineProperty(f,c,l):f[c]=n[c]}f.default=n,o&&o.set(n,f);return f})(r(d[0])).get('JSCHeapCapture');e.default=n},165,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var o={poke:function(o){var l=null,n=null;try{null===(n=g.pokeSamplingProfiler())?console.log('The JSC Sampling Profiler has started'):console.log('The JSC Sampling Profiler has stopped')}catch(o){console.log('Error occurred when restarting Sampling Profiler: '+o.toString()),l=o.toString()}var t=r(d[0]).default;t&&t.operationComplete(o,n,l)}};m.exports=o},166,[167]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in n)if("default"!==c&&Object.prototype.hasOwnProperty.call(n,c)){var p=l?Object.getOwnPropertyDescriptor(n,c):null;p&&(p.get||p.set)?Object.defineProperty(f,c,p):f[c]=n[c]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).get('JSCSamplingProfiler');e.default=n},167,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n={log:'log',info:'info',warn:'warn',error:'error',fatal:'error'},l=null,t={logIfNoNativeHook:function(o){for(var n=arguments.length,f=new Array(n>1?n-1:0),c=1;c1?c-1:0),s=1;s=s)return t[n];return t[t.length-1]||1}}]),c})();m.exports=c},189,[31,32,63,56,190,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t={.75:'ldpi',1:'mdpi',1.5:'hdpi',2:'xhdpi',3:'xxhdpi',4:'xxxhdpi'};function n(n){if(n.toString()in t)return t[n.toString()];throw new Error('no such scale '+n.toString())}var o=new Set(['gif','jpeg','jpg','png','svg','webp','xml']);function s(t){var n=t.httpServerLocation;return'/'===n[0]&&(n=n.substr(1)),n}m.exports={getAndroidAssetSuffix:n,getAndroidResourceFolderName:function(s,u){if(!o.has(s.type))return'raw';var c=n(u);if(!c)throw new Error("Don't know which android drawable suffix to use for scale: "+u+'\nAsset: '+JSON.stringify(s,null,'\t')+'\nPossible scales are:'+JSON.stringify(t,null,'\t'));return'drawable-'+c},getAndroidResourceIdentifier:function(t){return(s(t)+'/'+t.name).toLowerCase().replace(/\//g,'_').replace(/([^a-z0-9_])/g,'').replace(/^assets_/,'')},getBasePath:s}},190,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1]));function o(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function l(t){for(var l=1;l2&&void 0!==arguments[2]?arguments[2]:-1,s=arguments.length>3?arguments[3]:void 0,c='number'==typeof f?s:f,l='number'==typeof f?f:-1;if(0===l)return!0;if(o===u)return!1;if('function'==typeof o&&'function'==typeof u){var v=null==c?void 0:c.unsafelyIgnoreFunctions;return null==v&&(!n||!n.onDifferentFunctionsIgnored||c&&'unsafelyIgnoreFunctions'in c||n.onDifferentFunctionsIgnored(o.name,u.name),v=!0),!v}if('object'!=typeof o||null===o)return o!==u;if('object'!=typeof u||null===u)return!0;if(o.constructor!==u.constructor)return!0;if(Array.isArray(o)){var y=o.length;if(u.length!==y)return!0;for(var p=0;p=F},u=function(){},e.unstable_forceFrameRate=function(n){0>n||125>>1,u=n[l];if(!(void 0!==u&&0q(c,o))void 0!==b&&0>q(b,c)?(n[l]=b,n[f]=o,l=f):(n[l]=c,n[s]=o,l=s);else{if(!(void 0!==b&&0>q(b,o)))break n;n[l]=b,n[f]=o,l=f}}}return t}return null}function q(n,t){var o=n.sortIndex-t.sortIndex;return 0!==o?o:n.id-t.id}var D=[],R=[],j=1,E=null,N=3,B=!1,U=!1,W=!1;function Y(n){for(var t=A(R);null!==t;){if(null===t.callback)L(R);else{if(!(t.startTime<=n))break;L(R),t.sortIndex=t.expirationTime,C(D,t)}t=A(R)}}function z(o){if(W=!1,Y(o),!U)if(null!==A(D))U=!0,n(G);else{var l=A(R);null!==l&&t(z,l.startTime-o)}}function G(n,u){U=!1,W&&(W=!1,o()),B=!0;var s=N;try{for(Y(u),E=A(D);null!==E&&(!(E.expirationTime>u)||n&&!l());){var c=E.callback;if(null!==c){E.callback=null,N=E.priorityLevel;var f=c(E.expirationTime<=u);u=e.unstable_now(),"function"==typeof f?E.callback=f:E===A(D)&&L(D),Y(u)}else L(D);E=A(D)}if(null!==E)var b=!0;else{var p=A(R);null!==p&&t(z,p.startTime-u),b=!1}return b}finally{E=null,N=s,B=!1}}function H(n){switch(n){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var J=u;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(n){n.callback=null},e.unstable_continueExecution=function(){U||B||(U=!0,n(G))},e.unstable_getCurrentPriorityLevel=function(){return N},e.unstable_getFirstCallbackNode=function(){return A(D)},e.unstable_next=function(n){switch(N){case 1:case 2:case 3:var t=3;break;default:t=N}var o=N;N=t;try{return n()}finally{N=o}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=J,e.unstable_runWithPriority=function(n,t){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var o=N;N=n;try{return t()}finally{N=o}},e.unstable_scheduleCallback=function(l,u,s){var c=e.unstable_now();if("object"==typeof s&&null!==s){var f=s.delay;f="number"==typeof f&&0c?(l.sortIndex=f,C(R,l),null===A(D)&&l===A(R)&&(W?o():W=!0,t(z,f-c))):(l.sortIndex=s,C(D,l),U||B||(U=!0,n(G))),l},e.unstable_shouldYield=function(){var n=e.unstable_now();Y(n);var t=A(D);return t!==E&&null!==E&&null!==t&&null!==t.callback&&t.startTime<=n&&t.expirationTime1&&(f[o]=c)}else f[o]=n}for(var s in t)o.includes(s)||(n?t.hasOwnProperty(s)&&c(t[s],n[s],s):f[s]={});return f}var c=function(t,n){if(!g.RN$Bridgeless){var o=f(t);['validAttributes','bubblingEventTypes','directEventTypes'].forEach(function(f){var c=Object.keys(u(o[f],n[f]));c.length&&console.error(t+" generated view config for "+f+" does not match native, missing: "+c.join(' '))})}};e.default=c},201,[1,192,182]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t.createContext(!1)},202,[6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),f=t(r(d[2])),u=r(d[3]),l=u.forwardRef(function(t,l){return u.createElement(f.default,(0,n.default)({},t,{ref:l}))});l.defaultProps={styleAttr:'Normal',indeterminate:!0,animating:!0},m.exports=l},203,[1,9,204,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('AndroidProgressBar');e.default=u},204,[1,205]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2]));var p=function(n,p){var f=p&&p.paperComponentName?p.paperComponentName:n;if(null!=p&&null!=p.paperComponentNameDeprecated)if(o.default.getViewManagerConfig(n))f=n;else{if(null==p.paperComponentNameDeprecated||!o.default.getViewManagerConfig(p.paperComponentNameDeprecated))throw new Error("Failed to find native component for either "+n+" or "+(p.paperComponentNameDeprecated||'(unknown)'));f=p.paperComponentNameDeprecated}return(0,t.default)(f)};e.default=p},205,[1,180,51]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),n=r(d[2]),c=r(d[3]),s=r(d[4]),u=r(d[5]);function l(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);o&&(c=c.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,c)}return n}function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[6]);var b=r(d[7]),p=r(d[8]),y=r(d[9]),h=r(d[10]),O=(r(d[11]),r(d[12])),x=r(d[13]),v=(function(t){c(D,t);var l,p,v=(l=D,p=f(),function(){var t,o=u(l);if(p){var n=u(this).constructor;t=Reflect.construct(o,arguments,n)}else t=o.apply(this,arguments);return s(this,t)});function D(){return o(this,D),v.apply(this,arguments)}return n(D,[{key:"render",value:function(){var t=this.props,o=t.accessibilityLabel,n=t.color,c=t.onPress,s=t.touchSoundDisabled,u=t.title,l=t.hasTVPreferredFocus,f=t.nextFocusDown,p=t.nextFocusForward,v=t.nextFocusLeft,D=t.nextFocusRight,P=t.nextFocusUp,j=t.disabled,w=t.testID,R=[F.button],k=[F.text];n&&R.push({backgroundColor:n});var C={};j&&(R.push(F.buttonDisabled),k.push(F.textDisabled),C.disabled=!0),x('string'==typeof u,'The title prop of a Button must be a string');var E=u.toUpperCase(),S=h;return b.createElement(S,{accessibilityLabel:o,accessibilityRole:"button",accessibilityState:C,hasTVPreferredFocus:l,nextFocusDown:f,nextFocusForward:p,nextFocusLeft:v,nextFocusRight:D,nextFocusUp:P,testID:w,disabled:j,onPress:c,touchSoundDisabled:s},b.createElement(O,{style:R},b.createElement(y,{style:k,disabled:j},E)))}}]),D})(b.Component),F=p.create({button:{elevation:4,backgroundColor:'#2196F3',borderRadius:2},text:(function(o){for(var n=1;n4?p-4:0),l=4;l5?O-5:0),v=5;v4?s-4:0),f=4;f0,s=R&&R.length>0;return!o&&s?R[0]:o?E[0]:t}),T=N({NOT_RESPONDER:null,RESPONDER_INACTIVE_PRESS_IN:null,RESPONDER_INACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_PRESS_IN:null,RESPONDER_ACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_LONG_PRESS_IN:null,RESPONDER_ACTIVE_LONG_PRESS_OUT:null,ERROR:null}),c={NOT_RESPONDER:!1,RESPONDER_INACTIVE_PRESS_IN:!1,RESPONDER_INACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_PRESS_IN:!1,RESPONDER_ACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_LONG_PRESS_IN:!1,RESPONDER_ACTIVE_LONG_PRESS_OUT:!1,ERROR:!1},D=o(o({},c),{},{RESPONDER_ACTIVE_PRESS_OUT:!0,RESPONDER_ACTIVE_PRESS_IN:!0}),I=o(o({},c),{},{RESPONDER_INACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),A=o(o({},c),{},{RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),b=N({DELAY:null,RESPONDER_GRANT:null,RESPONDER_RELEASE:null,RESPONDER_TERMINATED:null,ENTER_PRESS_RECT:null,LEAVE_PRESS_RECT:null,LONG_PRESS_DETECTED:null}),p={NOT_RESPONDER:{DELAY:T.ERROR,RESPONDER_GRANT:T.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:T.ERROR,RESPONDER_TERMINATED:T.ERROR,ENTER_PRESS_RECT:T.ERROR,LEAVE_PRESS_RECT:T.ERROR,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_INACTIVE_PRESS_IN:{DELAY:T.RESPONDER_ACTIVE_PRESS_IN,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_INACTIVE_PRESS_OUT:{DELAY:T.RESPONDER_ACTIVE_PRESS_OUT,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_ACTIVE_PRESS_IN:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_PRESS_OUT:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_ACTIVE_LONG_PRESS_IN:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:T.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_LONG_PRESS_OUT:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},error:{DELAY:T.NOT_RESPONDER,RESPONDER_GRANT:T.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.NOT_RESPONDER,LEAVE_PRESS_RECT:T.NOT_RESPONDER,LONG_PRESS_DETECTED:T.NOT_RESPONDER}},C={componentDidMount:function(){n.isTV&&(this._tvEventHandler=new h,this._tvEventHandler.enable(this,function(t,E){var R=S.findNodeHandle(t);E.dispatchConfig={},R===E.tag&&('focus'===E.eventType?t.touchableHandleFocus(E):'blur'===E.eventType?t.touchableHandleBlur(E):E.eventType)}))},componentWillUnmount:function(){this._tvEventHandler&&(this._tvEventHandler.disable(),delete this._tvEventHandler),this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout)},touchableGetInitialState:function(){return{touchable:{touchState:void 0,responderID:null}}},touchableHandleResponderTerminationRequest:function(){return!this.props.rejectResponderTermination},touchableHandleStartShouldSetResponder:function(){return!this.props.disabled},touchableLongPressCancelsPress:function(){return!0},touchableHandleResponderGrant:function(t){var E=t.currentTarget;t.persist(),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout),this.pressOutDelayTimeout=null,this.state.touchable.touchState=T.NOT_RESPONDER,this.state.touchable.responderID=E,this._receiveSignal(b.RESPONDER_GRANT,t);var R=void 0!==this.touchableGetHighlightDelayMS?Math.max(this.touchableGetHighlightDelayMS(),0):130;0!==(R=isNaN(R)?130:R)?this.touchableDelayTimeout=setTimeout(this._handleDelay.bind(this,t),R):this._handleDelay(t);var o=void 0!==this.touchableGetLongPressDelayMS?Math.max(this.touchableGetLongPressDelayMS(),10):370;o=isNaN(o)?370:o,this.longPressDelayTimeout=setTimeout(this._handleLongDelay.bind(this,t),o+R)},touchableHandleResponderRelease:function(t){this.pressInLocation=null,this._receiveSignal(b.RESPONDER_RELEASE,t)},touchableHandleResponderTerminate:function(t){this.pressInLocation=null,this._receiveSignal(b.RESPONDER_TERMINATED,t)},touchableHandleResponderMove:function(t){if(this.state.touchable.positionOnActivate){var E=this.state.touchable.positionOnActivate,R=this.state.touchable.dimensionsOnActivate,o=this.touchableGetPressRectOffset?this.touchableGetPressRectOffset():{left:20,right:20,top:20,bottom:20},s=o.left,n=o.top,_=o.right,S=o.bottom,l=this.touchableGetHitSlop?this.touchableGetHitSlop():null;l&&(s+=l.left||0,n+=l.top||0,_+=l.right||0,S+=l.bottom||0);var h=P(t.nativeEvent),u=h&&h.pageX,O=h&&h.pageY;if(this.pressInLocation)this._getDistanceBetweenPoints(u,O,this.pressInLocation.pageX,this.pressInLocation.pageY)>10&&this._cancelLongPressDelayTimeout();if(u>E.left-s&&O>E.top-n&&u>`");o!==s&&(this._performSideEffectsForTransition(o,s,t,E),this.state.touchable.touchState=s)}},_cancelLongPressDelayTimeout:function(){this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.longPressDelayTimeout=null},_isHighlight:function(t){return t===T.RESPONDER_ACTIVE_PRESS_IN||t===T.RESPONDER_ACTIVE_LONG_PRESS_IN},_savePressInLocation:function(t){var E=P(t.nativeEvent),R=E&&E.pageX,o=E&&E.pageY,s=E&&E.locationX,n=E&&E.locationY;this.pressInLocation={pageX:R,pageY:o,locationX:s,locationY:n}},_getDistanceBetweenPoints:function(t,E,R,o){var s=t-R,n=E-o;return Math.sqrt(s*s+n*n)},_performSideEffectsForTransition:function(t,E,R,o){var s=this._isHighlight(t),n=this._isHighlight(E);(R===b.RESPONDER_TERMINATED||R===b.RESPONDER_RELEASE)&&this._cancelLongPressDelayTimeout();var _=t===T.NOT_RESPONDER&&E===T.RESPONDER_INACTIVE_PRESS_IN,S=!D[t]&&D[E];if((_||S)&&this._remeasureMetricsOnActivation(),I[t]&&R===b.LONG_PRESS_DETECTED&&this.touchableHandleLongPress&&this.touchableHandleLongPress(o),n&&!s?this._startHighlight(o):!n&&s&&this._endHighlight(o),I[t]&&R===b.RESPONDER_RELEASE){var l=!!this.props.onLongPress,h=A[t]&&(!l||!this.touchableLongPressCancelsPress());(!A[t]||h)&&this.touchableHandlePress&&(n||s||(this._startHighlight(o),this._endHighlight(o)),this.props.touchSoundDisabled||O.playTouchSound(),this.touchableHandlePress(o))}this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.touchableDelayTimeout=null},_startHighlight:function(t){this._savePressInLocation(t),this.touchableHandleActivePressIn&&this.touchableHandleActivePressIn(t)},_endHighlight:function(t){var E=this;this.touchableHandleActivePressOut&&(this.touchableGetPressOutDelayMS&&this.touchableGetPressOutDelayMS()?this.pressOutDelayTimeout=setTimeout(function(){E.touchableHandleActivePressOut(t)},this.touchableGetPressOutDelayMS()):this.touchableHandleActivePressOut(t))},withoutDefaultFocusAndBlur:{}},L=(C.touchableHandleFocus,C.touchableHandleBlur,t(C,["touchableHandleFocus","touchableHandleBlur"]));C.withoutDefaultFocusAndBlur=L;var f={Mixin:C,TOUCH_TARGET_DEBUG:!1,renderDebugView:function(t){t.color,t.hitSlop;if(!f.TOUCH_TARGET_DEBUG)return null;throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!')}};l.create({debug:{position:'absolute',borderWidth:1,borderStyle:'dashed'}});m.exports=f},213,[60,54,214,56,216,6,89,62,217,51,86,219,221,69]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t.twoArgumentPooler;function n(t,o){this.width=t,this.height=o}n.prototype.destructor=function(){this.width=null,this.height=null},n.getPooledFromElement=function(t){return n.getPooled(t.offsetWidth,t.offsetHeight)},t.addPoolingTo(n,o),m.exports=n},214,[215]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=function(t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,t),n}return new this(t)},o=function(n){t(n instanceof this,'Trying to release an instance into a pool of a different type.'),n.destructor(),this.instancePool.length2?f-2:0),u=2;u=23};var _='android'===v.default.OS?function(t,s){return s&&k.canUseNativeForeground()?{nativeForegroundAndroid:t}:{nativeBackgroundAndroid:t}}:function(t,s){return null};m.exports=k},224,[1,54,60,31,32,42,44,41,225,228,229,87,89,56,86,80,6,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var E=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=E(r(d[1])),n=E(r(d[2])),R=E(r(d[3])),_=r(d[4]),o=E(r(d[5])),l=E(r(d[6])),u=r(d[7]),s=E(r(d[8])),S=E(r(d[9]));!(function(E,t){if(!t&&E&&E.__esModule)return E;if(null===E||"object"!=typeof E&&"function"!=typeof E)return{default:E};var n=c(t);if(n&&n.has(E))return n.get(E);var R={},_=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in E)if("default"!==o&&Object.prototype.hasOwnProperty.call(E,o)){var l=_?Object.getOwnPropertyDescriptor(E,o):null;l&&(l.get||l.set)?Object.defineProperty(R,o,l):R[o]=E[o]}R.default=E,n&&n.set(E,R)})(r(d[10]));function c(E){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(E){return E?n:t})(E)}function O(E,t){var n=Object.keys(E);if(Object.getOwnPropertySymbols){var R=Object.getOwnPropertySymbols(E);t&&(R=R.filter(function(t){return Object.getOwnPropertyDescriptor(E,t).enumerable})),n.push.apply(n,R)}return n}function P(E){for(var n=1;n0?E._pressDelayTimeout=setTimeout(function(){E._receiveSignal('DELAY',t)},n):E._receiveSignal('DELAY',t);var R=C(E._config.delayLongPress,10,500-n);E._longPressDelayTimeout=setTimeout(function(){E._handleLongPress(t)},R+n)},onResponderMove:function(t){null!=E._config.onPressMove&&E._config.onPressMove(t);var n=E._responderRegion;if(null!=n){var R=L(t);if(null==R)return E._cancelLongPressDelayTimeout(),void E._receiveSignal('LEAVE_PRESS_RECT',t);if(null!=E._touchActivatePosition){var _=E._touchActivatePosition.pageX-R.pageX,o=E._touchActivatePosition.pageY-R.pageY;Math.hypot(_,o)>10&&E._cancelLongPressDelayTimeout()}E._isTouchWithinResponderRegion(R,n)?E._receiveSignal('ENTER_PRESS_RECT',t):(E._cancelLongPressDelayTimeout(),E._receiveSignal('LEAVE_PRESS_RECT',t))}},onResponderRelease:function(t){E._receiveSignal('RESPONDER_RELEASE',t)},onResponderTerminate:function(t){E._receiveSignal('RESPONDER_TERMINATED',t)},onResponderTerminationRequest:function(){var t=E._config.cancelable;if(null==t){var n=E._config.onResponderTerminationRequest_DEPRECATED;return null==n||n()}return t},onClick:function(t){var n=E._config.onPress;null!=n&&n(t)}},R='ios'===s.default.OS||'android'===s.default.OS?null:{onMouseEnter:function(t){if((0,_.isHoverEnabled)()){E._isHovered=!0,E._cancelHoverOutDelayTimeout();var n=E._config.onHoverIn;if(null!=n){var R=C(E._config.delayHoverIn);R>0?E._hoverInDelayTimeout=setTimeout(function(){n(t)},R):n(t)}}},onMouseLeave:function(t){if(E._isHovered){E._isHovered=!1,E._cancelHoverInDelayTimeout();var n=E._config.onHoverOut;if(null!=n){var R=C(E._config.delayHoverOut);R>0?E._hoverInDelayTimeout=setTimeout(function(){n(t)},R):n(t)}}}};return P(P(P({},t),n),R)}},{key:"_receiveSignal",value:function(E,t){var n,R=this._touchState,_=null==(n=T[R])?void 0:n[E];null==this._responderID&&'RESPONDER_RELEASE'===E||((0,o.default)(null!=_&&'ERROR'!==_,'Pressability: Invalid signal `%s` for state `%s` on responder: %s',E,R,'number'==typeof this._responderID?this._responderID:'<>'),R!==_&&(this._performTransitionSideEffects(R,_,E,t),this._touchState=_))}},{key:"_performTransitionSideEffects",value:function(E,t,n,R){h(n)&&(this._touchActivatePosition=null,this._cancelLongPressDelayTimeout());var _='NOT_RESPONDER'===E&&'RESPONDER_INACTIVE_PRESS_IN'===t,o=!N(E)&&N(t);if((_||o)&&this._measureResponderRegion(),f(E)&&'LONG_PRESS_DETECTED'===n){var u=this._config.onLongPress;null!=u&&u(R)}var S=D(E),c=D(t);if(!S&&c?this._activate(R):S&&!c&&this._deactivate(R),f(E)&&'RESPONDER_RELEASE'===n){var O=this._config,P=O.onLongPress,T=O.onPress,v=O.android_disableSound;if(null!=T)null!=P&&'RESPONDER_ACTIVE_LONG_PRESS_IN'===E&&this._shouldLongPressCancelPress()||(c||S||(this._activate(R),this._deactivate(R)),'android'===s.default.OS&&!0!==v&&l.default.playTouchSound(),T(R))}this._cancelPressDelayTimeout()}},{key:"_activate",value:function(E){var t=this._config.onPressIn,n=L(E);this._touchActivatePosition={pageX:n.pageX,pageY:n.pageY},this._touchActivateTime=Date.now(),null!=t&&t(E)}},{key:"_deactivate",value:function(E){var t=this._config.onPressOut;if(null!=t){var n,R=C(this._config.minPressDuration,0,130),_=Date.now()-(null!=(n=this._touchActivateTime)?n:0),o=Math.max(R-_,C(this._config.delayPressOut));o>0?this._pressOutDelayTimeout=setTimeout(function(){t(E)},o):t(E)}this._touchActivateTime=null}},{key:"_measureResponderRegion",value:function(){null!=this._responderID&&('number'==typeof this._responderID?S.default.measure(this._responderID,this._measureCallback):this._responderID.measure(this._measureCallback))}},{key:"_isTouchWithinResponderRegion",value:function(E,t){var n,R,_,o,l=(0,u.normalizeRect)(this._config.hitSlop),s=(0,u.normalizeRect)(this._config.pressRectOffset),S=t.bottom,c=t.left,O=t.right,P=t.top;return null!=l&&(null!=l.bottom&&(S+=l.bottom),null!=l.left&&(c-=l.left),null!=l.right&&(O+=l.right),null!=l.top&&(P-=l.top)),S+=null!=(n=null==s?void 0:s.bottom)?n:v,c-=null!=(R=null==s?void 0:s.left)?R:I,O+=null!=(_=null==s?void 0:s.right)?_:A,P-=null!=(o=null==s?void 0:s.top)?o:p,E.pageX>c&&E.pageXP&&E.pageY1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return Math.max(t,null!=E?E:n)}e.default=y;var L=function(E){var t=E.nativeEvent,n=t.changedTouches,R=t.touches;return null!=R&&R.length>0?R[0]:null!=n&&n.length>0?n[0]:E.nativeEvent}},225,[1,54,31,32,226,11,219,227,56,51,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.isHoverEnabled=function(){return t};var t=!1;if('web'===n(r(d[1])).default.OS&&Boolean('undefined'!=typeof window&&window.document&&window.document.createElement)){var o=0,u=function(){o=Date.now(),t&&(t=!1)};document.addEventListener('touchstart',u,!0),document.addEventListener('touchmove',u,!0),document.addEventListener('mousemove',function(){t||Date.now()-o<1e3||(t=!0)},!0)}},226,[1,56]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return{bottom:t,left:t,right:t,top:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.createSquare=t,e.normalizeRect=function(n){return'number'==typeof n?t(n):n}},227,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.PressabilityDebugView=function(t){t.color,t.hitSlop;return null},e.isEnabled=function(){return!1};t(r(d[1])),t(r(d[2])),t(r(d[3])),(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=n(o);if(u&&u.has(t))return u.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,u&&u.set(t,f)})(r(d[4]));function n(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(n=function(t){return t?u:o})(t)}},228,[1,69,213,86,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),f=t(r(d[5])),o=t(r(d[6])),v=(function(){function t(u,v){(0,n.default)(this,t),(0,l.default)(f.default.isTV,'TVTouchable: Requires `Platform.isTV`.'),this._tvEventHandler=new o.default,this._tvEventHandler.enable(u,function(t,n){n.dispatchConfig={},s.default.findNodeHandle(u)===n.tag&&('focus'===n.eventType?v.onFocus(n):'blur'===n.eventType?v.onBlur(n):'select'===n.eventType&&(v.getDisabled()||v.onPress(n)))})}return(0,u.default)(t,[{key:"destroy",value:function(){this._tvEventHandler.disable()}}]),t})();e.default=v},229,[1,31,32,11,89,56,217]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),p=t(r(d[6])),u=t(r(d[7])),f=t(r(d[8])),y=(r(d[9]),t(r(d[10]))),h=t(r(d[11])),b=t(r(d[12])),v=t(r(d[13])),P=t(r(d[14])),F=(function(t,s){if(!s&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=O(s);if(o&&o.has(t))return o.get(t);var n={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(n,l,p):n[l]=t[l]}n.default=t,o&&o.set(t,n);return n})(r(d[15]));function O(t){if("function"!=typeof WeakMap)return null;var s=new WeakMap,o=new WeakMap;return(O=function(t){return t?o:s})(t)}function _(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var R=(function(t){(0,l.default)(D,t);var O,R,w=(O=D,R=_(),function(){var t,s=(0,u.default)(O);if(R){var o=(0,u.default)(this).constructor;t=Reflect.construct(s,arguments,o)}else t=s.apply(this,arguments);return(0,p.default)(this,t)});function D(){var t;(0,n.default)(this,D);for(var s=arguments.length,o=new Array(s),c=0;c1&&void 0!==arguments[1]?arguments[1]:{}).iterations;return j},event:function(t,n){return null},createAnimatedComponent:y,attachNativeEvent:f,forkEvent:s.forkEvent,unforkEvent:s.unforkEvent,Event:c,__PropsOnlyForTests:v}},232,[54,233,242,235,236,248,234,253,261]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),v=r(d[3]),o=r(d[4]),c=r(d[5]),l=r(d[3]).shouldUseNativeDriver;function u(t,n,l){var u=[];c(l[0]&&l[0].nativeEvent,'Native driven events only support animated values contained inside `nativeEvent`.'),(function t(n,v){if(n instanceof s)n.__makeNative(),u.push({nativeEventPath:v,animatedValueTag:n.__getNativeTag()});else if('object'==typeof n)for(var o in n)t(n[o],v.concat(o))})(l[0].nativeEvent,[]);var h=o.findNodeHandle(t);return null!=h&&u.forEach(function(t){v.API.addAnimatedEventToView(h,n,t)}),{detach:function(){null!=h&&u.forEach(function(t){v.API.removeAnimatedEventFromView(h,n,t.animatedValueTag)})}}}var h=(function(){function v(n,s){t(this,v),this._listeners=[],this._argMapping=n,null==s&&(console.warn('Animated.event now requires a second argument for options'),s={useNativeDriver:!1}),s.listener&&this.__addListener(s.listener),this._callListeners=this._callListeners.bind(this),this._attachedEvent=null,this.__isNative=l(s)}return n(v,[{key:"__addListener",value:function(t){this._listeners.push(t)}},{key:"__removeListener",value:function(t){this._listeners=this._listeners.filter(function(n){return n!==t})}},{key:"__attach",value:function(t,n){c(this.__isNative,'Only native driven events need to be attached.'),this._attachedEvent=u(t,n,this._argMapping)}},{key:"__detach",value:function(t,n){c(this.__isNative,'Only native driven events need to be detached.'),this._attachedEvent&&this._attachedEvent.detach()}},{key:"__getHandler",value:function(){var t=this;if(this.__isNative)return this._callListeners;return function(){for(var n=arguments.length,v=new Array(n),o=0;oo){if('identity'===l)return h;'clamp'===l&&(h=o)}return u===c?u:n===o?t<=n?u:c:(n===-1/0?h=-h:o===1/0?h-=n:h=(h-n)/(o-n),h=p(h),u===-1/0?h=-h:c===1/0?h+=u:h=h*(c-u)+u,h)}function j(t){var n=R(t);return null===n||'number'!=typeof n?t:"rgba("+((4278190080&(n=n||0))>>>24)+", "+((16711680&n)>>>16)+", "+((65280&n)>>>8)+", "+(255&n)/255+")"}var k=/[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;function w(t){var n=t.outputRange;y(n.length>=2,'Bad output range'),P(n=n.map(j));var o=n[0].match(k).map(function(){return[]});n.forEach(function(t){t.match(k).forEach(function(t,n){o[n].push(+t)})});var u,c=n[0].match(k).map(function(n,u){return x(s(s({},t),{},{outputRange:o[u]}))}),p='string'==typeof(u=n[0])&&u.startsWith('rgb');return function(t){var o=0;return n[0].replace(k,function(){var n=+c[o++](t);return p&&(n=o<4?Math.round(n):Math.round(1e3*n)/1e3),String(n)})}}function P(t){for(var n=t[0].replace(k,''),o=1;o=t);++o);return o-1}function C(t){y(t.length>=2,'inputRange must have at least 2 elements');for(var n=1;n=t[n-1],'inputRange must be monotonically non-decreasing '+t)}function E(t,n){y(n.length>=2,t+' must have at least 2 elements'),y(2!==n.length||n[0]!==-1/0||n[1]!==1/0,t+'cannot be ]-infinity;+infinity[ '+n)}var L=(function(f){u(b,v);var h,s,R=(h=b,s=l(),function(){var t,n=p(h);if(s){var o=p(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return c(this,t)});function b(n,o){var u;return t(this,b),(u=R.call(this))._parent=n,u._config=o,u._interpolation=x(o),u}return n(b,[{key:"__makeNative",value:function(){this._parent.__makeNative(),o(p(b.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._parent.__getValue();return y('number'==typeof t,'Cannot interpolate an input which is not a number.'),this._interpolation(t)}},{key:"interpolate",value:function(t){return new b(this,t)}},{key:"__attach",value:function(){this._parent.__addChild(this)}},{key:"__detach",value:function(){this._parent.__removeChild(this),o(p(b.prototype),"__detach",this).call(this)}},{key:"__transformDataType",value:function(t){return t.map(_.transformDataType)}},{key:"__getNativeConfig",value:function(){return{inputRange:this._config.inputRange,outputRange:this.__transformDataType(this._config.outputRange),extrapolateLeft:this._config.extrapolateLeft||this._config.extrapolate||'extend',extrapolateRight:this._config.extrapolateRight||this._config.extrapolate||'extend',type:'interpolation'}}}]),b})();L.__createInterpolation=x,m.exports=L},235,[31,32,39,42,44,41,54,236,239,237,11,69]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),_=s.API,u=r(d[3]),o=1,v=(function(){function v(){t(this,v),this._listeners={}}return n(v,[{key:"__attach",value:function(){}},{key:"__detach",value:function(){this.__isNative&&null!=this.__nativeTag&&(s.API.dropAnimatedNode(this.__nativeTag),this.__nativeTag=void 0)}},{key:"__getValue",value:function(){}},{key:"__getAnimatedValue",value:function(){return this.__getValue()}},{key:"__addChild",value:function(t){}},{key:"__removeChild",value:function(t){}},{key:"__getChildren",value:function(){return[]}},{key:"__makeNative",value:function(){if(!this.__isNative)throw new Error('This node cannot be made a "native" animated node');this.hasListeners()&&this._startListeningToNativeValueUpdates()}},{key:"addListener",value:function(t){var n=String(o++);return this._listeners[n]=t,this.__isNative&&this._startListeningToNativeValueUpdates(),n}},{key:"removeListener",value:function(t){delete this._listeners[t],this.__isNative&&!this.hasListeners()&&this._stopListeningForNativeValueUpdates()}},{key:"removeAllListeners",value:function(){this._listeners={},this.__isNative&&this._stopListeningForNativeValueUpdates()}},{key:"hasListeners",value:function(){return!!Object.keys(this._listeners).length}},{key:"_startListeningToNativeValueUpdates",value:function(){var t=this;this.__nativeAnimatedValueListener&&!this.__shouldUpdateListenersForNewNativeTag||(this.__shouldUpdateListenersForNewNativeTag&&(this.__shouldUpdateListenersForNewNativeTag=!1,this._stopListeningForNativeValueUpdates()),_.startListeningToAnimatedNodeValue(this.__getNativeTag()),this.__nativeAnimatedValueListener=s.nativeEventEmitter.addListener('onAnimatedValueUpdate',function(n){n.tag===t.__getNativeTag()&&t._onAnimatedValueUpdateReceived(n.value)}))}},{key:"_onAnimatedValueUpdateReceived",value:function(t){this.__callListeners(t)}},{key:"__callListeners",value:function(t){for(var n in this._listeners)this._listeners[n]({value:t})}},{key:"_stopListeningForNativeValueUpdates",value:function(){this.__nativeAnimatedValueListener&&(this.__nativeAnimatedValueListener.remove(),this.__nativeAnimatedValueListener=null,_.stopListeningToAnimatedNodeValue(this.__getNativeTag()))}},{key:"__getNativeTag",value:function(){var t;s.assertNativeAnimatedModule(),u(this.__isNative,'Attempt to get native tag from node not marked as "native"');var n=null!=(t=this.__nativeTag)?t:s.generateNewNodeTag();return null==this.__nativeTag&&(this.__nativeTag=n,s.API.createAnimatedNode(n,this.__getNativeConfig()),this.__shouldUpdateListenersForNewNativeTag=!0),n}},{key:"__getNativeConfig",value:function(){throw new Error('This JS animated node type cannot be used as native animated node')}},{key:"toJSON",value:function(){return this.__getValue()}}]),v})();m.exports=v},236,[31,32,237,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),o=n(r(d[1])),l=n(r(d[2])),u=n(r(d[3])),s=1,f=1,v=!1,c=[],N={enableQueue:function(){v=!0},disableQueue:function(){(0,u.default)(l.default,'Native animated module is not available'),v=!1;for(var t=0,n=c.length;t=t.length?{done:!0}:{done:!1,value:t[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(t,n){if(t){if("string"==typeof t)return h(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?h(t,n):void 0}}function h(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,c=new Array(n);o0?setTimeout(I,0):setImmediate(I))}function I(){w=0;var t=f.size;p.forEach(function(n){return f.add(n)}),v.forEach(function(n){return f.delete(n)});var o=f.size;if(0!==t&&0===o?u.emit(l.Events.interactionComplete):0===t&&0!==o&&u.emit(l.Events.interactionStart),0===o)for(;h.hasTasksToProcess();)if(h.processNext(),E>0&&n.getEventLoopRunningTime()>=E){k();break}p.clear(),v.clear()}m.exports=l},240,[25,47,241,142,11,221]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]);function s(t,n){var u=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),u.push.apply(u,s)}return u}function o(n){for(var u=1;u0||0===n})}},{key:"hasTasksToProcess",value:function(){return this._getCurrentQueue().length>0}},{key:"processNext",value:function(){var t=this._getCurrentQueue();if(t.length){var n=t.shift();try{n.gen?this._genPromise(n):n.run?n.run():(c('function'==typeof n,'Expected Function, SimpleTask, or PromiseTask, but got:\n'+JSON.stringify(n,null,2)),n())}catch(t){throw t.message='TaskQueue: Error with task '+(n.name||'')+': '+t.message,t}}}},{key:"_getCurrentQueue",value:function(){var t=this._queueStack.length-1,n=this._queueStack[t];return n.popable&&0===n.tasks.length&&this._queueStack.length>1?(this._queueStack.pop(),this._getCurrentQueue()):n.tasks}},{key:"_genPromise",value:function(t){var n=this;this._queueStack.push({tasks:[],popable:!1});var u=this._queueStack.length-1;t.gen().then(function(){n._queueStack[u].popable=!0,n.hasTasksToProcess()&&n._onMoreTasks()}).catch(function(n){throw n.message="TaskQueue: Error resolving Promise in task "+t.name+": "+n.message,n}).done()}}]),t})();m.exports=h},241,[54,31,32,142,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);function n(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function o(o){for(var u=1;u1&&void 0!==arguments[1]?arguments[1]:{},o=n.iterations,u=void 0===o?-1:o,s=n.resetBeforeIteration,c=void 0===s||s,f=!1,v=0;return{start:function(n){t&&0!==u?t._isUsingNativeDriver()?t._startNativeLoop(u):(function o(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{finished:!0};f||v===u||!1===s.finished?n&&n(s):(v++,c&&t.reset(),t.start(o))})():n&&n({finished:!0})},stop:function(){f=!0,t.stop()},reset:function(){v=0,f=!1,t.reset()},_startNativeLoop:function(){throw new Error('Loops run using the native driver cannot contain Animated.loop animations')},_isUsingNativeDriver:function(){return t._isUsingNativeDriver()}}},event:function(t,n){var o=new s(t,n);return o.__isNative?o:o.__getHandler()},createAnimatedComponent:A,attachNativeEvent:c,forkEvent:function(t,n){return t?t instanceof s?(t.__addListener(n),t):function(){'function'==typeof t&&t.apply(void 0,arguments),n.apply(void 0,arguments)}:n},unforkEvent:function(t,n){t&&t instanceof s&&t.__removeListener(n)},Event:s,__PropsOnlyForTests:y}},242,[54,233,243,244,245,235,246,247,236,248,251,252,234,253,254,256,258,261]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),u=r(d[3]),o=r(d[4]),c=r(d[5]);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var h=r(d[6]),l=(r(d[7]),r(d[8])),f=r(d[9]),v=(function(v){u(b,f);var y,p,k=(y=b,p=s(),function(){var t,n=c(y);if(p){var _=c(this).constructor;t=Reflect.construct(n,arguments,_)}else t=n.apply(this,arguments);return o(this,t)});function b(n,_){var u;return t(this,b),(u=k.call(this))._a='number'==typeof n?new l(n):n,u._b='number'==typeof _?new l(_):_,u}return n(b,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),_(c(b.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()+this._b.__getValue()}},{key:"interpolate",value:function(t){return new h(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),_(c(b.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'addition',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),b})();m.exports=v},243,[31,32,39,42,44,41,235,236,234,239]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]),_=r(d[3]),l=r(d[4]),c=r(d[5]);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var o=r(d[6]),h=(r(d[7]),r(d[8])),f=(function(f){_(k,h);var v,p,y=(v=k,p=s(),function(){var t,n=c(v);if(p){var u=c(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return l(this,t)});function k(n,u,_){var l;return t(this,k),(l=y.call(this))._a=n,l._min=u,l._max=_,l._value=l._lastValue=l._a.__getValue(),l}return n(k,[{key:"__makeNative",value:function(){this._a.__makeNative(),u(c(k.prototype),"__makeNative",this).call(this)}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),n=t-this._lastValue;return this._lastValue=t,this._value=Math.min(Math.max(this._value+n,this._min),this._max),this._value}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),u(c(k.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'diffclamp',input:this._a.__getNativeTag(),min:this._min,max:this._max}}}]),k})();m.exports=f},244,[31,32,39,42,44,41,235,236,239]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var h=r(d[6]),l=(r(d[7]),r(d[8])),f=r(d[9]),v=(function(v){o(b,f);var y,p,k=(y=b,p=s(),function(){var t,n=c(y);if(p){var _=c(this).constructor;t=Reflect.construct(n,arguments,_)}else t=n.apply(this,arguments);return u(this,t)});function b(n,_){var o;return t(this,b),(o=k.call(this))._a='number'==typeof n?new l(n):n,o._b='number'==typeof _?new l(_):_,o}return n(b,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),_(c(b.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),n=this._b.__getValue();return 0===n&&console.error('Detected division by zero in AnimatedDivision'),t/n}},{key:"interpolate",value:function(t){return new h(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),_(c(b.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'division',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),b})();m.exports=v},245,[31,32,39,42,44,41,235,236,234,239]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=r(d[1]),n=r(d[2]),o=r(d[3]),c=r(d[4]),s=r(d[5]);function _(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var l=r(d[6]),h=(r(d[7]),r(d[8])),f=(function(f){o(k,h);var v,y,p=(v=k,y=_(),function(){var t,u=s(v);if(y){var n=s(this).constructor;t=Reflect.construct(u,arguments,n)}else t=u.apply(this,arguments);return c(this,t)});function k(u,n){var o;return t(this,k),(o=p.call(this))._a=u,o._modulus=n,o}return u(k,[{key:"__makeNative",value:function(){this._a.__makeNative(),n(s(k.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),n(s(k.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'modulus',input:this._a.__getNativeTag(),modulus:this._modulus}}}]),k})();m.exports=f},246,[31,32,39,42,44,41,235,236,239]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),u=r(d[3]),o=r(d[4]),c=r(d[5]);function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var s=r(d[6]),h=(r(d[7]),r(d[8])),f=r(d[9]),v=(function(v){u(b,f);var p,y,k=(p=b,y=l(),function(){var t,n=c(p);if(y){var _=c(this).constructor;t=Reflect.construct(n,arguments,_)}else t=n.apply(this,arguments);return o(this,t)});function b(n,_){var u;return t(this,b),(u=k.call(this))._a='number'==typeof n?new h(n):n,u._b='number'==typeof _?new h(_):_,u}return n(b,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),_(c(b.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()*this._b.__getValue()}},{key:"interpolate",value:function(t){return new s(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),_(c(b.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'multiplication',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),b})();m.exports=v},247,[31,32,39,42,44,41,235,236,234,239]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),_=r(d[5]),u=r(d[6]);function v(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function f(n){for(var o=1;o0,'Stiffness value must be greater than 0'),c(V._damping>0,'Damping value must be greater than 0'),c(V._mass>0,'Mass value must be greater than 0'),V}return s(b,[{key:"__getNativeAnimationConfig",value:function(){var t;return{type:'spring',overshootClamping:this._overshootClamping,restDisplacementThreshold:this._restDisplacementThreshold,restSpeedThreshold:this._restSpeedThreshold,stiffness:this._stiffness,damping:this._damping,mass:this._mass,initialVelocity:null!=(t=this._initialVelocity)?t:this._lastVelocity,toValue:this._toValue,iterations:this.__iterations}}},{key:"start",value:function(t,s,n,o,l){var h=this;if(this.__active=!0,this._startPosition=t,this._lastPosition=this._startPosition,this._onUpdate=s,this.__onEnd=n,this._lastTime=Date.now(),this._frameTime=0,o instanceof b){var _=o.getInternalState();this._lastPosition=_.lastPosition,this._lastVelocity=_.lastVelocity,this._initialVelocity=this._lastVelocity,this._lastTime=_.lastTime}var u=function(){h._useNativeDriver?h.__startNativeAnimation(l):h.onUpdate()};this._delay?this._timeout=setTimeout(u,this._delay):u()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var t=Date.now();t>this._lastTime+64&&(t=this._lastTime+64);var s=(t-this._lastTime)/1e3;this._frameTime+=s;var n=this._damping,o=this._mass,l=this._stiffness,h=-this._initialVelocity,_=n/(2*Math.sqrt(l*o)),u=Math.sqrt(l/o),f=u*Math.sqrt(1-_*_),c=this._toValue-this._startPosition,v=0,p=0,y=this._frameTime;if(_<1){var V=Math.exp(-_*u*y);v=this._toValue-V*((h+_*u*c)/f*Math.sin(f*y)+c*Math.cos(f*y)),p=_*u*V*(Math.sin(f*y)*(h+_*u*c)/f+c*Math.cos(f*y))-V*(Math.cos(f*y)*(h+_*u*c)-f*c*Math.sin(f*y))}else{var T=Math.exp(-u*y);v=this._toValue-T*(c+(h+u*c)*y),p=T*(h*(y*u-1)+y*c*(u*u))}if(this._lastTime=t,this._lastPosition=v,this._lastVelocity=p,this._onUpdate(v),this.__active){var b=!1;this._overshootClamping&&0!==this._stiffness&&(b=this._startPositionthis._toValue:v18&&A<=44?p(A):h(A),s(2*M-M*M,v,.01));return{stiffness:n(x),damping:t(B)}}}},257,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),u=r(d[4]),_=r(d[5]);function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[6]),r(d[7]),r(d[8]);var l,c=r(d[9]),f=r(d[10]).shouldUseNativeDriver;function v(){if(!l){var t=r(d[11]);l=t.inOut(t.ease)}return l}var p=(function(l){o(U,c);var p,y,V=(p=U,y=h(),function(){var t,n=_(p);if(y){var s=_(this).constructor;t=Reflect.construct(n,arguments,s)}else t=n.apply(this,arguments);return u(this,t)});function U(n){var s,o,u,_,h,l;return t(this,U),(l=V.call(this))._toValue=n.toValue,l._easing=null!=(s=n.easing)?s:v(),l._duration=null!=(o=n.duration)?o:500,l._delay=null!=(u=n.delay)?u:0,l.__iterations=null!=(_=n.iterations)?_:1,l._useNativeDriver=f(n),l.__isInteraction=null!=(h=n.isInteraction)?h:!l._useNativeDriver,l}return n(U,[{key:"__getNativeAnimationConfig",value:function(){for(var t=[],n=Math.round(this._duration/16.666666666666668),s=0;s=this._startTime+this._duration)return 0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0});this._onUpdate(this._fromValue+this._easing((t-this._startTime)/this._duration)*(this._toValue-this._fromValue)),this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this)))}},{key:"stop",value:function(){s(_(U.prototype),"stop",this).call(this),this.__active=!1,clearTimeout(this._timeout),g.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),U})();m.exports=p},258,[31,32,39,42,44,41,234,253,235,255,237,259]); +__d(function(g,r,i,a,m,e,d){'use strict';var n,u=r(d[0]),t=r(d[1]),o=(function(){function o(){u(this,o)}return t(o,null,[{key:"step0",value:function(n){return n>0?1:0}},{key:"step1",value:function(n){return n>=1?1:0}},{key:"linear",value:function(n){return n}},{key:"ease",value:function(u){return n||(n=o.bezier(.42,0,1,1)),n(u)}},{key:"quad",value:function(n){return n*n}},{key:"cubic",value:function(n){return n*n*n}},{key:"poly",value:function(n){return function(u){return Math.pow(u,n)}}},{key:"sin",value:function(n){return 1-Math.cos(n*Math.PI/2)}},{key:"circle",value:function(n){return 1-Math.sqrt(1-n*n)}},{key:"exp",value:function(n){return Math.pow(2,10*(n-1))}},{key:"elastic",value:function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)*Math.PI;return function(u){return 1-Math.pow(Math.cos(u*Math.PI/2),3)*Math.cos(u*n)}}},{key:"back",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1.70158;return function(u){return u*u*((n+1)*u-n)}}},{key:"bounce",value:function(n){if(n<.36363636363636365)return 7.5625*n*n;if(n<.7272727272727273){var u=n-.5454545454545454;return 7.5625*u*u+.75}if(n<.9090909090909091){var t=n-.8181818181818182;return 7.5625*t*t+.9375}var o=n-.9545454545454546;return 7.5625*o*o+.984375}},{key:"bezier",value:function(n,u,t,o){return r(d[2])(n,u,t,o)}},{key:"in",value:function(n){return n}},{key:"out",value:function(n){return function(u){return 1-n(1-u)}}},{key:"inOut",value:function(n){return function(u){return u<.5?n(2*u)/2:1-n(2*(1-u))/2}}}]),o})();m.exports=o},259,[31,32,260]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=4,t=.001,u=1e-7,o=10,f=.1,c='function'==typeof Float32Array;function v(n,t){return 1-3*t+3*n}function s(n,t){return 3*t-6*n}function w(n){return 3*n}function l(n,t,u){return((v(t,u)*n+s(t,u))*n+w(t))*n}function y(n,t,u){return 3*v(t,u)*n*n+2*s(t,u)*n+w(t)}function b(n,t,f,c,v){var s,w,y=0,b=t,h=f;do{(s=l(w=b+(h-b)/2,c,v)-n)>0?h=w:b=w}while(Math.abs(s)>u&&++y=0&&n<=1&&o>=0&&o<=1))throw new Error('bezier x values must be in [0, 1] range');var s=c?new Float32Array(11):new Array(11);if(n!==u||o!==v)for(var w=0;w<11;++w)s[w]=l(w*f,n,o);function A(u){for(var c=0,v=1;10!==v&&s[v]<=u;++v)c+=f;var w=c+(u-s[--v])/(s[v+1]-s[v])*f,l=y(w,n,o);return l>=t?h(u,w,n,o):0===l?w:b(u,c,c+f,n,o)}return function(t){return n===u&&o===v?t:0===t?0:1===t?1:l(A(t),u,v)}}},260,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),c=r(d[4]),s=r(d[5]);function p(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var u=r(d[6]).AnimatedEvent,_=r(d[7]),v=r(d[8]),f=r(d[9]),h=r(d[10]);m.exports=function(N){f('function'!=typeof N||N.prototype&&N.prototype.isReactComponent,"`createAnimatedComponent` does not support stateless functional components; use a class component instead.");var y=(function(f){l(k,f);var y,R,A=(y=k,R=p(),function(){var t,n=s(y);if(R){var o=s(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return c(this,t)});function k(){var t;n(this,k);for(var o=arguments.length,l=new Array(o),c=0;c>'),n})}}),t}return o(k,[{key:"_attachNativeEvents",value:function(){var t,n=this,o=null!=(t=this._component)&&t.getScrollableNode?this._component.getScrollableNode():this._component,l=function(t){var l=n.props[t];l instanceof u&&l.__isNative&&(l.__attach(o,t),n._eventDetachers.push(function(){return l.__detach(o,t)}))};for(var c in this.props)l(c)}},{key:"_detachNativeEvents",value:function(){this._eventDetachers.forEach(function(t){return t()}),this._eventDetachers=[]}},{key:"_attachProps",value:function(t){var n=this._propsAnimated;this._propsAnimated=new _(t,this._animatedPropsCallback),n&&(n.__restoreDefaultValues(),n.__detach())}},{key:"render",value:function(){var n=this._propsAnimated.__getValue();return v.createElement(N,t({},n,{ref:this._setComponentRef,collapsable:!this._propsAnimated.__isNative&&n.collapsable}))}},{key:"UNSAFE_componentWillMount",value:function(){this._attachProps(this.props)}},{key:"componentDidMount",value:function(){this._invokeAnimatedPropsCallbackOnMount&&(this._invokeAnimatedPropsCallbackOnMount=!1,this._animatedPropsCallback()),this._propsAnimated.setNativeView(this._component),this._attachNativeEvents()}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){this._attachProps(t)}},{key:"componentDidUpdate",value:function(t){this._component!==this._prevComponent&&this._propsAnimated.setNativeView(this._component),this._component===this._prevComponent&&t===this.props||(this._detachNativeEvents(),this._attachNativeEvents())}},{key:"componentWillUnmount",value:function(){this._propsAnimated&&this._propsAnimated.__detach(),this._detachNativeEvents()}}]),k})(v.Component);return v.forwardRef(function(n,o){return v.createElement(y,t({},n,null==o?null:{forwardedRef:o}))})}},261,[9,31,32,42,44,41,233,248,6,11,262]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){var n=t.getForwardedRef,o=t.setLocalRef;return function(t){var c=n();o(t),'function'==typeof c?c(t):'object'==typeof c&&null!=c&&(c.current=t)}}},262,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var f=o(n);if(f&&f.has(t))return f.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,f&&f.set(t,u);return u})(r(d[2]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,f=new WeakMap;return(o=function(t){return t?f:n})(t)}var f=r(d[3]),u=r(d[4]),c=n.forwardRef(function(o,u){return n.createElement(f,(0,t.default)({scrollEventThrottle:1e-4},o,{ref:u}))});m.exports=u(c)},263,[1,9,6,264,261]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=t(r(d[6])),f=t(r(d[7])),p=t(r(d[8]));function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function y(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function v(t){for(var n=1;n1){for(var s=[],u=0;u1?Math.ceil(t.length/o):t.length}return 0},n._keyExtractor=function(t,o){var l=n.props,s=l.keyExtractor,u=l.numColumns;return u>1?(I(Array.isArray(t),"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.",u),t.map(function(t,n){return s(t,o*u+n)}).join(':')):s(t,o)},n._renderer=function(){var t=n.props,o=t.ListItemComponent,l=t.renderItem,s=t.numColumns,u=t.columnWrapperStyle,c=o?'ListItemComponent':'renderItem',f=function(t){return o?b.createElement(o,t):l?l(t):null};return(0,p.default)({},c,function(t){if(s>1){var n=t.item,o=t.index;return I(Array.isArray(n),'Expected array of items with numColumns > 1'),b.createElement(w,{style:k.compose(O.row,u)},n.map(function(n,l){var u=f({item:n,index:o*s+l,separators:t.separators});return null!=u?b.createElement(b.Fragment,{key:l},u):null}))}return f(t)})},n._checkProps(n.props),n.props.viewabilityConfigCallbackPairs?n._virtualizedListPairs=n.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityConfig:t.viewabilityConfig,onViewableItemsChanged:n._createOnViewableItemsChanged(t.onViewableItemsChanged)}}):n.props.onViewableItemsChanged&&n._virtualizedListPairs.push({viewabilityConfig:n.props.viewabilityConfig,onViewableItemsChanged:n._createOnViewableItemsChanged(n.props.onViewableItemsChanged)}),n}return(0,s.default)(x,[{key:"scrollToEnd",value:function(t){this._listRef&&this._listRef.scrollToEnd(t)}},{key:"scrollToIndex",value:function(t){this._listRef&&this._listRef.scrollToIndex(t)}},{key:"scrollToItem",value:function(t){this._listRef&&this._listRef.scrollToItem(t)}},{key:"scrollToOffset",value:function(t){this._listRef&&this._listRef.scrollToOffset(t)}},{key:"recordInteraction",value:function(){this._listRef&&this._listRef.recordInteraction()}},{key:"flashScrollIndicators",value:function(){this._listRef&&this._listRef.flashScrollIndicators()}},{key:"getScrollResponder",value:function(){if(this._listRef)return this._listRef.getScrollResponder()}},{key:"getNativeScrollRef",value:function(){if(this._listRef)return this._listRef.getScrollRef()}},{key:"getScrollableNode",value:function(){if(this._listRef)return this._listRef.getScrollableNode()}},{key:"setNativeProps",value:function(t){this._listRef&&this._listRef.setNativeProps(t)}},{key:"componentDidUpdate",value:function(t){I(t.numColumns===this.props.numColumns,"Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component."),I(t.onViewableItemsChanged===this.props.onViewableItemsChanged,'Changing onViewableItemsChanged on the fly is not supported'),I(!C(t.viewabilityConfig,this.props.viewabilityConfig),'Changing viewabilityConfig on the fly is not supported'),I(t.viewabilityConfigCallbackPairs===this.props.viewabilityConfigCallbackPairs,'Changing viewabilityConfigCallbackPairs on the fly is not supported'),this._checkProps(this.props)}},{key:"_checkProps",value:function(t){var n=t.getItem,o=t.getItemCount,l=t.horizontal,s=t.numColumns,u=t.columnWrapperStyle,c=t.onViewableItemsChanged,f=t.viewabilityConfigCallbackPairs;I(!n&&!o,'FlatList does not support custom data formats.'),s>1?I(!l,'numColumns does not support horizontal.'):I(!u,'columnWrapperStyle not supported for single column lists'),I(!(c&&f),"FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.")}},{key:"_pushMultiColumnViewable",value:function(t,n){var o=this.props,l=o.numColumns,s=o.keyExtractor;n.item.forEach(function(o,u){I(null!=n.index,'Missing index!');var c=n.index*l+u;t.push(v(v({},n),{},{item:o,key:s(o,c),index:c}))})}},{key:"_createOnViewableItemsChanged",value:function(t){var n=this;return function(o){var l=n.props.numColumns;if(t)if(l>1){var s=[],u=[];o.viewableItems.forEach(function(t){return n._pushMultiColumnViewable(u,t)}),o.changed.forEach(function(t){return n._pushMultiColumnViewable(s,t)}),t({viewableItems:u,changed:s})}else t(o)}}},{key:"render",value:function(){var t=this.props,l=(t.numColumns,t.columnWrapperStyle,(0,o.default)(t,["numColumns","columnWrapperStyle"]));return b.createElement(_,(0,n.default)({},l,{getItem:this._getItem,getItemCount:this._getItemCount,keyExtractor:this._keyExtractor,ref:this._captureRef,viewabilityConfigCallbackPairs:this._virtualizedListPairs},this._renderer()))}}]),x})(b.PureComponent);P.defaultProps=R;var O=k.create({row:{flexDirection:'row'}});m.exports=P},264,[1,9,60,31,32,42,44,41,54,56,196,6,86,265,62,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),l=r(d[4]),c=r(d[5]),h=r(d[6]),u=r(d[7]);function p(t,s){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=f(t))||s&&t&&"number"==typeof t.length){n&&(t=n);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(t,s){if(t){if("string"==typeof t)return y(t,s);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(t,s):void 0}}function y(t,s){(null==s||s>t.length)&&(s=t.length);for(var n=0,o=new Array(s);n0&&s>0&&null!=c.props.initialScrollIndex&&c.props.initialScrollIndex>0&&!c._hasDoneInitialScroll&&(c.scrollToIndex({animated:!1,index:c.props.initialScrollIndex}),c._hasDoneInitialScroll=!0),c.props.onContentSizeChange&&c.props.onContentSizeChange(t,s),c._scrollMetrics.contentLength=c._selectLength({height:s,width:t}),c._scheduleCellsToRenderUpdate(),c._maybeCallOnEndReached()},c._convertParentScrollMetrics=function(t){var s=t.offset-c._offsetFromParentVirtualizedList,n=t.visibleLength,o=s-c._scrollMetrics.offset;return{visibleLength:n,contentLength:c._scrollMetrics.contentLength,offset:s,dOffset:o}},c._onScroll=function(t){c._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScroll(t)}),c.props.onScroll&&c.props.onScroll(t);var s=t.timeStamp,n=c._selectLength(t.nativeEvent.layoutMeasurement),o=c._selectLength(t.nativeEvent.contentSize),l=c._selectOffset(t.nativeEvent.contentOffset),h=l-c._scrollMetrics.offset;if(c._isNestedWithSameOrientation()){if(0===c._scrollMetrics.contentLength)return;var u=c._convertParentScrollMetrics({visibleLength:n,offset:l});n=u.visibleLength,o=u.contentLength,l=u.offset,h=u.dOffset}var p=c._scrollMetrics.timestamp?Math.max(1,s-c._scrollMetrics.timestamp):1,f=h/p;p>500&&c._scrollMetrics.dt>500&&o>5*n&&!c._hasWarned.perf&&(O("VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.",{dt:p,prevDt:c._scrollMetrics.dt,contentLength:o}),c._hasWarned.perf=!0),c._scrollMetrics={contentLength:o,dt:p,dOffset:h,offset:l,timestamp:s,velocity:f,visibleLength:n},c._updateViewableItems(c.props.data),c.props&&(c._maybeCallOnEndReached(),0!==f&&c._fillRateHelper.activate(),c._computeBlankness(),c._scheduleCellsToRenderUpdate())},c._onScrollBeginDrag=function(t){c._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScrollBeginDrag(t)}),c._viewabilityTuples.forEach(function(t){t.viewabilityHelper.recordInteraction()}),c._hasInteracted=!0,c.props.onScrollBeginDrag&&c.props.onScrollBeginDrag(t)},c._onScrollEndDrag=function(t){var s=t.nativeEvent.velocity;s&&(c._scrollMetrics.velocity=c._selectOffset(s)),c._computeBlankness(),c.props.onScrollEndDrag&&c.props.onScrollEndDrag(t)},c._onMomentumScrollEnd=function(t){c._scrollMetrics.velocity=0,c._computeBlankness(),c.props.onMomentumScrollEnd&&c.props.onMomentumScrollEnd(t)},c._updateCellsToRender=function(){var t=c.props,s=t.data,n=t.getItemCount,o=t.onEndReachedThreshold,l=c._isVirtualizationDisabled();c._updateViewableItems(s),s&&c.setState(function(t){var h,u=c._scrollMetrics,f=u.contentLength,y=u.offset,_=u.visibleLength;if(l){var v=f-_-y0&&f>0&&(c.props.initialScrollIndex&&!c._scrollMetrics.offset||(h=K(c.props,t,c._getFrameMetricsApprox,c._scrollMetrics)));if(h&&c._nestedChildLists.size>0)for(var C=h.first,L=h.last,b=C;b<=L;b++){var S=c._indicesToKeys.get(b),I=S&&c._cellKeysToChildListKeys.get(S);if(I){for(var R,x=!1,M=p(I);!(R=M()).done;){var k=R.value,w=c._nestedChildLists.get(k);if(w&&w.ref&&w.ref.hasMore()){x=!0;break}}if(x){h.last=b;break}}}return null!=h&&h.first===t.first&&h.last===t.last&&(h=null),h})},c._createViewToken=function(t,s){var n=c.props,o=n.data,l=n.getItem,h=n.keyExtractor,u=l(o,t);return{index:t,item:u,key:h(u,t),isViewable:s}},c._getFrameMetricsApprox=function(t){var s=c._getFrameMetrics(t);if(s&&s.index===t)return s;var n=c.props.getItemLayout;return T(!n,'Should not have to estimate frames when a measurement metrics function is provided'),{length:c._averageCellLength,offset:c._averageCellLength*t}},c._getFrameMetrics=function(t){var s=c.props,n=s.data,o=s.getItem,l=s.getItemCount,h=s.getItemLayout,u=s.keyExtractor;T(l(n)>t,'Tried to get frame for out of range index '+t);var p=o(n,t),f=p&&c._frames[u(p,t)];return f&&f.index===t||h&&(f=h(n,t)),f},T(!s.onScroll||!s.onScroll.__isNative,"Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver"),T(s.windowSize>0,'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.'),c._fillRateHelper=new S(c._getFrameMetrics),c._updateCellsToRenderBatcher=new b(c._updateCellsToRender,c.props.updateCellsBatchingPeriod),c.props.viewabilityConfigCallbackPairs?c._viewabilityTuples=c.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityHelper:new z(t.viewabilityConfig),onViewableItemsChanged:t.onViewableItemsChanged}}):c.props.onViewableItemsChanged&&c._viewabilityTuples.push({viewabilityHelper:new z(c.props.viewabilityConfig),onViewableItemsChanged:c.props.onViewableItemsChanged});var h={first:c.props.initialScrollIndex||0,last:Math.min(c.props.getItemCount(c.props.data),(c.props.initialScrollIndex||0)+c.props.initialNumToRender)-1};if(c._isNestedWithSameOrientation()){var y=c.context.virtualizedList.getNestedChildState(c._getListKey());y&&(h=y,c.state=y,c._frames=y.frames)}return c.state=h,c}return o(f,[{key:"scrollToEnd",value:function(t){var s=!t||t.animated,n=this.props.getItemCount(this.props.data)-1,o=this._getFrameMetricsApprox(n),l=Math.max(0,o.offset+o.length+this._footerLength-this._scrollMetrics.visibleLength);null!=this._scrollRef&&this._scrollRef.scrollTo(this.props.horizontal?{x:l,animated:s}:{y:l,animated:s})}},{key:"scrollToIndex",value:function(t){var s=this.props,n=s.data,o=s.horizontal,l=s.getItemCount,c=s.getItemLayout,h=s.onScrollToIndexFailed,u=t.animated,p=t.index,f=t.viewOffset,y=t.viewPosition;if(T(p>=0&&pthis._highestMeasuredFrameIndex)return T(!!h,"scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures."),void h({averageItemLength:this._averageCellLength,highestMeasuredFrameIndex:this._highestMeasuredFrameIndex,index:p});var _=this._getFrameMetricsApprox(p),v=Math.max(0,_.offset-(y||0)*(this._scrollMetrics.visibleLength-_.length))-(f||0);null!=this._scrollRef&&this._scrollRef.scrollTo(o?{x:v,animated:u}:{y:v,animated:u})}},{key:"scrollToItem",value:function(t){for(var s=t.item,n=this.props,o=n.data,l=n.getItem,c=(0,n.getItemCount)(o),h=0;h0){P=!1,F='';var I=p?'width':'height',x=this.props.initialScrollIndex?-1:this.props.initialNumToRender-1,M=this.state,k=M.first,z=M.last;this._pushCells(_,L,C,0,x,y);var O=Math.max(x+1,k);if(!f&&k>x+1){var T=!1;if(C.size>0)for(var K=c?1:0,V=O-1;V>x;V--)if(C.has(V+K)){var N=this._getFrameMetricsApprox(x),D=this._getFrameMetricsApprox(V),H=D.offset-N.offset-(this.props.initialScrollIndex?0:N.length);_.push(R.createElement(E,{key:"$sticky_lead",style:s({},I,H)})),this._pushCells(_,L,C,V,V,y);var U=this._getFrameMetricsApprox(k).offset-(D.offset+D.length);_.push(R.createElement(E,{key:"$sticky_trail",style:s({},I,U)})),T=!0;break}if(!T){var W=this._getFrameMetricsApprox(x),j=this._getFrameMetricsApprox(k).offset-(W.offset+W.length);_.push(R.createElement(E,{key:"$lead_spacer",style:s({},I,j)}))}}if(this._pushCells(_,L,C,O,z,y),!this._hasWarned.keys&&P&&(console.warn("VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.",F),this._hasWarned.keys=!0),!f&&zf&&(this._sentEndForContentLength=0)}},{key:"_scheduleCellsToRenderUpdate",value:function(){var t=this.state,s=t.first,n=t.last,o=this._scrollMetrics,l=o.offset,c=o.visibleLength,h=o.velocity,u=this.props.getItemCount(this.props.data),p=!1,f=this.props.onEndReachedThreshold*c/2;if(s>0){var y=l-this._getFrameMetricsApprox(s).offset;p=p||y<0||h<-2&&y2&&_0&&void 0!==arguments[0]?arguments[0]:{abort:!1};this._taskHandle&&(this._taskHandle.cancel(),t.abort||this._callback(),this._taskHandle=null)}},{key:"schedule",value:function(){var t=this;if(!this._taskHandle){var n=setTimeout(function(){t._taskHandle=l.runAfterInteractions(function(){t._taskHandle=null,t._callback()})},this._delay);this._taskHandle={cancel:function(){return clearTimeout(n)}}}}}]),s})();m.exports=s},266,[31,32,240]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]);function l(t,n){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),s.push.apply(s,l)}return s}function o(n){for(var s=1;sMath.random(),this._resetData()}return n(t,[{key:"activate",value:function(){this._enabled&&null==this._samplesStartTime&&(this._samplesStartTime=_())}},{key:"deactivateAndFlush",value:function(){if(this._enabled){var t=this._samplesStartTime;if(null!=t)if(this._info.sample_count0&&(y=Math.min(u,Math.max(0,b.offset-o)));for(var k=0,v=n.last,S=this._getFrameMetrics(v);v>=n.first&&(!S||!S.inLayout);)S=this._getFrameMetrics(v),v--;if(S&&v0?(this._anyBlankStartTime=c,this._info.any_blank_speed_sum+=f,this._info.any_blank_count++,this._info.pixels_blank+=O,T>.5&&(this._mostlyBlankStartTime=c,this._info.mostly_blank_count++)):(f<.01||Math.abs(l)<1)&&this.deactivateAndFlush(),T}},{key:"enabled",value:function(){return this._enabled}},{key:"_resetData",value:function(){this._anyBlankStartTime=null,this._info=new u,this._mostlyBlankStartTime=null,this._samplesStartTime=null}}],[{key:"addListener",value:function(t){return h(null!==y,'Call `FillRateHelper.setSampleRate` before `addListener`.'),f.push(t),{remove:function(){f=f.filter(function(n){return t!==n})}}}},{key:"setSampleRate",value:function(t){y=t}},{key:"setMinSampleCount",value:function(t){c=t}}]),t})();m.exports=p},267,[54,32,31,130,13]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),f=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),l=t(r(d[6])),c=t(r(d[7])),p=v(r(d[8]));v(r(d[9]));function h(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(h=function(t){return t?o:n})(t)}function v(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=h(n);if(o&&o.has(t))return o.get(t);var f={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var l=s?Object.getOwnPropertyDescriptor(t,u):null;l&&(l.get||l.set)?Object.defineProperty(f,u,l):f[u]=t[u]}return f.default=t,o&&o.set(t,f),f}function R(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[10]);var y,_=r(d[11]),N=r(d[12]).getViewManagerConfig('AndroidSwipeRefreshLayout');y=N?N.Constants:{SIZE:{}};var O=(function(t){(0,u.default)(N,t);var h,v,y=(h=N,v=R(),function(){var t,n=(0,c.default)(h);if(v){var o=(0,c.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,l.default)(this,t)});function N(){var t;(0,f.default)(this,N);for(var n=arguments.length,o=new Array(n),s=0;s0&&(this._scrollAnimatedValueAttachment=w.attachNativeEvent(this._scrollViewRef,'onScroll',[{nativeEvent:{contentOffset:{y:this._scrollAnimatedValue}}}]))}},{key:"_setStickyHeaderRef",value:function(t,n){n?this._stickyHeaderRefs.set(t,n):this._stickyHeaderRefs.delete(t)}},{key:"_onStickyHeaderLayout",value:function(t,n,o){var l=this.props.stickyHeaderIndices;if(l){var s=H.Children.toArray(this.props.children);if(o===this._getKeyForIndex(t,s)){var c=n.nativeEvent.layout.y;this._headerLayoutYs.set(o,c);var p=l[l.indexOf(t)-1];if(null!=p){var u=this._stickyHeaderRefs.get(this._getKeyForIndex(p,s));u&&u.setNextHeaderY&&u.setNextHeaderY(c)}}}}},{key:"render",value:function(){var t,o,l=this;!0===this.props.horizontal?(t=T,o=b):(t=E,o=A),N(void 0!==t,'ScrollViewClass must not be undefined'),N(void 0!==o,'ScrollContentContainerViewClass must not be undefined');var s=[!0===this.props.horizontal&&Y.contentContainerHorizontal,this.props.contentContainerStyle],c={};this.props.onContentSizeChange&&(c={onLayout:this._handleContentOnLayout});var p=this.props.stickyHeaderIndices,u=this.props.children;if(null!=p&&p.length>0){var h=H.Children.toArray(this.props.children);u=h.map(function(t,n){var o=t?p.indexOf(n):-1;if(o>-1){var s=t.key,c=p[o+1],u=l.props.StickyHeaderComponent||C;return H.createElement(u,{key:s,ref:function(t){return l._setStickyHeaderRef(s,t)},nextHeaderLayoutY:l._headerLayoutYs.get(l._getKeyForIndex(c,h)),onLayout:function(t){return l._onStickyHeaderLayout(n,t,s)},scrollAnimatedValue:l._scrollAnimatedValue,inverted:l.props.invertStickyHeaders,scrollViewHeight:l.state.layoutHeight},t)}return t})}u=H.createElement(B.Provider,{value:!0===this.props.horizontal?P:F},u);var f=Array.isArray(p)&&p.length>0,R=H.createElement(o,(0,n.default)({},c,{ref:this._setInnerViewRef,style:s,removeClippedSubviews:!f&&this.props.removeClippedSubviews,collapsable:!1}),u),y=void 0!==this.props.alwaysBounceHorizontal?this.props.alwaysBounceHorizontal:this.props.horizontal,v=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,S=!!this.props.DEPRECATED_sendUpdatedChildFrames,w=!0===this.props.horizontal?Y.baseHorizontal:Y.baseVertical,V=_(_({},this.props),{},{alwaysBounceHorizontal:y,alwaysBounceVertical:v,style:[w,this.props.style],onContentSizeChange:null,onLayout:this._handleLayout,onMomentumScrollBegin:this._scrollResponder.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this._scrollResponder.scrollResponderHandleMomentumScrollEnd,onResponderGrant:this._scrollResponder.scrollResponderHandleResponderGrant,onResponderReject:this._scrollResponder.scrollResponderHandleResponderReject,onResponderRelease:this._scrollResponder.scrollResponderHandleResponderRelease,onResponderTerminationRequest:this._scrollResponder.scrollResponderHandleTerminationRequest,onScrollBeginDrag:this._scrollResponder.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this._scrollResponder.scrollResponderHandleScrollEndDrag,onScrollShouldSetResponder:this._scrollResponder.scrollResponderHandleScrollShouldSetResponder,onStartShouldSetResponder:this._scrollResponder.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this._scrollResponder.scrollResponderHandleStartShouldSetResponderCapture,onTouchEnd:this._scrollResponder.scrollResponderHandleTouchEnd,onTouchMove:this._scrollResponder.scrollResponderHandleTouchMove,onTouchStart:this._scrollResponder.scrollResponderHandleTouchStart,onTouchCancel:this._scrollResponder.scrollResponderHandleTouchCancel,onScroll:this._handleScroll,scrollBarThumbImage:z(this.props.scrollBarThumbImage),scrollEventThrottle:f?1:this.props.scrollEventThrottle,sendMomentumEvents:!(!this.props.onMomentumScrollBegin&&!this.props.onMomentumScrollEnd),DEPRECATED_sendUpdatedChildFrames:S,snapToStart:!1!==this.props.snapToStart,snapToEnd:!1!==this.props.snapToEnd,pagingEnabled:!0===this.props.pagingEnabled||null!=this.props.snapToInterval||null!=this.props.snapToOffsets}),k=this.props.decelerationRate;null!=k&&(V.decelerationRate=M(k));var x=this.props.refreshControl;if(x){var O=D(I(V.style)),L=O.outer,j=O.inner;return H.cloneElement(x,{style:[w,L]},H.createElement(t,(0,n.default)({},V,{style:[w,j],ref:this._setNativeRef}),R))}return H.createElement(t,(0,n.default)({},V,{ref:this._setNativeRef}),R)}}]),y})(H.Component);U.Context=B;var Y=x.create({baseVertical:{flexGrow:1,flexShrink:1,flexDirection:'column',overflow:'scroll'},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:'row',overflow:'scroll'},contentContainerHorizontal:{flexDirection:'row'}});function K(t,o){return H.createElement(U,(0,n.default)({},t,{scrollViewRef:o}))}K.displayName='ScrollView';var W=H.forwardRef(K);W.Context=B,W.displayName='ScrollView',m.exports=W},271,[1,9,31,32,46,42,44,41,54,272,274,275,276,242,56,6,89,277,285,62,86,284,85,11,286,187,287,262]); +__d(function(g,r,i,a,m,e,d){'use strict';var l=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t,o=l(r(d[1])),u=r(d[2]),c=r(d[3]);g.RN$Bridgeless?(u('RCTScrollView',o.default),t='RCTScrollView'):t=c('RCTScrollView');var f=t;e.default=f},272,[1,273,200,180]); +__d(function(g,r,i,a,m,e,d){'use strict';var o={uiViewClassName:'RCTScrollView',bubblingEventTypes:{},directEventTypes:{topScrollToTop:{registrationName:'onScrollToTop'}},validAttributes:{alwaysBounceHorizontal:!0,alwaysBounceVertical:!0,automaticallyAdjustContentInsets:!0,bounces:!0,bouncesZoom:!0,canCancelContentTouches:!0,centerContent:!0,contentInset:{diff:r(d[0])},contentOffset:{diff:r(d[0])},contentInsetAdjustmentBehavior:!0,decelerationRate:!0,directionalLockEnabled:!0,disableIntervalMomentum:!0,endFillColor:{process:r(d[1])},fadingEdgeLength:!0,indicatorStyle:!0,keyboardDismissMode:!0,maintainVisibleContentPosition:!0,maximumZoomScale:!0,minimumZoomScale:!0,nestedScrollEnabled:!0,onMomentumScrollBegin:!0,onMomentumScrollEnd:!0,onScroll:!0,onScrollBeginDrag:!0,onScrollEndDrag:!0,onScrollToTop:!0,overScrollMode:!0,pagingEnabled:!0,persistentScrollbar:!0,pinchGestureEnabled:!0,scrollEnabled:!0,scrollEventThrottle:!0,scrollIndicatorInsets:{diff:r(d[0])},scrollPerfTag:!0,scrollToOverflowEnabled:!0,scrollsToTop:!0,sendMomentumEvents:!0,showsHorizontalScrollIndicator:!0,showsVerticalScrollIndicator:!0,snapToAlignment:!0,snapToEnd:!0,snapToInterval:!0,snapToOffsets:!0,snapToStart:!0,zoomScale:!0,DEPRECATED_sendUpdatedChildFrames:!0}};m.exports=o},273,[185,80]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t,l=r(d[0]),n=r(d[1]);g.RN$Bridgeless?(l('RCTScrollContentView',{uiViewClassName:'RCTScrollContentView',bubblingEventTypes:{},directEventTypes:{},validAttributes:{}}),t='RCTScrollContentView'):t=n('RCTScrollContentView');var o=t;e.default=o},274,[200,180]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l,o=r(d[0]),n=r(d[1]),t={uiViewClassName:'AndroidHorizontalScrollView',bubblingEventTypes:{},directEventTypes:{},validAttributes:{decelerationRate:!0,disableIntervalMomentum:!0,endFillColor:{process:r(d[2])},fadingEdgeLength:!0,nestedScrollEnabled:!0,overScrollMode:!0,pagingEnabled:!0,persistentScrollbar:!0,scrollEnabled:!0,scrollPerfTag:!0,sendMomentumEvents:!0,showsHorizontalScrollIndicator:!0,snapToEnd:!0,snapToInterval:!0,snapToStart:!0,snapToOffsets:!0,contentOffset:!0}};g.RN$Bridgeless?(o('AndroidHorizontalScrollView',t),l='AndroidHorizontalScrollView'):l=n('AndroidHorizontalScrollView');var s=l;e.default=s},275,[200,180,80]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t,o=r(d[0]),n=r(d[1]);g.RN$Bridgeless?(o('AndroidHorizontalScrollContentView',{uiViewClassName:'AndroidHorizontalScrollContentView',bubblingEventTypes:{},directEventTypes:{},validAttributes:{}}),t='AndroidHorizontalScrollContentView'):t=n('AndroidHorizontalScrollContentView');var l=t;e.default=l},276,[200,180]); +__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0])(r(d[1])),l=(r(d[2]),r(d[3])),s=r(d[4]),n=r(d[5]),t=r(d[6]),c=r(d[7]),p=r(d[8]),u=(r(d[9]),r(d[10])),h=r(d[11]),S={Mixin:{_subscriptionKeyboardWillShow:null,_subscriptionKeyboardWillHide:null,_subscriptionKeyboardDidShow:null,_subscriptionKeyboardDidHide:null,scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return!0!==this.props.disableScrollViewPanResponder&&this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(o){if(!0===this.props.disableScrollViewPanResponder)return!1;var l=c.currentlyFocusedInput();return'handled'===this.props.keyboardShouldPersistTaps&&null!=l&&o.target!==l},scrollResponderHandleStartShouldSetResponderCapture:function(o){if(this.scrollResponderIsAnimating())return!0;if(!0===this.props.disableScrollViewPanResponder)return!1;var l=c.currentlyFocusedInput(),s=this.props.keyboardShouldPersistTaps,n=!s||'never'===s;return'number'!=typeof o.target&&!(!n||null==l||null==o.target||c.isTextInput(o.target))},scrollResponderHandleResponderReject:function(){},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(o){var l=o.nativeEvent;this.state.isTouching=0!==l.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(o)},scrollResponderHandleTouchCancel:function(o){this.state.isTouching=!1,this.props.onTouchCancel&&this.props.onTouchCancel(o)},scrollResponderHandleResponderRelease:function(o){if(this.props.onResponderRelease&&this.props.onResponderRelease(o),'number'!=typeof o.target){var l=c.currentlyFocusedInput();!0===this.props.keyboardShouldPersistTaps||'always'===this.props.keyboardShouldPersistTaps||null==l||o.target===l||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(o),c.blurTextInput(l))}},scrollResponderHandleScroll:function(o){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(o)},scrollResponderHandleResponderGrant:function(o){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(o),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(o){s.beginScroll(),this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(o)},scrollResponderHandleScrollEndDrag:function(o){var l=o.nativeEvent.velocity;this.scrollResponderIsAnimating()||l&&(0!==l.x||0!==l.y)||s.endScroll(),this.props.onScrollEndDrag&&this.props.onScrollEndDrag(o)},scrollResponderHandleMomentumScrollBegin:function(o){this.state.lastMomentumScrollBeginTime=h(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(o)},scrollResponderHandleMomentumScrollEnd:function(o){s.endScroll(),this.state.lastMomentumScrollEndTime=h(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(o)},scrollResponderHandleTouchStart:function(o){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(o)},scrollResponderHandleTouchMove:function(o){this.props.onTouchMove&&this.props.onTouchMove(o)},scrollResponderIsAnimating:function(){return h()-this.state.lastMomentumScrollEndTime<16||this.state.lastMomentumScrollEndTime0){y.push(x),v.push(0),y.push(x+1),v.push(1);var H=(h||0)-l-o;H>x&&(y.push(H,H+1),v.push(H-x,H-x))}}}else{y.push(p),v.push(0);var Y=(h||0)-l;Y>=p?(y.push(Y,Y+1),v.push(Y-p,Y-p)):(y.push(p+1),v.push(1))}var R=this.props.scrollAnimatedValue.interpolate({inputRange:y,outputRange:v}),C=c.Children.only(this.props.children);return c.createElement(f,{collapsable:!1,onLayout:this._onLayout,style:[C.props.style,L.header,{transform:[{translateY:R}]}]},c.cloneElement(C,{style:L.fill,onLayout:void 0}))}}]),x})(c.Component),L=h.create({header:{zIndex:10},fill:{flex:1}});m.exports=v},285,[31,32,42,44,41,242,6,62,86]); +__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);m.exports=function(t){return'normal'===t?.985:'fast'===t?.9:t}},286,[56]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(Object.create(null),{margin:!0,marginHorizontal:!0,marginVertical:!0,marginBottom:!0,marginTop:!0,marginLeft:!0,marginRight:!0,flex:!0,flexGrow:!0,flexShrink:!0,flexBasis:!0,alignSelf:!0,height:!0,minHeight:!0,maxHeight:!0,width:!0,minWidth:!0,maxWidth:!0,position:!0,left:!0,right:!0,bottom:!0,top:!0,transform:!0});m.exports=function(n){var o={},f={};return n&&Object.keys(n).forEach(function(h){var l=n[h];t[h]?f[h]=l:o[h]=l}),{outer:f,inner:o}}},287,[9]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]);function c(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function l(n){for(var o=1;o=t.length?{done:!0}:{done:!1,value:t[s++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(t,n){if(t){if("string"==typeof t)return h(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?h(t,n):void 0}}function h(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,s=new Array(n);o0&&void 0!==arguments[0]?arguments[0]:{viewAreaCoveragePercentThreshold:0};o(this,t),this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=n}return s(t,[{key:"dispose",value:function(){this._timers.forEach(clearTimeout)}},{key:"computeViewableItems",value:function(t,n,o,s,c){var l=this._config,u=l.itemVisiblePercentThreshold,f=l.viewAreaCoveragePercentThreshold,h=null!=f,b=h?f:u;v(null!=b&&null!=u!=(null!=f),'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');var p=[];if(0===t)return p;var w=-1,_=c||{first:0,last:t-1},I=_.first,O=_.last;if(O>=t)return console.warn('Invalid render range computing viewability '+JSON.stringify({renderRange:c,itemCount:t})),[];for(var j=I;j<=O;j++){var P=s(j);if(P){var S=P.offset-n,A=S+P.length;if(S0)w=j,y(h,b,S,A,o,P.length)&&p.push(j);else if(w>=0)break}}return p}},{key:"onUpdate",value:function(t,n,o,s,c,l,u){var f=this;if((!this._config.waitForInteraction||this._hasInteracted)&&0!==t&&s(0)){var h=[];if(t&&(h=this.computeViewableItems(t,n,o,s,u)),this._viewableIndices.length!==h.length||!this._viewableIndices.every(function(t,n){return t===h[n]}))if(this._viewableIndices=h,this._config.minimumViewTime){var v=setTimeout(function(){f._timers.delete(v),f._onUpdateSync(h,l,c)},this._config.minimumViewTime);this._timers.add(v)}else this._onUpdateSync(h,l,c)}}},{key:"resetViewableIndices",value:function(){this._viewableIndices=[]}},{key:"recordInteraction",value:function(){this._hasInteracted=!0}},{key:"_onUpdateSync",value:function(t,o,s){var c=this;t=t.filter(function(t){return c._viewableIndices.includes(t)});for(var f,h=this._viewableItems,v=new Map(t.map(function(t){var n=s(t,!0);return[n.key,n]})),b=[],y=u(v);!(f=y()).done;){var p=f.value,w=n(p,2),_=w[0],I=w[1];h.has(_)||b.push(I)}for(var O,j=u(h);!(O=j()).done;){var P=O.value,S=n(P,2),A=S[0],T=S[1];v.has(A)||b.push(l(l({},T),{},{isViewable:!1}))}b.length>0&&(this._viewableItems=v,o({viewableItems:Array.from(v.values()),changed:b,viewabilityConfig:this._config}))}}]),t})();function y(t,n,o,s,c,l){if(w(o,s,c))return!0;var u=p(o,s,c);return 100*(t?u/c:u/l)>=n}function p(t,n,o){var s=Math.min(n,o)-Math.max(t,0);return Math.max(0,s)}function w(t,n,o){return t>=0&&n<=o&&n>t}m.exports=b},288,[54,19,31,32,11]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);function s(t,s,f){for(var l=[],o=0,u=0;u=t[c]&&(l[c]=u,o++,c===t.length-1))return n(o===t.length,'bad offsets input, should be in increasing order: %s',JSON.stringify(t)),l;return l}function f(t,n){return n.last-n.first+1-Math.max(0,1+Math.min(n.last,t.last)-Math.max(n.first,t.first))}var l={computeWindowedRenderLimits:function(n,l,o,u){var h=n.data,v=n.getItemCount,c=n.maxToRenderPerBatch,x=n.windowSize,M=v(h);if(0===M)return l;var w=u.offset,b=u.velocity,p=u.visibleLength,C=Math.max(0,w),O=C+p,y=(x-1)*p,L=b>1?'after':b<-1?'before':'none',R=Math.max(0,C-.5*y),S=Math.max(0,O+.5*y);if(o(M-1).offset=_);){var E=z>=c,F=N<=l.first||N>l.last,P=N>J&&(!E||!F),W=T>=l.last||T=N&&N>=0&&T=J&&T<=_&&N<=k.first&&T>=k.last))throw new Error('Bad window calculation '+JSON.stringify({first:N,last:T,itemCount:M,overscanFirst:J,overscanLast:_,visible:k}));return{first:N,last:T}},elementsThatOverlapOffsets:s,newRangeCount:f};m.exports=l},289,[19,11]); +__d(function(g,r,i,a,m,e,d){'use strict';!(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var f=t(o);if(f&&f.has(n))return f.get(n);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in n)if("default"!==p&&Object.prototype.hasOwnProperty.call(n,p)){var l=c?Object.getOwnPropertyDescriptor(n,p):null;l&&(l.get||l.set)?Object.defineProperty(u,p,l):u[p]=n[p]}u.default=n,f&&f.set(n,u)})(r(d[0]));function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,f=new WeakMap;return(t=function(t){return t?f:o})(n)}var n=r(d[1]),o=r(d[2]);m.exports=o(n)},290,[6,291,261]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4]));function s(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function l(t){for(var n=1;n component requires a `source` property rather than `src`.'),t.children)throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');if(t.defaultSource&&t.loadingIndicatorSource)throw new Error('The component cannot have defaultSource and loadingIndicatorSource at the same time. Please use either defaultSource or loadingIndicatorSource.');if(!h||h.uri||Array.isArray(h)||(h=null),null!=(null==(o=h)?void 0:o.uri)){var w=h,j=w.width,P=w.height;s=S([{width:j,height:P},T.base,t.style]),f=[{uri:h.uri}]}else s=S([T.base,t.style]),f=h;var z=t.onLoadStart,L=t.onLoad,D=t.onLoadEnd,q=t.onError,C=l(l({},t),{},{style:s,shouldNotifyLoadEvents:!!(z||L||D||q),src:f,headers:null==(c=h)?void 0:c.headers,defaultSrc:p?p.uri:null,loadingIndicatorSrc:b?b.uri:null,ref:n});return y.createElement(v.Consumer,null,function(t){var n=null!==t?l(l({},C),{},{internal_analyticTag:t}):C;return y.createElement(O.Consumer,null,function(t){return t?y.createElement(I,n):y.createElement(u.default,n)})})};(z=y.forwardRef(z)).displayName='Image',z.getSize=function(t,n,o){return c.default.getSize(t).then(function(t){n(t.width,t.height)}).catch(o||function(){console.warn('Failed to get size for image: '+t)})},z.getSizeWithHeaders=function(t,n,o,u){return c.default.getSizeWithHeaders(t,n).then(function(t){o(t.width,t.height)}).catch(u||function(){console.warn('Failed to get size for image: '+t)})},z.prefetch=function(t,n){var o=j++;return n&&n(o),c.default.prefetchImage(t,o)},z.abortPrefetch=function(t){c.default.abortRequest(t)},z.queryCache=function(t){return n.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,n.default.awrap(c.default.queryCache(t));case 2:return o.abrupt("return",o.sent);case 3:case"end":return o.stop()}},null,null,null,Promise)},z.resolveAssetSource=E,z.propTypes=P;var T=w.create({base:{overflow:'hidden'}});m.exports=z},291,[1,106,54,292,294,67,210,295,72,6,89,62,202,297,85,187,298]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u,f=t(r(d[1])),l=r(d[2]),n=r(d[3]);g.RN$Bridgeless?(n.register('RCTImageView',function(){return f.default}),u='RCTImageView'):u=l('RCTImageView');var s=u;e.default=s},292,[1,293,180,177]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t(r(d[1]));function n(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);o&&(s=s.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,s)}return n}function s(t){for(var s=1;s0&&this.props.stickySectionHeadersEnabled&&(s+=this._listRef._getFrameMetricsApprox(n-t.itemIndex).length);var c=S(S({},t),{},{viewOffset:s,index:n});this._listRef.scrollToIndex(c)}},{key:"getListRef",value:function(){return this._listRef}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){this.setState(this._computeState(t))}},{key:"_computeState",value:function(t){var o=this,s=t.ListHeaderComponent?1:0,c=[],l=t.sections?t.sections.reduce(function(n,o){return c.push(n+s),n+t.getItemCount(o.data)+2},0):0;t.SectionSeparatorComponent,t.renderItem,t.renderSectionFooter,t.renderSectionHeader,t.sections,t.stickySectionHeadersEnabled;return{childProps:S(S({},n(t,["SectionSeparatorComponent","renderItem","renderSectionFooter","renderSectionHeader","sections","stickySectionHeadersEnabled"])),{},{renderItem:this._renderItem,ItemSeparatorComponent:void 0,data:t.sections,getItemCount:function(){return l},getItem:function(n,s){return o._getItem(t,n,s)},keyExtractor:this._keyExtractor,onViewableItemsChanged:t.onViewableItemsChanged?this._onViewableItemsChanged:void 0,stickyHeaderIndices:t.stickySectionHeadersEnabled?c:void 0})}}},{key:"render",value:function(){return y.createElement(x,t({},this.state.childProps,{ref:this._captureRef}))}},{key:"_subExtractor",value:function(t){for(var n=t,o=this.props,s=o.getItem,c=o.getItemCount,l=o.keyExtractor,p=o.sections,u=0;u=c(h)+1)n-=c(h)+1;else return-1===n?{section:f,key:S+':header',index:null,header:!0,trailingSection:p[u+1]}:n===c(h)?{section:f,key:S+':footer',index:null,header:!1,trailingSection:p[u+1]}:{section:f,key:S+':'+(f.keyExtractor||l)(s(h,n),n),index:n,leadingItem:s(h,n-1),leadingSection:p[u-1],trailingItem:s(h,n+1),trailingSection:p[u+1]}}}},{key:"_getSeparatorComponent",value:function(t,n){if(!(n=n||this._subExtractor(t)))return null;var o=n.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,s=this.props.SectionSeparatorComponent,c=t===this.state.childProps.getItemCount()-1,l=n.index===this.props.getItemCount(n.section.data)-1;return s&&l?s:!o||l||c?null:o}}]),f})(y.PureComponent);k.defaultProps=S(S({},x.defaultProps),{},{data:[]});var P=(function(t){p(o,t);var n=v(o);function o(){var t;s(this,o);for(var c=arguments.length,l=new Array(c),p=0;p=21&&null!=this.props.statusBarBackgroundColor,c=y.createElement(C,{style:[B.drawerSubview,{width:this.props.drawerWidth,backgroundColor:this.props.drawerBackgroundColor}],collapsable:!1},s(),l&&y.createElement(C,{style:B.drawerStatusBar})),p=y.createElement(C,{style:B.mainSubview,collapsable:!1},l&&y.createElement(D,{translucent:!0,backgroundColor:this.props.statusBarBackgroundColor}),l&&y.createElement(C,{style:[B.statusBar,{backgroundColor:this.props.statusBarBackgroundColor}]}),this.props.children);return y.createElement(f.default,(0,n.default)({},u,{ref:this._nativeRef,drawerWidth:this.props.drawerWidth,drawerPosition:this.props.drawerPosition,drawerLockMode:this.props.drawerLockMode,style:[B.base,this.props.style],onDrawerSlide:this._onDrawerSlide,onDrawerOpen:this._onDrawerOpen,onDrawerClose:this._onDrawerClose,onDrawerStateChanged:this._onDrawerStateChanged}),p,c)}},{key:"openDrawer",value:function(){f.Commands.openDrawer(_(this._nativeRef.current))}},{key:"closeDrawer",value:function(){f.Commands.closeDrawer(_(this._nativeRef.current))}},{key:"blur",value:function(){_(this._nativeRef.current).blur()}},{key:"focus",value:function(){_(this._nativeRef.current).focus()}},{key:"measure",value:function(t){_(this._nativeRef.current).measure(t)}},{key:"measureInWindow",value:function(t){_(this._nativeRef.current).measureInWindow(t)}},{key:"measureLayout",value:function(t,n,o){_(this._nativeRef.current).measureLayout(t,n,o)}},{key:"setNativeProps",value:function(t){_(this._nativeRef.current).setNativeProps(t)}}],[{key:"positions",get:function(){return console.warn('Setting DrawerLayoutAndroid drawerPosition using `DrawerLayoutAndroid.positions` is deprecated. Instead pass the string value "left" or "right"'),{Left:'left',Right:'right'}}}]),O})(y.Component);R.defaultProps={drawerBackgroundColor:'white'};var B=b.create({base:{flex:1,elevation:16},mainSubview:{position:'absolute',top:0,left:0,right:0,bottom:0},drawerSubview:{position:'absolute',top:0,bottom:0},statusBar:{height:D.currentHeight},drawerStatusBar:{position:'absolute',top:0,left:0,right:0,height:D.currentHeight,backgroundColor:'rgba(0, 0, 0, 0.251)'}});m.exports=R},308,[1,9,60,31,32,42,44,41,309,56,6,310,62,86,284,223]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Commands=void 0;var n=t(r(d[1])),o=t(r(d[2]));!(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var c=l?Object.getOwnPropertyDescriptor(t,p):null;c&&(c.get||c.set)?Object.defineProperty(f,p,c):f[p]=t[p]}f.default=t,o&&o.set(t,f)})(r(d[3]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}var f=(0,n.default)({supportedCommands:['openDrawer','closeDrawer']});e.Commands=f;var l=(0,o.default)('AndroidDrawerLayout');e.default=l},309,[1,88,205,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),u=n(r(d[1])),o=n(r(d[2])),l=n(r(d[3])),c=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),p=n(r(d[7]));n(r(d[8]));function k(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[9]);var v=r(d[10]),y=r(d[11]),_=r(d[12]);function S(t){return{backgroundColor:null!=t.backgroundColor?{value:t.backgroundColor,animated:t.animated}:null,barStyle:null!=t.barStyle?{value:t.barStyle,animated:t.animated}:null,translucent:t.translucent,hidden:null!=t.hidden?{value:t.hidden,animated:t.animated,transition:t.showHideTransition}:null,networkActivityIndicatorVisible:t.networkActivityIndicatorVisible}}var h=(function(t){(0,l.default)(h,t);var n,f,v=(n=h,f=k(),function(){var t,u=(0,s.default)(n);if(f){var o=(0,s.default)(this).constructor;t=Reflect.construct(u,arguments,o)}else t=u.apply(this,arguments);return(0,c.default)(this,t)});function h(){var t;(0,u.default)(this,h);for(var n=arguments.length,o=new Array(n),l=0;l is only supported on iOS.'),0===p.Children.count(this.props.children)?null:p.createElement(s.default,{style:[this.props.style,v.container],nativeID:this.props.nativeID,backgroundColor:this.props.backgroundColor},this.props.children)}}]),C})(p.Component),v=h.create({container:{position:'absolute'}});m.exports=y},314,[1,31,32,42,44,41,315,56,6,62]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('RCTInputAccessoryView');e.default=u},315,[1,205]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),u=r(d[4]),c=r(d[5]),l=r(d[6]);function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var h=r(d[7]),y=r(d[8]),v=(r(d[9]),r(d[10])),b=r(d[11]),p=r(d[12]),_=(function(_){u(w,_);var k,L,R=(k=w,L=f(),function(){var t,n=l(k);if(L){var o=l(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return c(this,t)});function w(t){var n;return o(this,w),(n=R.call(this,t))._frame=null,n._subscriptions=[],n._initialFrameHeight=0,n._onKeyboardChange=function(t){if(null!=t){var o=t.duration,s=t.easing,u=t.endCoordinates,c=n._relativeKeyboardHeight(u);n.state.bottom!==c&&(o&&s&&y.configureNext({duration:o>10?o:10,update:{duration:o>10?o:10,type:y.Types[s]||'keyboard'}}),n.setState({bottom:c}))}else n.setState({bottom:0})},n._onLayout=function(t){n._frame=t.nativeEvent.layout,n._initialFrameHeight||(n._initialFrameHeight=n._frame.height)},n.state={bottom:0},n.viewRef=v.createRef(),n}return s(w,[{key:"_relativeKeyboardHeight",value:function(t){var n=this._frame;if(!n||!t)return 0;var o=t.screenY-this.props.keyboardVerticalOffset;return Math.max(n.y+n.height-o,0)}},{key:"componentDidMount",value:function(){this._subscriptions=[h.addListener('keyboardDidHide',this._onKeyboardChange),h.addListener('keyboardDidShow',this._onKeyboardChange)]}},{key:"componentWillUnmount",value:function(){this._subscriptions.forEach(function(t){t.remove()})}},{key:"render",value:function(){var o=this.props,s=o.behavior,u=o.children,c=o.contentContainerStyle,l=o.enabled,f=(o.keyboardVerticalOffset,o.style),h=n(o,["behavior","children","contentContainerStyle","enabled","keyboardVerticalOffset","style"]),y=l?this.state.bottom:0;switch(s){case'height':var _;return null!=this._frame&&this.state.bottom>0&&(_={height:this._initialFrameHeight-y,flex:0}),v.createElement(p,t({ref:this.viewRef,style:b.compose(f,_),onLayout:this._onLayout},h),u);case'position':return v.createElement(p,t({ref:this.viewRef,style:f,onLayout:this._onLayout},h),v.createElement(p,{style:b.compose(c,{bottom:y})},u));case'padding':return v.createElement(p,t({ref:this.viewRef,style:b.compose(f,{paddingBottom:y}),onLayout:this._onLayout},h),u);default:return v.createElement(p,t({ref:this.viewRef,onLayout:this._onLayout,style:f},h),u)}}}]),w})(v.Component);_.defaultProps={enabled:!0,keyboardVerticalOffset:0},m.exports=_},316,[9,60,31,32,42,44,41,281,283,56,6,62,86]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},317,[318]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),c=r(d[2]),o=r(d[3]),u=r(d[4]);function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var s=r(d[5]),l=r(d[6]),p=(function(l){c(R,l);var p,y,v=(p=R,y=f(),function(){var t,n=u(p);if(y){var c=u(this).constructor;t=Reflect.construct(n,arguments,c)}else t=n.apply(this,arguments);return o(this,t)});function R(){return t(this,R),v.apply(this,arguments)}return n(R,[{key:"render",value:function(){var t=r(d[7]);return s.createElement(t,{style:[h.unimplementedView,this.props.style]},this.props.children)}}]),R})(s.Component),h=l.create({unimplementedView:{}});m.exports=p},318,[31,32,42,44,41,6,62,86]); +__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),o=n(r(d[1])),s=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),p=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7]));function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[8]);var v=r(d[9]),y=r(d[10]),S=r(d[11]),R=r(d[12]),C=r(d[13]),_=r(d[14]),w=0,T=(function(t){(0,u.default)(y,t);var n,o,v=(n=y,o=h(),function(){var t,s=(0,c.default)(n);if(o){var l=(0,c.default)(this).constructor;t=Reflect.construct(s,arguments,l)}else t=s.apply(this,arguments);return(0,p.default)(this,t)});function y(t){var n;return(0,s.default)(this,y),n=v.call(this,t),y._confirmProps(t),n._identifier=w++,n}return(0,l.default)(y,[{key:"getChildContext",value:function(){return{virtualizedList:null}}},{key:"componentWillUnmount",value:function(){null!=this.props.onDismiss&&this.props.onDismiss()}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){y._confirmProps(t)}},{key:"render",value:function(){if(!0!==this.props.visible)return null;var t={backgroundColor:this.props.transparent?'transparent':'white'},n=this.props.animationType||'none',o=this.props.presentationStyle;o||(o='fullScreen',this.props.transparent&&(o='overFullScreen'));var s=this.props.children;return S.createElement(f.default,{animationType:n,presentationStyle:o,transparent:this.props.transparent,hardwareAccelerated:this.props.hardwareAccelerated,onRequestClose:this.props.onRequestClose,onShow:this.props.onShow,statusBarTranslucent:this.props.statusBarTranslucent,identifier:this._identifier,style:x.modal,onStartShouldSetResponder:this._shouldSetResponder,supportedOrientations:this.props.supportedOrientations,onOrientationChange:this.props.onOrientationChange},S.createElement(R.Context.Provider,{value:null},S.createElement(_,{style:[x.container,t]},s)))}},{key:"_shouldSetResponder",value:function(){return!0}}],[{key:"_confirmProps",value:function(t){t.presentationStyle&&'overFullScreen'!==t.presentationStyle&&t.transparent&&console.warn("Modal with '"+t.presentationStyle+"' presentation style and 'transparent' value is not supported.")}}]),y})(S.Component);T.defaultProps={visible:!0,hardwareAccelerated:!1},T.contextTypes={rootTag:y.number},T.childContextTypes={virtualizedList:y.object};var k=v.getConstants().isRTL?'right':'left',x=C.create({modal:{position:'absolute'},container:(t={},(0,o.default)(t,k,0),(0,o.default)(t,"top",0),(0,o.default)(t,"flex",1),t)});m.exports=T},319,[1,54,31,32,42,44,41,320,321,323,72,6,271,62,86]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,t(r(d[1])).default)('ModalHostView',{interfaceOnly:!0,paperComponentName:'RCTModalHostView'});e.default=o},320,[1,205]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),s=r(d[4]);function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}r(d[5]);var l=r(d[6]),p=(r(d[7]),r(d[8])),f=r(d[9]),h=r(d[10]),v=r(d[11]),y=(function(l){o(C,l);var h,y,E=(h=C,y=u(),function(){var t,n=s(h);if(y){var o=s(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return c(this,t)});function C(){var n;t(this,C);for(var o=arguments.length,c=new Array(o),s=0;s=0){var p=u.Children.toArray(t.children).filter(function(t){return null!=t})[c].props.value;t.selectedValue!==p&&f(p,c)}else f(null,c);var v=s.current;null!=v&&c!==k&&('dropdown'===t.mode?l.Commands:o.Commands).setNativeSelectedPosition(v,k)},[t.children,t.onValueChange,t.selectedValue,t.mode,k]),O={accessibilityLabel:t.accessibilityLabel,enabled:t.enabled,items:h,onSelect:C,prompt:t.prompt,ref:s,selected:k,style:c.default.compose(b.pickerAndroid,t.style),backgroundColor:t.backgroundColor,testID:t.testID};return'dropdown'===t.mode?u.createElement(l.default,O):u.createElement(o.default,O)}},326,[1,19,327,328,6,62,11,80]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Commands=void 0;!(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,o&&o.set(t,f)})(r(d[1]));var n=t(r(d[2])),o=t(r(d[3]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}var f=(0,n.default)({supportedCommands:['setNativeSelectedPosition']});e.Commands=f;var c=(0,o.default)('AndroidDropdownPicker');e.default=c},327,[1,6,88,180]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Commands=void 0;!(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var p=l?Object.getOwnPropertyDescriptor(t,c):null;p&&(p.get||p.set)?Object.defineProperty(f,c,p):f[c]=t[c]}f.default=t,o&&o.set(t,f)})(r(d[1]));var n=t(r(d[2])),o=t(r(d[3]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}var f=(0,n.default)({supportedCommands:['setNativeSelectedPosition']});e.Commands=f;var l=(0,o.default)('AndroidDialogPicker');e.default=l},328,[1,6,88,180]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},329,[318]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),s=n(r(d[2])),o=n(r(d[3])),l=(function(n,t){if(!t&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var s=P(t);if(s&&s.has(n))return s.get(n);var o={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in n)if("default"!==u&&Object.prototype.hasOwnProperty.call(n,u)){var f=l?Object.getOwnPropertyDescriptor(n,u):null;f&&(f.get||f.set)?Object.defineProperty(o,u,f):o[u]=n[u]}o.default=n,s&&s.set(n,o);return o})(r(d[4])),u=n(r(d[5])),f=(r(d[6]),n(r(d[7]))),c=r(d[8]),p=n(r(d[9]));function P(n){if("function"!=typeof WeakMap)return null;var t=new WeakMap,s=new WeakMap;return(P=function(n){return n?s:t})(n)}function y(n){var t=(0,l.useState)(!1),o=(0,s.default)(t,2),u=o[0],f=o[1];return[u||n,f]}var b=l.memo(l.forwardRef(function(n,P){var b=n.accessible,v=n.android_disableSound,O=n.android_ripple,_=n.children,M=n.delayLongPress,h=n.disabled,j=n.focusable,w=n.onLongPress,S=n.onPress,L=n.onPressIn,R=n.onPressOut,I=n.pressRetentionOffset,k=n.style,W=n.testOnly_pressed,D=(0,o.default)(n,["accessible","android_disableSound","android_ripple","children","delayLongPress","disabled","focusable","onLongPress","onPress","onPressIn","onPressOut","pressRetentionOffset","style","testOnly_pressed"]),z=(0,l.useRef)(null);(0,l.useImperativeHandle)(P,function(){return z.current});var E=(0,u.default)(O,z),H=y(!0===W),N=(0,s.default)(H,2),q=N[0],x=N[1],A=(0,c.normalizeRect)(n.hitSlop),B=(0,l.useMemo)(function(){return{disabled:h,hitSlop:A,pressRectOffset:I,android_disableSound:v,delayLongPress:M,onLongPress:w,onPress:S,onPressIn:function(n){null!=E&&E.onPressIn(n),x(!0),null!=L&&L(n)},onPressMove:null==E?void 0:E.onPressMove,onPressOut:function(n){null!=E&&E.onPressOut(n),x(!1),null!=R&&R(n)}}},[v,E,M,h,A,w,S,L,R,I,x]),C=(0,f.default)(B);return l.createElement(p.default,(0,t.default)({},D,C,null==E?void 0:E.viewProps,{accessible:!1!==b,focusable:!1!==j,hitSlop:A,ref:z,style:'function'==typeof k?k({pressed:q}):k}),'function'==typeof _?_({pressed:q}):_,null)}));b.displayName='Pressable';var v=b;e.default=v},330,[1,9,19,60,6,331,228,332,227,86]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n,s){var c=null!=n?n:{},f=c.color,p=c.borderless,v=c.radius,P=!0===p;return(0,u.useMemo)(function(){if('android'===l.Platform.OS&&l.Platform.Version>=21&&(null!=f||P||null!=v)){var n=(0,l.processColor)(f);return(0,t.default)(null==n||'number'==typeof n,'Unexpected color given for Ripple color'),{viewProps:{nativeBackgroundAndroid:{type:'RippleAndroid',color:n,borderless:P,rippleRadius:v}},onPressIn:function(n){var t,l,u=s.current;null!=u&&(o.Commands.setPressed(u,!0),o.Commands.hotspotUpdate(u,null!=(t=n.nativeEvent.locationX)?t:0,null!=(l=n.nativeEvent.locationY)?l:0))},onPressMove:function(n){var t,l,u=s.current;null!=u&&o.Commands.hotspotUpdate(u,null!=(t=n.nativeEvent.locationX)?t:0,null!=(l=n.nativeEvent.locationY)?l:0)},onPressOut:function(n){var t=s.current;null!=t&&o.Commands.setPressed(t,!1)}}}return null},[f,P,v,s])};var t=n(r(d[1])),o=r(d[2]),l=r(d[3]),u=(function(n,t){if(!t&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var o=s(t);if(o&&o.has(n))return o.get(n);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in n)if("default"!==c&&Object.prototype.hasOwnProperty.call(n,c)){var f=u?Object.getOwnPropertyDescriptor(n,c):null;f&&(f.get||f.set)?Object.defineProperty(l,c,f):l[c]=n[c]}l.default=n,o&&o.set(n,l);return l})(r(d[4]));function s(n){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(s=function(n){return n?o:t})(n)}},331,[1,11,87,10,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){var f=(0,u.useRef)(null);null==f.current&&(f.current=new t.default(n));var c=f.current;return(0,u.useEffect)(function(){c.configure(n)},[n,c]),(0,u.useEffect)(function(){return function(){c.reset()}},[c]),c.getEventHandlers()};var t=n(r(d[1])),u=r(d[2])},332,[1,225,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),u=r(d[4]);function s(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var f=r(d[5]),l=r(d[6]),p=r(d[7]),y=r(d[8]),h=(function(l){o(x,l);var h,b,R=(h=x,b=s(),function(){var t,n=u(h);if(b){var o=u(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return c(this,t)});function x(){return t(this,x),R.apply(this,arguments)}return n(x,[{key:"render",value:function(){return f.createElement(y,{style:[v.dummy,this.props.style]},f.createElement(p,{style:v.text},"ProgressViewIOS is not supported on this platform!"))}}]),x})(f.Component),v=l.create({dummy:{width:120,height:20,backgroundColor:'#ffbcbc',borderWidth:1,borderColor:'red',alignItems:'center',justifyContent:'center'},text:{color:'#333333',margin:5,fontSize:10}});m.exports=h},333,[31,32,42,44,41,6,62,207,86]); +__d(function(g,r,i,a,m,e,d){var t,n=r(d[0]),u=r(d[1]),o=(r(d[2]),r(d[3])),f=r(d[4]);t=o.forwardRef(function(t,l){t.emulateUnlessSupported;var p=u(t,["emulateUnlessSupported"]);return o.createElement(f,n({},p,{ref:l}))}),m.exports=t},334,[9,60,56,6,86]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),u=r(d[4]);function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var l=r(d[5]),s=r(d[6]),p=r(d[7]),y=r(d[8]),h=(function(s){o(R,s);var h,b,C=(h=R,b=f(),function(){var t,n=u(h);if(b){var o=u(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return c(this,t)});function R(){return t(this,R),C.apply(this,arguments)}return n(R,[{key:"render",value:function(){return l.createElement(y,{style:[v.dummy,this.props.style]},l.createElement(p,{style:v.text},"SegmentedControlIOS is not supported on this platform!"))}}]),R})(l.Component),v=s.create({dummy:{width:120,height:50,backgroundColor:'#ffbcbc',borderWidth:1,borderColor:'red',alignItems:'center',justifyContent:'center'},text:{color:'#333333',margin:5,fontSize:10}});m.exports=h},335,[31,32,42,44,41,6,62,207,86]); +__d(function(g,r,i,a,m,e,d){'use strict';var n,l=r(d[0]),t=l(r(d[1])),u=l(r(d[2])),o=l(r(d[3])),v=(r(d[4]),r(d[5])),s=r(d[6]),f=v.forwardRef(function(l,f){var c=s.compose(n.slider,l.style),p=l.disabled,V=void 0!==p&&p,C=l.value,S=void 0===C?.5:C,h=l.minimumValue,E=void 0===h?0:h,b=l.maximumValue,x=void 0===b?1:b,R=l.step,y=void 0===R?0:R,U=l.onValueChange,_=l.onSlidingComplete,q=(0,u.default)(l,["disabled","value","minimumValue","maximumValue","step","onValueChange","onSlidingComplete"]),w=U?function(n){null!=n.nativeEvent.fromUser&&n.nativeEvent.fromUser&&U(n.nativeEvent.value)}:null,T=w,j=_?function(n){_(n.nativeEvent.value)}:null;return v.createElement(o.default,(0,t.default)({},q,{enabled:!V,disabled:V,maximumValue:x,minimumValue:E,onChange:T,onResponderTerminationRequest:function(){return!1},onSlidingComplete:j,onStartShouldSetResponder:function(){return!0},onValueChange:w,ref:f,step:y,style:c,value:S}))});n=s.create({slider:{}}),m.exports=f},336,[1,9,60,337,56,6,62]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=(0,t(r(d[1])).default)('Slider',{interfaceOnly:!0,paperComponentName:'RCTSlider'});e.default=l},337,[1,205]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),s=t(r(d[6])),f=t(r(d[7])),h=t(r(d[8])),p=b(r(d[9])),v=t(r(d[10])),C=b(r(d[11])),y=b(r(d[12]));function R(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(R=function(t){return t?o:n})(t)}function b(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=R(n);if(o&&o.has(t))return o.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var s=u?Object.getOwnPropertyDescriptor(t,c):null;s&&(s.get||s.set)?Object.defineProperty(l,c,s):l[c]=t[c]}return l.default=t,o&&o.set(t,l),l}function _(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var w=(function(t){(0,c.default)(O,t);var R,b,w=(R=O,b=_(),function(){var t,n=(0,f.default)(R);if(b){var o=(0,f.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,s.default)(this,t)});function O(){var t;(0,l.default)(this,O);for(var n=arguments.length,o=new Array(n),u=0;u0&&this._nativeSwitchRef&&this._nativeSwitchRef.setNativeProps&&('android'===h.default.OS?C.Commands.setNativeValue(this._nativeSwitchRef,t.value):y.Commands.setValue(this._nativeSwitchRef,t.value))}}]),O})(p.Component),S=function(){return!1},k=function(){return!0};m.exports=w},338,[1,9,60,31,32,42,44,41,56,6,62,339,340]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Commands=void 0;!(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var p=l?Object.getOwnPropertyDescriptor(t,c):null;p&&(p.get||p.set)?Object.defineProperty(f,c,p):f[c]=t[c]}f.default=t,o&&o.set(t,f)})(r(d[1]));var n=t(r(d[2])),o=t(r(d[3]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}var f=(0,n.default)({supportedCommands:['setNativeValue']});e.Commands=f;var l=(0,o.default)('AndroidSwitch',{interfaceOnly:!0});e.default=l},339,[1,6,88,205]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Commands=void 0;!(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var c=l?Object.getOwnPropertyDescriptor(t,p):null;c&&(c.get||c.set)?Object.defineProperty(f,p,c):f[p]=t[p]}f.default=t,u&&u.set(t,f)})(r(d[1]));var n=t(r(d[2]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}var u=(0,t(r(d[3])).default)({supportedCommands:['setValue']});e.Commands=u;var f=(0,n.default)('Switch',{paperComponentName:'RCTSwitch',excludedPlatform:'android'});e.default=f},340,[1,6,205,88]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]);function l(t,n){var u=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),u.push.apply(u,l)}return u}function o(t){for(var u=1;u1&&(Z=b.createElement(C,null,Z)),M=b.createElement(c,t({ref:Q},n,{autoCapitalize:Y,children:Z,disableFullscreenUI:n.disableFullscreenUI,mostRecentEventCount:D,onBlur:function(t){I.blurInput(y.current),n.onBlur&&n.onBlur(t)},onChange:function(t){var u=t.nativeEvent.text;n.onChange&&n.onChange(t),n.onChangeText&&n.onChangeText(u),null!=y.current&&(V(u),B(t.nativeEvent.eventCount))},onFocus:function(t){I.focusInput(y.current),n.onFocus&&n.onFocus(t)},onScroll:function(t){n.onScroll&&n.onScroll(t)},onSelectionChange:function(t){n.onSelectionChange&&n.onSelectionChange(t),null!=y.current&&N({selection:t.nativeEvent.selection,mostRecentEventCount:D})},selection:w,style:X,text:G,textBreakStrategy:n.textBreakStrategy})),b.createElement(h.Provider,{value:!0},b.createElement(O,t({onLayout:n.onLayout,onPress:function(t){(n.editable||void 0===n.editable)&&S(y.current).focus()},accessible:n.accessible,accessibilityLabel:n.accessibilityLabel,accessibilityRole:n.accessibilityRole,accessibilityState:n.accessibilityState,nativeID:n.nativeID,testID:n.testID},W),M))}c=r(d[15]).default,s=r(d[15]).Commands;var P=b.forwardRef(function(n,u){return b.createElement(w,t({},n,{forwardedRef:u}))});P.defaultProps={allowFontScaling:!0,rejectResponderTermination:!0,underlineColorAndroid:'transparent'},P.propTypes=p,P.State={currentlyFocusedInput:I.currentlyFocusedInput,currentlyFocusedField:I.currentlyFocusedField,focusTextInput:I.focusTextInput,blurTextInput:I.blurTextInput};y.create({multilineInput:{paddingTop:5}});m.exports=P},341,[9,54,19,342,56,6,89,62,207,202,178,343,11,223,262,179]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function o(n,o){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(n);o&&(l=l.filter(function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable})),t.push.apply(t,l)}return t}function t(t){for(var l=1;l=t.length?{done:!0}:{done:!1,value:t[s++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(t,n){if(t){if("string"==typeof t)return j(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?j(t,n):void 0}}function j(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,s=new Array(n);o=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(t,n){if(t){if("string"==typeof t)return v(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?v(t,n):void 0}}function v(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);o=0;n--)if(f[n]())return;u.exitApp()});var u={exitApp:function(){t.default&&t.default.invokeDefaultBackPressHandler()},addEventListener:function(n,t){return-1===f.indexOf(t)&&f.push(t),{remove:function(){return u.removeEventListener(n,t)}}},removeEventListener:function(n,t){-1!==f.indexOf(t)&&f.splice(f.indexOf(t),1)}};m.exports=u},360,[1,361,38]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var u=new WeakMap,o=new WeakMap;return(t=function(t){return t?o:u})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,u){if(!u&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var o=t(u);if(o&&o.has(n))return o.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,o&&o.set(n,f);return f})(r(d[0])).get('DeviceEventManager');e.default=n},361,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t,s=r(d[0]);t=r(d[1]),g.RN$Bridgeless?g.RN$stopSurface=t.stopSurface:s.BatchedBridge.registerCallableModule('ReactFabric',t),m.exports=t},362,[175,363]); +__d(function(e,n,t,r,i,l,a){"use strict";var o=n(a[0]);n(a[1]);var u=n(a[2]),s=n(a[3]),c=n(a[4]);function f(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function d(e,n,t){for(var r=[];e;)r.push(e),e=f(e);for(e=r.length;0this.eventPool.length&&this.eventPool.push(e)}function Q(e){e.eventPool=[],e.getPooled=U,e.release=F}o(D.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=A)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=A)},persist:function(){this.isPersistent=A},isPersistent:M,destructor:function(){var e,n=this.constructor.Interface;for(e in n)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=M,this._dispatchInstances=this._dispatchListeners=null}}),D.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},D.extend=function(e){function n(){}function t(){return r.apply(this,arguments)}var r=this;n.prototype=r.prototype;var i=new n;return o(i,t.prototype),t.prototype=i,t.prototype.constructor=t,t.Interface=o({},r.Interface,e),t.extend=r.extend,Q(t),t},Q(D);var H=D.extend({touchHistory:function(){return null}});function j(e){return"topTouchStart"===e}function W(e){return"topTouchMove"===e}var O=["topTouchStart"],B=["topTouchMove"],L=["topTouchCancel","topTouchEnd"],V=[],Y={touchBank:V,numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0};function q(e){return e.timeStamp||e.timestamp}function X(e){if(null==(e=e.identifier))throw Error("Touch object is missing identifier.");return e}function $(e){var n=X(e),t=V[n];t?(t.touchActive=!0,t.startPageX=e.pageX,t.startPageY=e.pageY,t.startTimeStamp=q(e),t.currentPageX=e.pageX,t.currentPageY=e.pageY,t.currentTimeStamp=q(e),t.previousPageX=e.pageX,t.previousPageY=e.pageY,t.previousTimeStamp=q(e)):(t={touchActive:!0,startPageX:e.pageX,startPageY:e.pageY,startTimeStamp:q(e),currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:q(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:q(e)},V[n]=t),Y.mostRecentTimeStamp=q(e)}function K(e){var n=V[X(e)];n&&(n.touchActive=!0,n.previousPageX=n.currentPageX,n.previousPageY=n.currentPageY,n.previousTimeStamp=n.currentTimeStamp,n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=q(e),Y.mostRecentTimeStamp=q(e))}function G(e){var n=V[X(e)];n&&(n.touchActive=!1,n.previousPageX=n.currentPageX,n.previousPageY=n.currentPageY,n.previousTimeStamp=n.currentTimeStamp,n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=q(e),Y.mostRecentTimeStamp=q(e))}var J={recordTouchTrack:function(e,n){if(W(e))n.changedTouches.forEach(K);else if(j(e))n.changedTouches.forEach($),Y.numberActiveTouches=n.touches.length,1===Y.numberActiveTouches&&(Y.indexOfSingleActiveTouch=n.touches[0].identifier);else if(("topTouchEnd"===e||"topTouchCancel"===e)&&(n.changedTouches.forEach(G),Y.numberActiveTouches=n.touches.length,1===Y.numberActiveTouches))for(e=0;e component.");return t=Sn,Sn+=2,{node:un(t,"RCTRawText",n,{text:e},r)}}var wn=setTimeout,Pn=clearTimeout;function Rn(e){var n=e.node,t=Ze(null,Le,{style:{display:"none"}},e.canonical.viewConfig.validAttributes);return{node:dn(n,t),canonical:e.canonical}}var Cn=[],_n=-1;function Nn(e){0>_n||(e.current=Cn[_n],Cn[_n]=null,_n--)}function zn(e,n){Cn[++_n]=e.current,e.current=n}var In={},An={current:In},Mn={current:!1},Dn=In;function Un(e,n){var t=e.type.contextTypes;if(!t)return In;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var i,l={};for(i in t)l[i]=n[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),l}function Fn(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Qn(){Nn(Mn),Nn(An)}function Hn(e,n,t){if(An.current!==In)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");zn(An,n),zn(Mn,t)}function jn(e,n,t){var r=e.stateNode;if(e=n.childContextTypes,"function"!=typeof r.getChildContext)return t;for(var i in r=r.getChildContext())if(!(i in e))throw Error((Qe(n)||"Unknown")+'.getChildContext(): key "'+i+'" is not defined in childContextTypes.');return o({},t,{},r)}function Wn(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||In,Dn=An.current,zn(An,e),zn(Mn,Mn.current),!0}function On(e,n,t){var r=e.stateNode;if(!r)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");t?(e=jn(e,n,Dn),r.__reactInternalMemoizedMergedChildContext=e,Nn(Mn),Nn(An),zn(An,e)):Nn(Mn),zn(Mn,t)}var Bn=c.unstable_runWithPriority,Ln=c.unstable_scheduleCallback,Vn=c.unstable_cancelCallback,Yn=c.unstable_requestPaint,qn=c.unstable_now,Xn=c.unstable_getCurrentPriorityLevel,$n=c.unstable_ImmediatePriority,Kn=c.unstable_UserBlockingPriority,Gn=c.unstable_NormalPriority,Jn=c.unstable_LowPriority,Zn=c.unstable_IdlePriority,et={},nt=c.unstable_shouldYield,tt=void 0!==Yn?Yn:function(){},rt=null,it=null,lt=!1,at=qn(),ot=1e4>at?qn:function(){return qn()-at};function ut(){switch(Xn()){case $n:return 99;case Kn:return 98;case Gn:return 97;case Jn:return 96;case Zn:return 95;default:throw Error("Unknown priority level.")}}function st(e){switch(e){case 99:return $n;case 98:return Kn;case 97:return Gn;case 96:return Jn;case 95:return Zn;default:throw Error("Unknown priority level.")}}function ct(e,n){return e=st(e),Bn(e,n)}function ft(e,n,t){return e=st(e),Ln(e,n,t)}function dt(e){return null===rt?(rt=[e],it=Ln($n,ht)):rt.push(e),et}function pt(){if(null!==it){var e=it;it=null,Vn(e)}ht()}function ht(){if(!lt&&null!==rt){lt=!0;var e=0;try{var n=rt;ct(99,function(){for(;e=n&&(qr=!0),e.firstContext=null)}function _t(e,n){if(kt!==e&&!1!==n&&0!==n)if("number"==typeof n&&1073741823!==n||(kt=e,n=1073741823),n={context:e,observedBits:n,next:null},null===Et){if(null===St)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");Et=n,St.dependencies={expirationTime:0,firstContext:n,responders:null}}else Et=Et.next=n;return e._currentValue2}var Nt=!1;function zt(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function It(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function At(e,n){return(e={expirationTime:e,suspenseConfig:n,tag:0,payload:null,callback:null,next:null}).next=e}function Mt(e,n){if(null!==(e=e.updateQueue)){var t=(e=e.shared).pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}}function Dt(e,n){var t=e.alternate;null!==t&&It(t,e),null===(t=(e=e.updateQueue).baseQueue)?(e.baseQueue=n.next=n,n.next=n):(n.next=t.next,t.next=n)}function Ut(e,n,t,r){var i=e.updateQueue;Nt=!1;var l=i.baseQueue,a=i.shared.pending;if(null!==a){if(null!==l){var u=l.next;l.next=a.next,a.next=u}l=a,i.shared.pending=null,null!==(u=e.alternate)&&(null!==(u=u.updateQueue)&&(u.baseQueue=a))}if(null!==l){u=l.next;var s=i.baseState,c=0,f=null,d=null,p=null;if(null!==u)for(var h=u;;){if((a=h.expirationTime)c&&(c=a)}else{null!==p&&(p=p.next={expirationTime:1073741823,suspenseConfig:h.suspenseConfig,tag:h.tag,payload:h.payload,callback:h.callback,next:null}),Cl(a,h.suspenseConfig);e:{var g=e,v=h;switch(a=n,m=t,v.tag){case 1:if("function"==typeof(g=v.payload)){s=g.call(m,s,a);break e}s=g;break e;case 3:g.effectTag=-4097&g.effectTag|64;case 0:if(null===(a="function"==typeof(g=v.payload)?g.call(m,s,a):g)||void 0===a)break e;s=o({},s,a);break e;case 2:Nt=!0}}null!==h.callback&&(e.effectTag|=32,null===(a=i.effects)?i.effects=[h]:a.push(h))}if(null===(h=h.next)||h===u){if(null===(a=i.shared.pending))break;h=l.next=a.next,a.next=u,i.baseQueue=l=a,i.shared.pending=null}}null===p?f=s:p.next=d,i.baseState=f,i.baseQueue=p,_l(c),e.expirationTime=c,e.memoizedState=s}}function Ft(e,n,t){if(e=n.effects,n.effects=null,null!==e)for(n=0;nm?(g=h,h=null):g=h.sibling;var v=d(i,h,o[m],u);if(null===v){null===h&&(h=g);break}e&&h&&null===v.alternate&&n(i,h),a=l(v,a,m),null===c?s=v:c.sibling=v,c=v,h=g}if(m===o.length)return t(i,h),s;if(null===h){for(;mm?(g=h,h=null):g=h.sibling;var y=d(i,h,v.value,u);if(null===y){null===h&&(h=g);break}e&&h&&null===y.alternate&&n(i,h),a=l(y,a,m),null===c?s=y:c.sibling=y,c=y,h=g}if(v.done)return t(i,h),s;if(null===h){for(;!v.done;m++,v=o.next())null!==(v=f(i,v.value,u))&&(a=l(v,a,m),null===c?s=v:c.sibling=v,c=v);return s}for(h=r(i,h);!v.done;m++,v=o.next())null!==(v=p(h,i,m,v.value,u))&&(e&&null!==v.alternate&&h.delete(null===v.key?m:v.key),a=l(v,a,m),null===c?s=v:c.sibling=v,c=v);return e&&h.forEach(function(e){return n(i,e)}),s}return function(e,r,l,o){var u="object"==typeof l&&null!==l&&l.type===Ee&&null===l.key;u&&(l=l.props.children);var s="object"==typeof l&&null!==l;if(s)switch(l.$$typeof){case xe:e:{for(s=l.key,u=r;null!==u;){if(u.key===s){switch(u.tag){case 7:if(l.type===Ee){t(e,u.sibling),(r=i(u,l.props.children)).return=e,e=r;break e}break;default:if(u.elementType===l.type){t(e,u.sibling),(r=i(u,l.props)).ref=qt(e,u,l),r.return=e,e=r;break e}}t(e,u);break}n(e,u),u=u.sibling}l.type===Ee?((r=Zl(l.props.children,e.mode,o,l.key)).return=e,e=r):((o=Jl(l.type,l.key,l.props,null,e.mode,o)).ref=qt(e,r,l),o.return=e,e=o)}return a(e);case Se:e:{for(u=l.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===l.containerInfo&&r.stateNode.implementation===l.implementation){t(e,r.sibling),(r=i(r,l.children||[])).return=e,e=r;break e}t(e,r);break}n(e,r),r=r.sibling}(r=na(l,e.mode,o)).return=e,e=r}return a(e)}if("string"==typeof l||"number"==typeof l)return l=""+l,null!==r&&6===r.tag?(t(e,r.sibling),(r=i(r,l)).return=e,e=r):(t(e,r),(r=ea(l,e.mode,o)).return=e,e=r),a(e);if(Yt(l))return h(e,r,l,o);if(Ue(l))return m(e,r,l,o);if(s&&Xt(e,l),void 0===l&&!u)switch(e.tag){case 1:case 0:throw e=e.type,Error((e.displayName||e.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}return t(e,r)}}var Kt=$t(!0),Gt=$t(!1),Jt={},Zt={current:Jt},er={current:Jt},nr={current:Jt};function tr(e){if(e===Jt)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return e}function rr(e,n){zn(nr,n),zn(er,e),zn(Zt,Jt),Nn(Zt),zn(Zt,{isInAParentText:!1})}function ir(){Nn(Zt),Nn(er),Nn(nr)}function lr(e){tr(nr.current);var n=tr(Zt.current),t=e.type;t="AndroidTextInput"===t||"RCTMultilineTextInputView"===t||"RCTSinglelineTextInputView"===t||"RCTText"===t||"RCTVirtualText"===t,n!==(t=n.isInAParentText!==t?{isInAParentText:t}:n)&&(zn(er,e),zn(Zt,t))}function ar(e){er.current===e&&(Nn(Zt),Nn(er))}var or={current:0};function ur(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===t.dehydrated||an()||an()))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!=(64&n.effectTag))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function sr(e,n){return{responder:e,props:n}}var cr=be.ReactCurrentDispatcher,fr=be.ReactCurrentBatchConfig,dr=0,pr=null,hr=null,mr=null,gr=!1;function vr(){throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.")}function yr(e,n){if(null===n)return!1;for(var t=0;tl))throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");l+=1,mr=hr=null,n.updateQueue=null,cr.current=Vr,e=t(r,i)}while(n.expirationTime===dr)}if(cr.current=Or,n=null!==hr&&null!==hr.next,dr=0,mr=hr=pr=null,gr=!1,n)throw Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return e}function Tr(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===mr?pr.memoizedState=mr=e:mr=mr.next=e,mr}function xr(){if(null===hr){var e=pr.alternate;e=null!==e?e.memoizedState:null}else e=hr.next;var n=null===mr?pr.memoizedState:mr.next;if(null!==n)mr=n,hr=e;else{if(null===e)throw Error("Rendered more hooks than during the previous render.");e={memoizedState:(hr=e).memoizedState,baseState:hr.baseState,baseQueue:hr.baseQueue,queue:hr.queue,next:null},null===mr?pr.memoizedState=mr=e:mr=mr.next=e}return mr}function Sr(e,n){return"function"==typeof n?n(e):n}function Er(e){var n=xr(),t=n.queue;if(null===t)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");t.lastRenderedReducer=e;var r=hr,i=r.baseQueue,l=t.pending;if(null!==l){if(null!==i){var a=i.next;i.next=l.next,l.next=a}r.baseQueue=i=l,t.pending=null}if(null!==i){i=i.next,r=r.baseState;var o=a=l=null,u=i;do{var s=u.expirationTime;if(spr.expirationTime&&(pr.expirationTime=s,_l(s))}else null!==o&&(o=o.next={expirationTime:1073741823,suspenseConfig:u.suspenseConfig,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),Cl(s,u.suspenseConfig),r=u.eagerReducer===e?u.eagerState:e(r,u.action);u=u.next}while(null!==u&&u!==i);null===o?l=r:o.next=a,mt(r,n.memoizedState)||(qr=!0),n.memoizedState=r,n.baseState=l,n.baseQueue=o,t.lastRenderedState=r}return[n.memoizedState,t.dispatch]}function kr(e){var n=xr(),t=n.queue;if(null===t)throw Error("Should have a queue. This is likely a bug in React. Please file an issue.");t.lastRenderedReducer=e;var r=t.dispatch,i=t.pending,l=n.memoizedState;if(null!==i){t.pending=null;var a=i=i.next;do{l=e(l,a.action),a=a.next}while(a!==i);mt(l,n.memoizedState)||(qr=!0),n.memoizedState=l,null===n.baseQueue&&(n.baseState=l),t.lastRenderedState=l}return[l,r]}function wr(e){var n=Tr();return"function"==typeof e&&(e=e()),n.memoizedState=n.baseState=e,e=(e=n.queue={pending:null,dispatch:null,lastRenderedReducer:Sr,lastRenderedState:e}).dispatch=jr.bind(null,pr,e),[n.memoizedState,e]}function Pr(e,n,t,r){return e={tag:e,create:n,destroy:t,deps:r,next:null},null===(n=pr.updateQueue)?(n={lastEffect:null},pr.updateQueue=n,n.lastEffect=e.next=e):null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function Rr(){return xr().memoizedState}function Cr(e,n,t,r){var i=Tr();pr.effectTag|=e,i.memoizedState=Pr(1|n,t,void 0,void 0===r?null:r)}function _r(e,n,t,r){var i=xr();r=void 0===r?null:r;var l=void 0;if(null!==hr){var a=hr.memoizedState;if(l=a.destroy,null!==r&&yr(r,a.deps))return void Pr(n,t,l,r)}pr.effectTag|=e,i.memoizedState=Pr(1|n,t,l,r)}function Nr(e,n){return Cr(516,4,e,n)}function zr(e,n){return _r(516,4,e,n)}function Ir(e,n){return _r(4,2,e,n)}function Ar(e,n){return"function"==typeof n?(e=e(),n(e),function(){n(null)}):null!==n&&void 0!==n?(e=e(),n.current=e,function(){n.current=null}):void 0}function Mr(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,_r(4,2,Ar.bind(null,n,e),t)}function Dr(){}function Ur(e,n){return Tr().memoizedState=[e,void 0===n?null:n],e}function Fr(e,n){var t=xr();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&yr(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function Qr(e,n){var t=xr();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&yr(n,r[1])?r[0]:(e=e(),t.memoizedState=[e,n],e)}function Hr(e,n,t){var r=ut();ct(98>r?98:r,function(){e(!0)}),ct(97r.tailExpiration&&1n)&&pl.set(e,n))}}function Tl(e,n){e.expirationTime=(e=t>(e=e.nextKnownPendingLevel)?t:e)&&n!==e?0:e}function Sl(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=dt(kl.bind(null,e));else{var n=xl(e),t=e.callbackNode;if(0===n)null!==t&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=vl();if(1073741823===n?r=99:1===n||2===n?r=95:r=0>=(r=10*(1073741821-n)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==t){var i=e.callbackPriority;if(e.callbackExpirationTime===n&&i>=r)return;t!==et&&Vn(t)}e.callbackExpirationTime=n,e.callbackPriority=r,n=1073741823===n?dt(kl.bind(null,e)):ft(r,El.bind(null,e),{timeout:10*(1073741821-n)-ot()}),e.callbackNode=n}}}function El(e,n){if(gl=0,n){n=vl();var t=e.lastExpiredTime;return(0===t||t>n)&&(e.lastExpiredTime=n),Sl(e),null}if(0===(t=xl(e)))return null;if(n=e.callbackNode,(48&qi)!==Fi)throw Error("Should not already be working.");Hl();var r=t,i=qi;qi|=Hi;var l=Rl();for(e===Xi&&r===Ki||wl(e,r);;)try{Il();break}catch(n){Pl(e,n)}if(wt(),Di.current=l,qi=i,null!==$i?i=Wi:(Xi=null,i=Gi),i!==Wi){if(i===Bi&&(i=Nl(e,t=2=t)){e.lastPingedTime=t,wl(e,t);break}if(0!==(l=xl(e))&&l!==t)break;if(0!==i&&i!==t){e.lastPingedTime=i;break}e.timeoutHandle=wn(Ul.bind(null,e),r);break}Ul(e);break;case Vi:if(ia(e,t),t===(i=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=Dl(r)),rl&&(0===(r=e.lastPingedTime)||r>=t)){e.lastPingedTime=t,wl(e,t);break}if(0!==(r=xl(e))&&r!==t)break;if(0!==i&&i!==t){e.lastPingedTime=i;break}if(1073741823!==el?r=10*(1073741821-el)-ot():1073741823===Zi?r=0:(r=10*(1073741821-Zi)-5e3,t=10*(1073741821-t)-(i=ot()),0>(r=i-r)&&(r=0),t<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Mi(r/1960))-r)&&(r=t)),10=(r=0|a.busyMinDurationMs)?r=0:(i=0|a.busyDelayMs,r=(l=ot()-(10*(1073741821-l)-(0|a.timeoutMs||5e3)))<=i?0:i+r-l),10=n?Ki:n:1073741823);if(0!==e.tag&&t===Bi&&(t=Nl(e,n=2 component higher in the tree to provide a loading indicator or placeholder to display."+bt(a))}Gi!==Yi&&(Gi=Bi),o=vi(o,a),f=l;do{switch(f.tag){case 3:u=o,f.effectTag|=4096,f.expirationTime=n,Dt(f,zi(f,u,n));break e;case 1:u=o;var T=f.type,x=f.stateNode;if(0==(64&f.effectTag)&&("function"==typeof T.getDerivedStateFromError||null!==x&&"function"==typeof x.componentDidCatch&&(null===sl||!sl.has(x)))){f.effectTag|=4096,f.expirationTime=n,Dt(f,Ii(f,u,n));break e}}f=f.return}while(null!==f)}$i=Ml($i)}catch(e){n=e;continue}break}}function Rl(){var e=Di.current;return Di.current=Or,null===e?Or:e}function Cl(e,n){etl&&(tl=e)}function Nl(e,n){var t=qi;qi|=Hi;var r=Rl();for(e===Xi&&n===Ki||wl(e,n);;)try{zl();break}catch(n){Pl(e,n)}if(wt(),qi=t,Di.current=r,null!==$i)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");return Xi=null,Gi}function zl(){for(;null!==$i;)$i=Al($i)}function Il(){for(;null!==$i&&!nt();)$i=Al($i)}function Al(e){var n=Ai(e.alternate,e,Ki);return e.memoizedProps=e.pendingProps,null===n&&(n=Ml(e)),Ui.current=null,n}function Ml(e){$i=e;do{var n=$i.alternate;if(e=$i.return,0==(2048&$i.effectTag)){if(n=mi(n,$i,Ki),1===Ki||1!==$i.childExpirationTime){for(var t=0,r=$i.child;null!==r;){var i=r.expirationTime,l=r.childExpirationTime;i>t&&(t=i),l>t&&(t=l),r=r.sibling}$i.childExpirationTime=t}if(null!==n)return n;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=$i.firstEffect),null!==$i.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=$i.firstEffect),e.lastEffect=$i.lastEffect),1<$i.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=$i:e.firstEffect=$i,e.lastEffect=$i))}else{if(null!==(n=gi($i)))return n.effectTag&=2047,n;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=2048)}if(null!==(n=$i.sibling))return n;$i=e}while(null!==$i);return Gi===Wi&&(Gi=Yi),null}function Dl(e){var n=e.expirationTime;return n>(e=e.childExpirationTime)?n:e}function Ul(e){var n=ut();return ct(99,Fl.bind(null,e,n)),null}function Fl(e,n){do{Hl()}while(null!==fl);if((48&qi)!==Fi)throw Error("Should not already be working.");var t=e.finishedWork,r=e.finishedExpirationTime;if(null===t)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,t===e.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=Dl(t);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Xi&&($i=Xi=null,Ki=0),1=t?ui(e,n,t):(zn(or,1&or.current),null!==(n=di(e,n,t))?n.sibling:null);zn(or,1&or.current);break;case 19:if(r=n.childExpirationTime>=t,0!=(64&e.effectTag)){if(r)return fi(e,n,t);n.effectTag|=64}if(null!==(i=n.memoizedState)&&(i.rendering=null,i.tail=null),zn(or,or.current),!r)return null}return di(e,n,t)}qr=!1}else qr=!1;switch(n.expirationTime=0,n.tag){case 2:if(r=n.type,null!==e&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,i=Un(n,An.current),Ct(n,t),i=br(null,n,r,e,i,t),n.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(n.tag=1,n.memoizedState=null,n.updateQueue=null,Fn(r)){var l=!0;Wn(n)}else l=!1;n.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,zt(n);var a=r.getDerivedStateFromProps;"function"==typeof a&&jt(n,r,a,e),i.updater=Wt,n.stateNode=i,i._reactInternalFiber=n,Vt(n,r,e,t),n=ni(null,n,r,!0,l,t)}else n.tag=0,Xr(null,n,i,t),n=n.child;return n;case 16:e:{if(i=n.elementType,null!==e&&(e.alternate=null,n.alternate=null,n.effectTag|=2),e=n.pendingProps,Fe(i),1!==i._status)throw i._result;switch(i=i._result,n.type=i,l=n.tag=Kl(i),e=Tt(i,e),l){case 0:n=Zr(null,n,i,e,t);break e;case 1:n=ei(null,n,i,e,t);break e;case 11:n=$r(null,n,i,e,t);break e;case 14:n=Kr(null,n,i,Tt(i.type,e),r,t);break e}throw Error("Element type is invalid. Received a promise that resolves to: "+i+". Lazy element type must resolve to a class or function.")}return n;case 0:return r=n.type,i=n.pendingProps,Zr(e,n,r,i=n.elementType===r?i:Tt(r,i),t);case 1:return r=n.type,i=n.pendingProps,ei(e,n,r,i=n.elementType===r?i:Tt(r,i),t);case 3:if(ti(n),r=n.updateQueue,null===e||null===r)throw Error("If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.");return r=n.pendingProps,i=null!==(i=n.memoizedState)?i.element:null,It(e,n),Ut(n,r,null,t),(r=n.memoizedState.element)===i?n=di(e,n,t):(Xr(e,n,r,t),n=n.child),n;case 5:return lr(n),r=n.pendingProps.children,Jr(e,n),Xr(e,n,r,t),n=n.child;case 6:return null;case 13:return ui(e,n,t);case 4:return rr(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=Kt(n,null,r,t):Xr(e,n,r,t),n.child;case 11:return r=n.type,i=n.pendingProps,$r(e,n,r,i=n.elementType===r?i:Tt(r,i),t);case 7:return Xr(e,n,n.pendingProps,t),n.child;case 8:case 12:return Xr(e,n,n.pendingProps.children,t),n.child;case 10:e:{r=n.type._context,i=n.pendingProps,a=n.memoizedProps,l=i.value;var o=n.type._context;if(zn(xt,o._currentValue2),o._currentValue2=l,null!==a)if(o=a.value,0===(l=mt(o,l)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(o,l):1073741823))){if(a.children===i.children&&!Mn.current){n=di(e,n,t);break e}}else for(null!==(o=n.child)&&(o.return=n);null!==o;){var u=o.dependencies;if(null!==u){a=o.child;for(var s=u.firstContext;null!==s;){if(s.context===r&&0!=(s.observedBits&l)){1===o.tag&&((s=At(t,null)).tag=2,Mt(o,s)),o.expirationTime=n&&e<=n}function ia(e,n){var t=e.firstSuspendedTime,r=e.lastSuspendedTime;tn||0===t)&&(e.lastSuspendedTime=n),n<=e.lastPingedTime&&(e.lastPingedTime=0),n<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function la(e,n){n>e.firstPendingTime&&(e.firstPendingTime=n);var t=e.firstSuspendedTime;0!==t&&(n>=t?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:n>=e.lastSuspendedTime&&(e.lastSuspendedTime=n+1),n>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=n))}function aa(e){var n=e._reactInternalFiber;if(void 0===n){if("function"==typeof e.render)throw Error("Unable to find node on an unmounted component.");throw Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(e))}return null===(e=Oe(n))?null:e.stateNode}function oa(e,n,t,r){var i=n.current,l=vl(),a=Qt.suspense;l=yl(l,i,a);e:if(t){t=t._reactInternalFiber;n:{if(He(t)!==t||1!==t.tag)throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var o=t;do{switch(o.tag){case 3:o=o.stateNode.context;break n;case 1:if(Fn(o.type)){o=o.stateNode.__reactInternalMemoizedMergedChildContext;break n}}o=o.return}while(null!==o);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}if(1===t.tag){var u=t.type;if(Fn(u)){t=jn(t,u,o);break e}}t=o}else t=In;return null===n.context?n.context=t:n.pendingContext=t,(n=At(l,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(n.callback=r),Mt(i,n),bl(i,l),l}function ua(e,n,t){var r=3o&&(s+=c&&u?v.currentPageX:c&&!u?v.currentPageY:!c&&u?v.previousPageX:v.previousPageY,h=1);else for(var C=0;C=o){s+=c&&u?l.currentPageX:c&&!u?l.currentPageY:!c&&u?l.previousPageX:l.previousPageY,h++}}return h>0?s/h:n.noCentroid},currentCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!1)},currentCentroidX:function(t){return n.centroidDimension(t,0,!0,!0)},currentCentroidY:function(t){return n.centroidDimension(t,0,!1,!0)},noCentroid:-1};m.exports=n},382,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n(r(d[1])),t=n(r(d[2])),o=n(r(d[3])),E=n(r(d[4])),u=n(r(d[5])),A=n(r(d[6])),c=n(r(d[7]));function _(n,s){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);s&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(n,s).enumerable})),t.push.apply(t,o)}return t}function S(n){for(var s=1;s1&&void 0!==arguments[1]?arguments[1]:{};l('object'==typeof t&&null!==t,'Content to share must be a valid object'),l('string'==typeof t.url||'string'==typeof t.message,'At least one of URL and message is required'),l('object'==typeof s&&null!==s,'Options must be a valid object'),l(n.default,'ShareModule should be registered on Android.'),l(!t.title||'string'==typeof t.title,'Invalid title: title should be a string.');var o={title:t.title,message:'string'==typeof t.message?t.message:void 0};return n.default.share(o,s.dialogTitle)}}]),t})());u.sharedAction='sharedAction',u.dismissedAction='dismissedAction',m.exports=u},388,[1,31,32,346,389,56,11,80]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var u=new WeakMap,o=new WeakMap;return(t=function(t){return t?o:u})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,u){if(!u&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var o=t(u);if(o&&o.has(n))return o.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,o&&o.set(n,f);return f})(r(d[0])).get('ShareModule');e.default=n},389,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),u=t(r(d[2])),c=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5]));function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var s=(function(t){(0,u.default)(h,t);var o,s,p=(o=h,s=l(),function(){var t,n=(0,f.default)(o);if(s){var u=(0,f.default)(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return(0,c.default)(this,t)});function h(){return(0,n.default)(this,h),p.apply(this,arguments)}return h})(r(d[6]));m.exports=new s(o.default)},390,[1,31,42,44,41,312,145]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),s={SHORT:t.default.getConstants().SHORT,LONG:t.default.getConstants().LONG,TOP:t.default.getConstants().TOP,BOTTOM:t.default.getConstants().BOTTOM,CENTER:t.default.getConstants().CENTER,show:function(s,n){t.default.show(s,n)},showWithGravity:function(s,n,f){t.default.showWithGravity(s,n,f)},showWithGravityAndOffset:function(s,n,f,o,u){t.default.showWithGravityAndOffset(s,n,f,o,u)}};m.exports=s},391,[1,392]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).getEnforcing('ToastAndroid');e.default=n},392,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=(0,n.useMemo)(function(){return{getCurrentValue:function(){return o.default.getColorScheme()},subscribe:function(t){return o.default.addChangeListener(t),function(){return o.default.removeChangeListener(t)}}}},[]);return(0,u.useSubscription)(t)};var n=r(d[1]),u=r(d[2]),o=t(r(d[3]))},393,[1,6,394,347]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},394,[395]); +__d(function(g,r,i,a,m,e,d){'use strict';var u=r(d[0]),t=r(d[1]);e.useSubscription=function(n){var s=n.getCurrentValue,c=n.subscribe,b=t.useState(function(){return{getCurrentValue:s,subscribe:c,value:s()}});n=b[0];var l=b[1];return b=n.value,n.getCurrentValue===s&&n.subscribe===c||(b=s(),l({getCurrentValue:s,subscribe:c,value:b})),t.useDebugValue(b),t.useEffect(function(){function t(){if(!n){var t=s();l(function(n){return n.getCurrentValue!==s||n.subscribe!==c||n.value===t?n:u({},n,{value:t})})}}var n=!1,b=c(t);return t(),function(){n=!0,b()}},[s,c]),b}},395,[8,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=(0,f.useState)(function(){return u.default.get('window')}),c=(0,n.default)(t,2),o=c[0],l=c[1];return(0,f.useEffect)(function(){function t(t){var n=t.window;o.width===n.width&&o.height===n.height&&o.scale===n.scale&&o.fontScale===n.fontScale||l(n)}return u.default.addEventListener('change',t),t({window:u.default.get('window')}),function(){u.default.removeEventListener('change',t)}},[o]),o};var n=t(r(d[1])),u=t(r(d[2])),f=r(d[3])},396,[1,19,64,6]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=(r(d[2]),400);var o={vibrate:function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if('number'==typeof o)t.default.vibrate(o);else{if(!Array.isArray(o))throw new Error('Vibration pattern should be a number or array');t.default.vibrateByPattern(o,u?0:-1)}},cancel:function(){t.default.cancel()}};m.exports=o},397,[1,398,56]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).getEnforcing('Vibration');e.default=n},398,[17]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]),c=r(d[3]),o=r(d[4]);function f(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var l,s=r(d[5]);r(d[6]);l=(function(l){u(v,l);var s,y,p=(s=v,y=f(),function(){var t,n=o(s);if(y){var u=o(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return c(this,t)});function v(){return t(this,v),p.apply(this,arguments)}return n(v,[{key:"render",value:function(){return null}}],[{key:"ignoreWarnings",value:function(t){}},{key:"install",value:function(){}},{key:"uninstall",value:function(){}}]),v})(s.Component),m.exports=l},399,[31,32,42,44,41,6,380]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicColorIOS=void 0;e.DynamicColorIOS=function(o){throw new Error('DynamicColorIOS is not available on this platform.')}},400,[]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.ColorAndroid=void 0;var o=r(d[0]);e.ColorAndroid=function(n){return(0,o.ColorAndroidPrivate)(n)}},401,[70]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n.shape({x:n.number,y:n.number});m.exports=s},402,[72]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},p={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},y={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},n={};function s(p){return t.isMemo(p)?y:n[p.$$typeof]||o}n[t.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},n[t.Memo]=y;var c=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,u=Object.getOwnPropertyDescriptor,O=Object.getPrototypeOf,P=Object.prototype;m.exports=function t(o,y,n){if('string'!=typeof y){if(P){var v=O(y);v&&v!==P&&t(o,v,n)}var b=f(y);l&&(b=b.concat(l(y)));for(var j=s(o),T=s(y),$=0;$2&&void 0!==arguments[2]?arguments[2]:{});return n.forEach(function(n){var u,l,s=t[n];if(l=n,!(void 0===(u=s)||u===Object(u)&&'__isNative'in u||'onHandlerStateChange'===l||'onGestureEvent'===l)){var c=t[n];'simultaneousHandlers'===n||'waitFor'===n?c=B(t[n]):'hitSlop'===n&&'object'!=typeof c&&(c={top:c,left:c,bottom:c,right:c}),o[n]=c}}),o}function B(t){return Array.isArray(t)||(t=[t]),'web'===y.Platform.OS?t.map(function(t){return t.current}).filter(function(t){return t}):t.map(function(t){var n;return _[t]||(null==(n=t.current)?void 0:n.handlerTag)||-1}).filter(function(t){return t>0})}function J(t){var n=function(t){return Array.isArray(t)?t.some(function(t){return t&&null===t.current}):t&&null===t.current};return n(t.simultaneousHandlers)||n(t.waitFor)}var U=(o={},(0,h.default)(o,H.State.UNDETERMINED,void 0),(0,h.default)(o,H.State.BEGAN,'onBegan'),(0,h.default)(o,H.State.FAILED,'onFailed'),(0,h.default)(o,H.State.CANCELLED,'onCancelled'),(0,h.default)(o,H.State.ACTIVE,'onActivated'),(0,h.default)(o,H.State.END,'onEnded'),o)},408,[1,27,31,32,42,44,41,54,6,10,409,410,4]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=[],n=[];function u(t,n,o,l){if(t===n)return 0!==t||1/t==1/n;if(null==t||null==n)return!1;if('object'!=typeof t||'object'!=typeof n)return!1;var c=Object.prototype.toString,s=c.call(t);if(s!=c.call(n))return!1;switch(s){case'[object String]':return t==String(n);case'[object Number]':return!isNaN(t)&&!isNaN(n)&&t==Number(n);case'[object Date]':case'[object Boolean]':return+t==+n;case'[object RegExp]':return t.source==n.source&&t.global==n.global&&t.multiline==n.multiline&&t.ignoreCase==n.ignoreCase}for(var f=o.length;f--;)if(o[f]==t)return l[f]==n;o.push(t),l.push(n);var p=0;if('[object Array]'===s){if((p=t.length)!==n.length)return!1;for(;p--;)if(!u(t[p],n[p],o,l))return!1}else{if(t.constructor!==n.constructor)return!1;if(t.hasOwnProperty('valueOf')&&n.hasOwnProperty('valueOf'))return t.valueOf()==n.valueOf();var h=Object.keys(t);if(h.length!=Object.keys(n).length)return!1;for(var b=0;b1&&void 0!==arguments[1]?arguments[1]:{},o=c.forwardRef(function(o,l){var p=Object.keys(o).reduce(function(t,n){var u=O;return u.includes(n)&&(t[n]=o[n]),t},s({},u)),y=(0,c.useRef)(),b=(0,c.useRef)();return(0,c.useImperativeHandle)(l,function(){var t=b.current;return y.current&&t?(y.current.handlerTag=t.handlerTag,y.current):null},[y,b]),c.createElement(f.NativeViewGestureHandler,(0,n.default)({},p,{ref:b}),c.createElement(t,(0,n.default)({},o,{ref:y})))});return o.displayName=t.displayName||'ComponentWrapper',o};var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),c=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=l(n);if(u&&u.has(t))return u.get(t);var o={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var p=c?Object.getOwnPropertyDescriptor(t,f):null;p&&(p.get||p.set)?Object.defineProperty(o,f,p):o[f]=t[f]}o.default=t,u&&u.set(t,o);return o})(r(d[4])),f=r(d[5]);function l(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(l=function(t){return t?u:n})(t)}function p(t,n){var u=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),u.push.apply(u,o)}return u}function s(t){for(var n=1;n=23}},417,[1,54,9,60,31,32,42,44,41,10,6,418]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.TOUCHABLE_STATE=void 0;var s=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),p=t(r(d[6])),c=(function(t,s){if(!s&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=E(s);if(o&&o.has(t))return o.get(t);var n={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var p=l?Object.getOwnPropertyDescriptor(t,u):null;p&&(p.get||p.set)?Object.defineProperty(n,u,p):n[u]=t[u]}n.default=t,o&&o.set(t,n);return n})(r(d[7])),h=r(d[8]),T=r(d[9]),f=r(d[10]);function E(t){if("function"!=typeof WeakMap)return null;var s=new WeakMap,o=new WeakMap;return(E=function(t){return t?o:s})(t)}function v(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var y={UNDETERMINED:0,BEGAN:1,MOVED_OUTSIDE:2};e.TOUCHABLE_STATE=y;var S=(function(t){(0,l.default)(O,t);var E,S,D=(E=O,S=v(),function(){var t,s=(0,p.default)(E);if(S){var o=(0,p.default)(this).constructor;t=Reflect.construct(s,arguments,o)}else t=s.apply(this,arguments);return(0,u.default)(this,t)});function O(){var t;(0,o.default)(this,O);for(var s=arguments.length,n=new Array(s),l=0;l0:b,A=t.overshootRight,E=void 0===A?S>0:A,W=h.Animated.add(u,p.interpolate({inputRange:[0,s],outputRange:[0,1]})).interpolate({inputRange:[-S-(E?1:l),-S,c,c+(R?1:l)],outputRange:[-S-(E||l>1?1:0),-S,c,c+(R||l>1?1:0)]});n.transX=W,n.showLeftAction=c>0?W.interpolate({inputRange:[-1,0,c],outputRange:[0,0,1]}):new h.Animated.Value(0),n.leftActionTranslate=n.showLeftAction.interpolate({inputRange:[0,Number.MIN_VALUE],outputRange:[-1e4,0],extrapolate:'clamp'}),n.showRightAction=S>0?W.interpolate({inputRange:[-S,0,1],outputRange:[1,0,0]}):new h.Animated.Value(0),n.rightActionTranslate=n.showRightAction.interpolate({inputRange:[0,Number.MIN_VALUE],outputRange:[-1e4,0],extrapolate:'clamp'})},n.onTapHandlerStateChange=function(t){t.nativeEvent.oldState===w.State.ACTIVE&&n.close()},n.onHandlerStateChange=function(t){t.nativeEvent.oldState===w.State.ACTIVE&&n.handleRelease(t)},n.handleRelease=function(t){var o=t.nativeEvent,s=o.velocityX,l=o.translationX,p=n.state,u=p.leftWidth,f=void 0===u?0:u,c=p.rowWidth,h=void 0===c?0:c,v=p.rowState,w=n.state.rightOffset,O=h-(void 0===w?h:w),y=n.props,S=y.friction,b=y.leftThreshold,A=void 0===b?f/2:b,E=y.rightThreshold,W=void 0===E?O/2:E,L=n.currentOffset()+l/S,j=(l+R*s)/S,T=0;0===v?j>A?T=f:j<-W&&(T=-O):1===v?j>-A&&(T=f):j0&&n.props.onSwipeableLeftOpen?n.props.onSwipeableLeftOpen():o<0&&n.props.onSwipeableRightOpen&&n.props.onSwipeableRightOpen(),0===o?null==n.props.onSwipeableClose||n.props.onSwipeableClose():null==n.props.onSwipeableOpen||n.props.onSwipeableOpen())}),o>0&&n.props.onSwipeableLeftWillOpen?n.props.onSwipeableLeftWillOpen():o<0&&n.props.onSwipeableRightWillOpen&&n.props.onSwipeableRightWillOpen(),0===o?null==n.props.onSwipeableWillClose||n.props.onSwipeableWillClose():null==n.props.onSwipeableWillOpen||n.props.onSwipeableWillOpen()},n.onRowLayout=function(t){var o=t.nativeEvent;n.setState({rowWidth:o.layout.width})},n.currentOffset=function(){var t=n.state,o=t.leftWidth,s=void 0===o?0:o,l=t.rowWidth,p=void 0===l?0:l,u=t.rowState,f=n.state.rightOffset;return 1===u?s:-1===u?-(p-(void 0===f?p:f)):0},n.close=function(){n.animateRow(n.currentOffset(),0)},n.openLeft=function(){var t=n.state.leftWidth,o=void 0===t?0:t;n.animateRow(n.currentOffset(),o)},n.openRight=function(){var t=n.state.rowWidth,o=void 0===t?0:t,s=n.state.rightOffset,l=o-(void 0===s?o:s);n.animateRow(n.currentOffset(),-l)};var o=new h.Animated.Value(0);return n.state={dragX:o,rowTranslation:new h.Animated.Value(0),rowState:0,leftWidth:void 0,rightOffset:void 0,rowWidth:void 0},n.updateAnimatedEvent(t,n.state),n.onGestureEvent=h.Animated.event([{nativeEvent:{translationX:o}}],{useNativeDriver:t.useNativeAnimations}),n}return(0,l.default)(A,[{key:"UNSAFE_componentWillUpdate",value:function(t,n){this.props.friction===t.friction&&this.props.overshootLeft===t.overshootLeft&&this.props.overshootRight===t.overshootRight&&this.props.overshootFriction===t.overshootFriction&&this.state.leftWidth===n.leftWidth&&this.state.rightOffset===n.rightOffset&&this.state.rowWidth===n.rowWidth||this.updateAnimatedEvent(t,n)}},{key:"render",value:function(){var t=this,o=this.state.rowState,s=this.props,l=s.children,p=s.renderLeftActions,u=s.renderRightActions,f=p&&c.createElement(h.Animated.View,{style:[E.leftActions,{transform:[{translateX:this.leftActionTranslate}]}]},p(this.showLeftAction,this.transX),c.createElement(h.View,{onLayout:function(n){var o=n.nativeEvent;return t.setState({leftWidth:o.layout.x})}})),w=u&&c.createElement(h.Animated.View,{style:[E.rightActions,{transform:[{translateX:this.rightActionTranslate}]}]},u(this.showRightAction,this.transX),c.createElement(h.View,{onLayout:function(n){var o=n.nativeEvent;return t.setState({rightOffset:o.layout.x})}}));return c.createElement(v.PanGestureHandler,(0,n.default)({activeOffsetX:[-10,10]},this.props,{onGestureEvent:this.onGestureEvent,onHandlerStateChange:this.onHandlerStateChange}),c.createElement(h.Animated.View,{onLayout:this.onRowLayout,style:[E.container,this.props.containerStyle]},f,w,c.createElement(v.TapGestureHandler,{enabled:0!==o,onHandlerStateChange:this.onTapHandlerStateChange},c.createElement(h.Animated.View,{pointerEvents:0===o?'auto':'box-only',style:[{transform:[{translateX:this.transX}]},this.props.childrenContainerStyle]},l))))}}]),A})(c.Component);e.default=A,A.defaultProps={friction:1,overshootFriction:1,useNativeAnimations:!0};var E=h.StyleSheet.create({container:{overflow:'hidden'},leftActions:S(S({},h.StyleSheet.absoluteFillObject),{},{flexDirection:h.I18nManager.isRTL?'row-reverse':'row'}),rightActions:S(S({},h.StyleSheet.absoluteFillObject),{},{flexDirection:h.I18nManager.isRTL?'row':'row-reverse'})})},423,[1,9,54,31,32,42,44,41,6,10,407,4]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),p=t(r(d[6])),c=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=y(n);if(o&&o.has(t))return o.get(t);var l={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var p=s?Object.getOwnPropertyDescriptor(t,u):null;p&&(p.get||p.set)?Object.defineProperty(l,u,p):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[7])),f=t(r(d[8])),w=r(d[9]),h=r(d[10]),v=r(d[11]);function y(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(y=function(t){return t?o:n})(t)}function S(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function b(t){for(var o=1;os?v-s:0);var S=f+y+(n.drawerShown?s:0);S+V*w>s/2?n.animateDrawer(S,s,w):n.animateDrawer(S,0,w)},n.updateShowing=function(t){var o,l,s;n.drawerShown=t,null==(o=n.accessibilityIsModalView.current)||o.setNativeProps({accessibilityViewIsModal:t}),null==(l=n.pointerEventsView.current)||l.setNativeProps({pointerEvents:t?'auto':'none'});var u=n.props,p=u.drawerPosition,c=u.minSwipeDistance,f=u.edgeWidth,w='left'===p,h=(w?1:-1)*(n.drawerShown?-1:1),v=w?{left:0,width:t?void 0:f}:{right:0,width:t?void 0:f};null==(s=n.panGestureHandler.current)||s.setNativeProps({hitSlop:v,activeOffsetX:h*c})},n.animateDrawer=function(t,o,l,s){if(n.state.dragX.setValue(0),n.state.touchX.setValue('left'===n.props.drawerPosition?0:n.state.containerWidth),null!=t){var u=t;n.props.useNativeAnimations&&(t0?u=Math.min(t+l/60,o):t>o&&l<0&&(u=Math.max(t+l/60,o))),n.state.drawerTranslation.setValue(u)}var p=0!==o;n.updateShowing(p),n.emitStateChanged(E,p),n.props.hideStatusBar&&w.StatusBar.setHidden(p,n.props.statusBarAnimation||'slide'),w.Animated.spring(n.state.drawerTranslation,{velocity:l,bounciness:0,toValue:o,useNativeDriver:n.props.useNativeAnimations,speed:null!=s?s:void 0}).start(function(t){t.finished&&(n.emitStateChanged(A,p),p?null==n.props.onDrawerOpen||n.props.onDrawerOpen():null==n.props.onDrawerClose||n.props.onDrawerClose())})},n.openDrawer=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n.animateDrawer(void 0,n.props.drawerWidth,t.velocity?t.velocity:0),n.forceUpdate()},n.closeDrawer=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};n.animateDrawer(void 0,0,t.velocity?t.velocity:0),n.forceUpdate()},n.renderOverlay=function(){(0,f.default)(n.openValue,'should be set');var t={opacity:n.openValue.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),backgroundColor:n.props.overlayColor};return c.createElement(h.TapGestureHandler,{onHandlerStateChange:n.onTapHandlerStateChange},c.createElement(w.Animated.View,{pointerEvents:n.drawerShown?'auto':'none',ref:n.pointerEventsView,style:[C.overlay,t]}))},n.renderDrawer=function(){var t,o=n.props,l=o.drawerBackgroundColor,s=o.drawerWidth,u=o.drawerPosition,p=o.drawerType,h=o.drawerContainerStyle,v=o.contentContainerStyle,y='left'===u,S='back'!==p,b='front'!==p,O=w.I18nManager.isRTL?y:!y,V={backgroundColor:l,width:s},A=n.openValue;((0,f.default)(A,'should be set'),b)&&(t={transform:[{translateX:A.interpolate({inputRange:[0,1],outputRange:y?[0,s]:[0,-s],extrapolate:'clamp'})}]});var D=0;if(S){var E=y?-s:s;D=A.interpolate({inputRange:[0,1],outputRange:[E,0],extrapolate:'clamp'})}var P={transform:[{translateX:D}],flexDirection:O?'row-reverse':'row'};return c.createElement(w.Animated.View,{style:C.main,onLayout:n.handleContainerLayout},c.createElement(w.Animated.View,{style:['front'===p?C.containerOnBack:C.containerInFront,t,v],importantForAccessibility:n.drawerShown?'no-hide-descendants':'yes'},'function'==typeof n.props.children?n.props.children(n.openValue):n.props.children,n.renderOverlay()),c.createElement(w.Animated.View,{pointerEvents:"box-none",ref:n.accessibilityIsModalView,accessibilityViewIsModal:n.drawerShown,style:[C.drawerContainer,P,h]},c.createElement(w.View,{style:V},n.props.renderNavigationView(n.openValue))))},n.setPanGestureRef=function(t){n.panGestureHandler.current=t,null==n.props.onGestureRef||n.props.onGestureRef(t)};var l=new w.Animated.Value(0),s=new w.Animated.Value(0),u=new w.Animated.Value(0);return n.state={dragX:l,touchX:s,drawerTranslation:u,containerWidth:0},n.updateAnimatedEvent(t,n.state),n}return(0,l.default)(b,[{key:"UNSAFE_componentWillUpdate",value:function(t,n){this.props.drawerPosition===t.drawerPosition&&this.props.drawerWidth===t.drawerWidth&&this.props.drawerType===t.drawerType&&this.state.containerWidth===n.containerWidth||this.updateAnimatedEvent(t,n)}},{key:"render",value:function(){var t=this.props,n=t.drawerPosition,o=t.drawerLockMode,l=t.edgeWidth,s=t.minSwipeDistance,u='left'===n,p=(u?1:-1)*(this.drawerShown?-1:1),f=u?{left:0,width:this.drawerShown?void 0:l}:{right:0,width:this.drawerShown?void 0:l};return c.createElement(h.PanGestureHandler,{ref:this.setPanGestureRef,hitSlop:f,activeOffsetX:p*s,failOffsetY:[-15,15],onGestureEvent:this.onGestureEvent,onHandlerStateChange:this.openingHandlerStateChange,enableTrackpadTwoFingerGesture:this.props.enableTrackpadTwoFingerGesture,enabled:'locked-closed'!==o&&'locked-open'!==o},this.renderDrawer())}}]),b})(c.Component);e.default=P,P.defaultProps={drawerWidth:200,drawerPosition:'left',useNativeAnimations:!0,drawerType:'front',edgeWidth:20,minSwipeDistance:3,overlayColor:'rgba(0, 0, 0, 0.7)',drawerLockMode:'unlocked',enableTrackpadTwoFingerGesture:!1},P.positions={Left:'left',Right:'right'};var C=w.StyleSheet.create({drawerContainer:b(b({},w.StyleSheet.absoluteFillObject),{},{zIndex:1001,flexDirection:'row'}),containerInFront:b(b({},w.StyleSheet.absoluteFillObject),{},{zIndex:1002}),containerOnBack:b({},w.StyleSheet.absoluteFillObject),main:{flex:1,zIndex:0,overflow:'hidden'},overlay:b(b({},w.StyleSheet.absoluteFillObject),{},{zIndex:1e3})})},424,[1,54,31,32,42,44,41,6,11,10,407,4]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"registerRootComponent",{enumerable:!0,get:function(){return o.default}}),e.Logs=void 0,r(d[1]);var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var l=c?Object.getOwnPropertyDescriptor(t,p):null;l&&(l.get||l.set)?Object.defineProperty(f,p,l):f[p]=t[p]}f.default=t,o&&o.set(t,f);return f})(r(d[2]));e.Logs=n;var o=t(r(d[3]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}},425,[1,426,487,488]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);t(r(d[1]));r(d[2]),r(d[3]),r(d[4]),r(d[5]);var o,n,l=r(d[6]),u=p(r(d[7])),s=p(r(d[8])),c=(t(r(d[9])),r(d[10]));t(r(d[11]));function f(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(f=function(t){return t?n:o})(t)}function p(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=f(o);if(n&&n.has(t))return n.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var c=u?Object.getOwnPropertyDescriptor(t,s):null;c&&(c.get||c.set)?Object.defineProperty(l,s,c):l[s]=t[s]}return l.default=t,n&&n.set(t,l),l}u.default.executionEnvironment===u.ExecutionEnvironment.Standalone||(u.default.executionEnvironment,u.ExecutionEnvironment.StoreClient);if(c.StyleSheet.setStyleAttributePreprocessor&&c.StyleSheet.setStyleAttributePreprocessor('fontFamily',s.processFontFamily),'web'!==l.Platform.OS&&(null==(o=window.navigator)||!o.geolocation)){var v=function(t){return function(){console.warn("window.navigator.geolocation."+t+" is not available. Import and execute installWebGeolocationPolyfill() from expo-location to add it, or use the expo-location APIs instead.")}};window.navigator.geolocation={getCurrentPosition:v('getCurrentPosition'),watchPosition:v('watchPostion'),clearWatch:function(){},stopObserving:function(){}}}if(null!=(n=l.NativeModulesProxy.ExpoUpdates)&&n.isMissingRuntimeVersion){var w="expo-updates is installed but there is no runtime or SDK version configured. You'll need to configure one of these two properties in "+l.Platform.select({ios:'Expo.plist',android:'AndroidManifest.xml'})+' before OTA updates will work properly.';throw new Error(w)}},426,[1,9,427,446,447,448,429,428,473,6,10,479]); +__d(function(g,r,i,a,m,e,d){var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var s=l?Object.getOwnPropertyDescriptor(t,p):null;s&&(s.get||s.set)?Object.defineProperty(f,p,s):f[p]=t[p]}f.default=t,o&&o.set(t,f);return f})(r(d[0])),n=r(d[1]),o=r(d[2]);function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}if(n.findNodeHandle,(0,o.shouldThrowAnErrorOutsideOfExpo)()&&(null==t.default||!t.default.expoVersion)&&(null==t.default?void 0:t.default.executionEnvironment)!==t.ExecutionEnvironment.Bare)throw new Error("Expo native runtime is not available: something went wrong and we aren't sure what it was. Please post more information and get support at https://forums.expo.io.")},427,[428,10,445]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AppOwnership",{enumerable:!0,get:function(){return u.AppOwnership}}),Object.defineProperty(e,"ExecutionEnvironment",{enumerable:!0,get:function(){return u.ExecutionEnvironment}}),Object.defineProperty(e,"UserInterfaceIdiom",{enumerable:!0,get:function(){return u.UserInterfaceIdiom}}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),s=r(d[3]),l=r(d[4]),u=r(d[5]),c=n(r(d[6]));function f(n,t){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})),o.push.apply(o,s)}return o}function p(n){for(var o=1;o0&&(O=v));l.NativeModules.EXDevLauncher&&(l.NativeModules.EXDevLauncher.manifestString&&(b=JSON.parse(l.NativeModules.EXDevLauncher.manifestString)),b&&Object.keys(b).length>0&&(O=b));!O&&c.default&&c.default.manifest&&'string'==typeof(O=c.default.manifest)&&(O=JSON.parse(O));var y=c.default||{},h=(y.name,y.appOwnership),E=(0,o.default)(y,["name","appOwnership"]),w=!1,x=!1,P=!1,I=p(p({},E),{},{appOwnership:null!=h?h:null,get installationId(){return w||(console.warn("Constants.installationId has been deprecated in favor of generating and storing your own ID. Implement it using expo-application's androidId on Android and a storage API such as expo-secure-store on iOS and localStorage on the web. This API will be removed in SDK 44."),w=!0),E.installationId},get deviceId(){return x||(console.warn("Constants.deviceId has been deprecated in favor of generating and storing your own ID. This API will be removed in SDK 44."),x=!0),E.installationId},get linkingUrl(){return P||(console.warn("Constants.linkingUrl has been renamed to Constants.linkingUri. Consider using the Linking API directly. Constants.linkingUrl will be removed in SDK 44."),P=!0),E.linkingUri}});function S(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!O){var t=null===O?'null':'undefined';if(E.executionEnvironment===u.ExecutionEnvironment.Bare&&'web'!==l.Platform.OS)n||console.warn("Constants.manifest is "+t+" because the embedded app.config could not be read. Ensure that you have installed the expo-constants build scripts if you need to read from Constants.manifest.");else if(E.executionEnvironment===u.ExecutionEnvironment.StoreClient||E.executionEnvironment===u.ExecutionEnvironment.Standalone)throw new s.CodedError('ERR_CONSTANTS_MANIFEST_UNAVAILABLE',"Constants.manifest is "+t+", must be an object.")}return O}Object.defineProperties(I,{manifest:{enumerable:!0,get:function(){return S()},set:function(n){O=n}},__unsafeNoWarnManifest:{enumerable:!0,get:function(){return S(!0)}}});var j=I;e.default=j},428,[1,54,60,429,10,443,444]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={deprecate:!0};Object.defineProperty(e,"deprecate",{enumerable:!0,get:function(){return o.default}});var c=r(d[1]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===c[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var o=t(r(d[2]))},429,[1,430,441]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n=r(d[0]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))})},430,[431]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DeviceEventEmitter",{enumerable:!0,get:function(){return n.DeviceEventEmitter}}),Object.defineProperty(e,"EventEmitter",{enumerable:!0,get:function(){return u.EventEmitter}}),Object.defineProperty(e,"NativeModulesProxy",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"requireNativeViewManager",{enumerable:!0,get:function(){return c.requireNativeViewManager}}),Object.defineProperty(e,"Platform",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"SyntheticPlatformEmitter",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"CodedError",{enumerable:!0,get:function(){return l.CodedError}}),Object.defineProperty(e,"UnavailabilityError",{enumerable:!0,get:function(){return b.UnavailabilityError}}),e.RCTDeviceEventEmitter=void 0;var n=r(d[1]),u=r(d[2]),o=t(r(d[3])),c=r(d[4]),f=t(r(d[5])),v=t(r(d[6])),l=r(d[7]),b=r(d[8]),E=n.DeviceEventEmitter;e.RCTDeviceEventEmitter=E},431,[1,10,432,433,434,435,437,439,440]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.EventEmitter=void 0;var n=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),v=t(r(d[4])),u=r(d[5]),l=(function(){function t(n){(0,s.default)(this,t),this._listenerCount=0,this._nativeModule=n,this._eventEmitter=new u.NativeEventEmitter(n)}return(0,o.default)(t,[{key:"addListener",value:function(t,s){var o,v=this;!this._listenerCount&&'ios'!==u.Platform.OS&&this._nativeModule.startObserving&&this._nativeModule.startObserving(),this._listenerCount++;var l=this._eventEmitter.addListener(t,s),h=(o={},(0,n.default)(o,"@@nativeEmitterSubscription@@",l),(0,n.default)(o,"remove",function(){v.removeSubscription(h)}),o);return h}},{key:"removeAllListeners",value:function(t){var n=this._eventEmitter.listeners(t).length;this._eventEmitter.removeAllListeners(t),this._listenerCount-=n,(0,v.default)(this._listenerCount>=0,"EventEmitter must have a non-negative number of listeners"),!this._listenerCount&&'ios'!==u.Platform.OS&&this._nativeModule.stopObserving&&this._nativeModule.stopObserving()}},{key:"removeSubscription",value:function(t){var n=t["@@nativeEmitterSubscription@@"];n&&(this._eventEmitter.removeSubscription(n),this._listenerCount--,delete t["@@nativeEmitterSubscription@@"],t.remove=function(){},!this._listenerCount&&'ios'!==u.Platform.OS&&this._nativeModule.stopObserving&&this._nativeModule.stopObserving())}},{key:"emit",value:function(t){for(var n,s=arguments.length,o=new Array(s>1?s-1:0),v=1;v",u.default.forwardRef(s)};var n=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),u=t(r(d[4])),f=r(d[5]);function l(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=p(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var c=0;return function(){return c>=t.length?{done:!0}:{done:!1,value:t[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(t,n){if(t){if("string"==typeof t)return y(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?y(t,n):void 0}}function y(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,c=new Array(n);o2&&void 0!==arguments[2]?arguments[2]:{},c=u.currentVersion,h=u.versionToRemove,p=u.replacement,_=f(n)+":"+s+":"+p;l[_]||(l[_]=!0);if(!c||!h||(0,t.default)(c,h)>=0){var E="`"+s+"` has been removed";throw h&&(E=E+" as of version \""+h+"\""),p&&p.length&&(E=E+" please migrate to: `"+p+"`"),new o.CodedError("ERR_DEPRECATED_API",v(n,E))}var b="`"+s+"` has been deprecated";p&&p.length&&(b=b+" in favor of `"+p+"`");h&&h.length&&(b=b+" and will be removed in version \""+h+"\"");console.warn(v(n,b))};var o=r(d[1]),t=n(r(d[2])),l={};function v(n,o){return n+": "+o}function f(n){return n.replace(/[-.]/g,'_').toUpperCase()}},441,[1,431,442]); +__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(){var t=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function n(t){var n,o,f=t.replace(/^v/,'').replace(/\+.*$/,''),u=(o='-',-1===(n=f).indexOf(o)?n.length:n.indexOf(o)),p=f.substring(0,u).split('.');return p.push(f.substring(u+1)),p}function o(t){return isNaN(Number(t))?t:Number(t)}function f(n){if('string'!=typeof n)throw new TypeError('Invalid argument expected string');if(!t.test(n))throw new Error('Invalid argument not valid semver (\''+n+'\' received)')}function u(t,u){[t,u].forEach(f);for(var p=n(t),s=n(u),v=0;vl)return 1;if(l>c)return-1}var h=p[p.length-1],y=s[s.length-1];if(h&&y){var x=h.split('.').map(o),b=y.split('.').map(o);for(v=0;vb[v])return 1;if(b[v]>x[v])return-1}}else if(h||y)return h?-1:1;return 0}var p=['>','>=','=','<','<='],s={'>':[1],'>=':[0,1],'=':[0],'<=':[-1,0],'<':[-1]};function v(t){if('string'!=typeof t)throw new TypeError('Invalid operator type, expected string but got '+typeof t);if(-1===p.indexOf(t))throw new TypeError('Invalid operator, expected one of '+p.join('|'))}return u.validate=function(n){return'string'==typeof n&&t.test(n)},u.compare=function(t,n,o){v(o);var f=u(t,n);return s[o].indexOf(f)>-1},u},'function'==typeof define&&define.amd?define([],n):'object'==typeof e?m.exports=n():t.compareVersions=n()},442,[]); +__d(function(g,r,i,a,m,e,d){var n,t,o;Object.defineProperty(e,"__esModule",{value:!0}),e.UserInterfaceIdiom=e.ExecutionEnvironment=e.AppOwnership=void 0,e.AppOwnership=n,(function(n){n.Standalone="standalone",n.Expo="expo",n.Guest="guest"})(n||(e.AppOwnership=n={})),e.ExecutionEnvironment=t,(function(n){n.Bare="bare",n.Standalone="standalone",n.StoreClient="storeClient"})(t||(e.ExecutionEnvironment=t={})),e.UserInterfaceIdiom=o,(function(n){n.Handset="handset",n.Tablet="tablet",n.Unsupported="unsupported"})(o||(e.UserInterfaceIdiom=o={}))},443,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]).NativeModulesProxy.ExponentConstants;e.default=t},444,[429]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._setShouldThrowAnErrorOutsideOfExpo=function(n){o=n},e.shouldThrowAnErrorOutsideOfExpo=function(){return o};var o=!0},445,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);n(r(d[1])),n(r(d[2]))},446,[1,428,109]); +__d(function(g,r,i,a,m,e,d){r(d[0]).AppRegistry;var n=console.warn;console.warn=function(){for(var t=arguments.length,o=new Array(t),s=0;s0&&'string'==typeof o[0]&&(/^Require cycle: .*node_modules/.test(o[0])||/Use UIManager\.getViewManagerConfig\('LottieAnimationView'\) instead\./.test(o[0])||/ReactNative\.NativeModules\.LottieAnimationView\.getConstants/.test(o[0]))||n.apply(console,o)};var t=console.error;console.error=function(){for(var n=arguments.length,o=new Array(n),s=0;s0&&'string'==typeof o[0]&&/^Warning: .* has been extracted/.test(o[0])||t.apply(console,o)}},447,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),r(d[0]);var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))});var t=r(d[2]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===t[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}}))})},448,[449,450,472]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]),o=r(d[2]);s.IS_ENV_WITH_UPDATES_ENABLED&&(0,o.setCustomSourceTransformer)(function(s){try{if(s.asset.fileHashes){var o=t.Asset.fromMetadata(s.asset);return s.fromSource(o.downloaded?o.localUri:o.uri)}return s.defaultAsset()}catch(t){return s.defaultAsset()}})},449,[450,458,471]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Asset=void 0;var n=t(r(d[1])),s=t(r(d[2])),h=t(r(d[3])),o=r(d[4]),u=r(d[5]),l=v(r(d[6])),f=v(r(d[7])),c=v(r(d[8])),y=r(d[9]),p=r(d[10]),w=t(r(d[11]));function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,s=new WeakMap;return(b=function(t){return t?s:n})(t)}function v(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var s=b(n);if(s&&s.has(t))return s.get(t);var h={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var l=o?Object.getOwnPropertyDescriptor(t,u):null;l&&(l.get||l.set)?Object.defineProperty(h,u,l):h[u]=t[u]}return h.default=t,s&&s.set(t,h),h}var k=(function(){function t(n){var h=n.name,u=n.type,l=n.hash,c=void 0===l?null:l,p=n.uri,w=n.width,b=n.height;(0,s.default)(this,t),this.hash=null,this.localUri=null,this.width=null,this.height=null,this.downloading=!1,this.downloaded=!1,this._downloadCallbacks=[],this.name=h,this.type=u,this.hash=c,this.uri=p,'number'==typeof w&&(this.width=w),'number'==typeof b&&(this.height=b),c&&(this.localUri=(0,y.getLocalAssetUri)(c,u),this.localUri&&(this.downloaded=!0)),'web'===o.Platform.OS&&(h||(this.name=f.getFilename(p)),u||(this.type=f.getFileExtension(p)))}return(0,h.default)(t,[{key:"downloadAsync",value:function(){var t,s,h,u,l=this;return n.default.async(function(y){for(;;)switch(y.prev=y.next){case 0:if(!this.downloaded){y.next=2;break}return y.abrupt("return",this);case 2:if(!this.downloading){y.next=6;break}return y.next=5,n.default.awrap(new Promise(function(t,n){l._downloadCallbacks.push({resolve:t,reject:n})}));case 5:return y.abrupt("return",this);case 6:if(this.downloading=!0,y.prev=7,'web'!==o.Platform.OS){y.next=22;break}if(!c.isImageType(this.type)){y.next=21;break}return y.next=12,n.default.awrap(c.getImageInfoAsync(this.uri));case 12:t=y.sent,s=t.width,h=t.height,u=t.name,this.width=s,this.height=h,this.name=u,y.next=22;break;case 21:this.name=f.getFilename(this.uri);case 22:return y.next=24,n.default.awrap((0,p.downloadAsync)(this.uri,this.hash,this.type,this.name));case 24:this.localUri=y.sent,this.downloaded=!0,this._downloadCallbacks.forEach(function(t){return(0,t.resolve)()}),y.next=33;break;case 29:throw y.prev=29,y.t0=y.catch(7),this._downloadCallbacks.forEach(function(t){return(0,t.reject)(y.t0)}),y.t0;case 33:return y.prev=33,this.downloading=!1,this._downloadCallbacks=[],y.finish(33);case 37:return y.abrupt("return",this);case 38:case"end":return y.stop()}},null,this,[[7,29,33,37]],Promise)}}],[{key:"loadAsync",value:function(n){var s=Array.isArray(n)?n:[n];return Promise.all(s.map(function(n){return t.fromModule(n).downloadAsync()}))}},{key:"fromModule",value:function(n){if('string'==typeof n)return t.fromURI(n);var s=(0,u.getAssetByID)(n);if(!s)throw new Error("Module \""+n+"\" is missing from the asset registry");if(!p.IS_ENV_WITH_UPDATES_ENABLED){var h=(0,w.default)(n).uri,l=new t({name:s.name,type:s.type,hash:s.hash,uri:h,width:s.width,height:s.height});return'android'!==o.Platform.OS||h.includes(':')||!s.width&&!s.height||(l.localUri=l.uri,l.downloaded=!0),t.byHash[s.hash]=l,l}return t.fromMetadata(s)}},{key:"fromMetadata",value:function(n){var s=n.hash;if(t.byHash[s])return t.byHash[s];var h=l.selectAssetSource(n),o=h.uri,u=h.hash,f=new t({name:n.name,type:n.type,hash:u,uri:o,width:n.width,height:n.height});return t.byHash[s]=f,f}},{key:"fromURI",value:function(n){if(t.byUri[n])return t.byUri[n];var s='';if(n.indexOf(';base64')>-1)s=n.split(';')[0].split('/')[1];else{var h=f.getFileExtension(n);s=h.startsWith('.')?h.substring(1):h}var o=new t({name:'',type:s,hash:null,uri:n});return t.byUri[n]=o,o}}]),t})();e.Asset=k,k.byHash={},k.byUri={}},450,[1,106,31,32,429,451,452,468,469,470,458,471]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n=r(d[0]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))})},451,[188]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.selectAssetSource=function(t){v&&v.hasOwnProperty(t.hash)&&(t=p(p({},t),v[t.hash]));var n=u.default.pickScale(t.scales,f.PixelRatio.get()),l=t.scales.findIndex(function(t){return t===n}),b=t.fileHashes?t.fileHashes[l]||t.fileHashes[0]:t.hash,y=t.fileUris?t.fileUris[l]||t.fileUris[0]:t.uri;if(y)return{uri:O(y),hash:b};var j=(0,h.getManifest)().assetUrlOverride;if(j){var U=s.default.join(j,b);return{uri:O(U),hash:b}}var w=1===n?'':"@"+n+"x",P=t.type?"."+encodeURIComponent(t.type):'',S="/"+encodeURIComponent(t.name)+w+P+"?platform="+encodeURIComponent(o.Platform.OS)+"&hash="+encodeURIComponent(t.hash);if(/^https?:\/\//.test(t.httpServerLocation)){var I=t.httpServerLocation+S;return{uri:I,hash:b}}if((0,h.getManifest)().developer){var M=new c.default((0,h.getManifest)().bundleUrl);return M.set('pathname',t.httpServerLocation+S),{uri:M.href,hash:b}}return{uri:"https://d1wp6m56sqw74a.cloudfront.net/~assets/"+encodeURIComponent(b),hash:b}},e.resolveUri=O;var n=t(r(d[1])),o=r(d[2]),s=t(r(d[3])),f=r(d[4]),c=t(r(d[5])),u=t(r(d[6])),h=r(d[7]);function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);n&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,s)}return o}function p(t){for(var o=1;o2){var u=o.lastIndexOf('/');if(u!==o.length-1){-1===u?(o='',h=0):h=(o=o.slice(0,u)).length-1-o.lastIndexOf('/'),f=s,c=0;continue}}else if(2===o.length||1===o.length){o='',h=0,f=s,c=0;continue}n&&(o.length>0?o+='/..':o='..',h=2)}else o.length>0?o+='/'+t.slice(f+1,s):o=t.slice(f+1,s),h=s-f-1;f=s,c=0}else 46===l&&-1!==c?++c:c=-1}return o}function l(t,n){var l=n.dir||n.root,o=n.base||(n.name||'')+(n.ext||'');return l?l===n.root?l+o:l+t+o:o}var o={resolve:function(){for(var l,o='',h=!1,f=arguments.length-1;f>=-1&&!h;f--){var c;f>=0?c=arguments[f]:(void 0===l&&(l=process.cwd()),c=l),t(c),0!==c.length&&(o=c+'/'+o,h=47===c.charCodeAt(0))}return o=n(o,!h),h?o.length>0?'/'+o:'/':o.length>0?o:'.'},normalize:function(l){if(t(l),0===l.length)return'.';var o=47===l.charCodeAt(0),h=47===l.charCodeAt(l.length-1);return 0!==(l=n(l,!o)).length||o||(l='.'),l.length>0&&h&&(l+='/'),o?'/'+l:l},isAbsolute:function(n){return t(n),n.length>0&&47===n.charCodeAt(0)},join:function(){if(0===arguments.length)return'.';for(var n,l=0;l0&&(void 0===n?n=h:n+='/'+h)}return void 0===n?'.':o.normalize(n)},relative:function(n,l){if(t(n),t(l),n===l)return'';if((n=o.resolve(n))===(l=o.resolve(l)))return'';for(var h=1;hv){if(47===l.charCodeAt(s+C))return l.slice(s+C+1);if(0===C)return l.slice(s+C)}else c>v&&(47===n.charCodeAt(h+C)?A=C:0===C&&(A=0));break}var b=n.charCodeAt(h+C);if(b!==l.charCodeAt(s+C))break;47===b&&(A=C)}var p='';for(C=h+A+1;C<=f;++C)C!==f&&47!==n.charCodeAt(C)||(0===p.length?p+='..':p+='/..');return p.length>0?p+l.slice(s+A):(s+=A,47===l.charCodeAt(s)&&++s,l.slice(s))},_makeLong:function(t){return t},dirname:function(n){if(t(n),0===n.length)return'.';for(var l=n.charCodeAt(0),o=47===l,h=-1,f=!0,c=n.length-1;c>=1;--c)if(47===(l=n.charCodeAt(c))){if(!f){h=c;break}}else f=!1;return-1===h?o?'/':'.':o&&1===h?'//':n.slice(0,h)},basename:function(n,l){if(void 0!==l&&'string'!=typeof l)throw new TypeError('"ext" argument must be a string');t(n);var o,h=0,f=-1,c=!0;if(void 0!==l&&l.length>0&&l.length<=n.length){if(l.length===n.length&&l===n)return'';var s=l.length-1,u=-1;for(o=n.length-1;o>=0;--o){var v=n.charCodeAt(o);if(47===v){if(!c){h=o+1;break}}else-1===u&&(c=!1,u=o+1),s>=0&&(v===l.charCodeAt(s)?-1==--s&&(f=o):(s=-1,f=u))}return h===f?f=u:-1===f&&(f=n.length),n.slice(h,f)}for(o=n.length-1;o>=0;--o)if(47===n.charCodeAt(o)){if(!c){h=o+1;break}}else-1===f&&(c=!1,f=o+1);return-1===f?'':n.slice(h,f)},extname:function(n){t(n);for(var l=-1,o=0,h=-1,f=!0,c=0,s=n.length-1;s>=0;--s){var u=n.charCodeAt(s);if(47!==u)-1===h&&(f=!1,h=s+1),46===u?-1===l?l=s:1!==c&&(c=1):-1!==l&&(c=-1);else if(!f){o=s+1;break}}return-1===l||-1===h||0===c||1===c&&l===h-1&&l===o+1?'':n.slice(l,h)},format:function(t){if(null===t||'object'!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return l('/',t)},parse:function(n){t(n);var l={root:'',dir:'',base:'',ext:'',name:''};if(0===n.length)return l;var o,h=n.charCodeAt(0),f=47===h;f?(l.root='/',o=1):o=0;for(var c=-1,s=0,u=-1,v=!0,A=n.length-1,C=0;A>=o;--A)if(47!==(h=n.charCodeAt(A)))-1===u&&(v=!1,u=A+1),46===h?-1===c?c=A:1!==C&&(C=1):-1!==c&&(C=-1);else if(!v){s=A+1;break}return-1===c||-1===u||0===C||1===C&&c===u-1&&c===s+1?-1!==u&&(l.base=l.name=0===s&&f?n.slice(1,u):n.slice(s,u)):(0===s&&f?(l.name=n.slice(1,c),l.base=n.slice(1,u)):(l.name=n.slice(s,c),l.base=n.slice(s,u)),l.ext=n.slice(c,u)),s>0?l.dir=n.slice(0,s-1):f&&(l.dir='/'),l},sep:'/',delimiter:':',win32:null,posix:null};o.posix=o,m.exports=o},453,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),s=/^[A-Za-z][A-Za-z0-9+-.]*:[\\/]+/,n=/^([a-z][a-z0-9.+-]*:)?([\\/]{1,})?([\S\s]*)/i,h=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function p(t){return(t||'').toString().replace(h,'')}var l=[['#','hash'],['?','query'],function(t){return t.replace('\\','/')},['/','pathname'],['@','auth',1],[NaN,'host',void 0,1,1],[/:(\d+)$/,'port',void 0,1],[NaN,'hostname',void 0,1,1]],c={hash:1,query:1};function u(t){var o,n=('undefined'!=typeof window?window:void 0!==g?g:'undefined'!=typeof self?self:{}).location||{},h={},p=typeof(t=t||n);if('blob:'===t.protocol)h=new v(unescape(t.pathname),{});else if('string'===p)for(o in h=new v(t,{}),c)delete h[o];else if('object'===p){for(o in t)o in c||(h[o]=t[o]);void 0===h.slashes&&(h.slashes=s.test(t.href))}return h}function f(t){t=p(t);var o=n.exec(t);return{protocol:o[1]?o[1].toLowerCase():'',slashes:!!(o[2]&&o[2].length>=2),rest:o[2]&&1===o[2].length?'/'+o[3]:o[3]}}function y(t,o){if(''===t)return o;for(var s=(o||'/').split('/').slice(0,-1).concat(t.split('/')),n=s.length,h=s[n-1],p=!1,l=0;n--;)'.'===s[n]?s.splice(n,1):'..'===s[n]?(s.splice(n,1),l++):l&&(0===n&&(p=!0),s.splice(n,1),l--);return p&&s.unshift(''),'.'!==h&&'..'!==h||s.push(''),s.join('/')}function v(s,n,h){if(s=p(s),!(this instanceof v))return new v(s,n,h);var c,w,x,b,A,q,k=l.slice(),j=typeof n,C=this,F=0;for('object'!==j&&'string'!==j&&(h=n,n=null),h&&'function'!=typeof h&&(h=o.parse),n=u(n),c=!(w=f(s||'')).protocol&&!w.slashes,C.slashes=w.slashes||c&&n.slashes,C.protocol=w.protocol||n.protocol||'',s=w.rest,w.slashes||(k[3]=[/(.*)/,'pathname']);F>16)+(t>>16)+(o>>16)<<16|65535&o}function o(n,o,u,c,f,h){return t((v=t(t(o,n),t(c,h)))<<(l=f)|v>>>32-l,u);var v,l}function u(n,t,u,c,f,h,v){return o(t&u|~t&c,n,t,f,h,v)}function c(n,t,u,c,f,h,v){return o(t&c|u&~c,n,t,f,h,v)}function f(n,t,u,c,f,h,v){return o(t^u^c,n,t,f,h,v)}function h(n,t,u,c,f,h,v){return o(u^(t|~c),n,t,f,h,v)}function v(n,o){var v,l,p,s,C;n[o>>5]|=128<>>9<<4)]=o;var A=1732584193,b=-271733879,x=-1732584194,y=271733878;for(v=0;v>5]>>>t%32&255);return o}function p(n){var t,o=[];for(o[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(c=v(c,8*n.length)),o=0;o<16;o+=1)f[o]=909522486^c[o],h[o]=1549556828^c[o];return u=v(f.concat(p(t)),512+8*t.length),l(v(h.concat(u),640))}function A(n){var t,o,u='';for(o=0;o>>4&15)+"0123456789abcdef".charAt(15&t);return u}function b(n){return unescape(encodeURIComponent(n))}function x(n){return s(b(n))}function y(n,t){return C(b(n),b(t))}function _(n,t,o){return t?o?y(t,n):A(y(t,n)):o?x(n):A(x(n))}'function'==typeof define&&define.amd?define(function(){return _}):'object'==typeof m&&m.exports?m.exports=_:n.md5=_})(this)},459,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n=r(d[0]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))})},460,[461]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getInfoAsync=function(t){var n,s=arguments;return c.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(n=s.length>1&&void 0!==s[1]?s[1]:{},y.default.getInfoAsync){u.next=3;break}throw new l.UnavailabilityError('expo-file-system','getInfoAsync');case 3:return u.next=5,c.default.awrap(y.default.getInfoAsync(t,n));case 5:return u.abrupt("return",u.sent);case 6:case"end":return u.stop()}},null,null,null,Promise)},e.readAsStringAsync=k,e.getContentUriAsync=function(t){return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if('android'!==o.Platform.OS){n.next=8;break}if(y.default.getContentUriAsync){n.next=3;break}throw new l.UnavailabilityError('expo-file-system','getContentUriAsync');case 3:return n.next=5,c.default.awrap(y.default.getContentUriAsync(t));case 5:return n.abrupt("return",n.sent);case 8:return n.abrupt("return",new Promise(function(n,s){n(t)}));case 9:case"end":return n.stop()}},null,null,null,Promise)},e.writeAsStringAsync=S,e.deleteAsync=P,e.deleteLegacyDocumentDirectoryAndroid=function(){var t;return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if('android'===o.Platform.OS&&null!=h){n.next=2;break}return n.abrupt("return");case 2:return t=h+"ExperienceData/",n.next=5,c.default.awrap(P(t,{idempotent:!0}));case 5:return n.abrupt("return",n.sent);case 6:case"end":return n.stop()}},null,null,null,Promise)},e.moveAsync=_,e.copyAsync=U,e.makeDirectoryAsync=function(t){var n,s=arguments;return c.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(n=s.length>1&&void 0!==s[1]?s[1]:{},y.default.makeDirectoryAsync){u.next=3;break}throw new l.UnavailabilityError('expo-file-system','makeDirectoryAsync');case 3:return u.next=5,c.default.awrap(y.default.makeDirectoryAsync(t,n));case 5:return u.abrupt("return",u.sent);case 6:case"end":return u.stop()}},null,null,null,Promise)},e.readDirectoryAsync=function(t){return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(y.default.readDirectoryAsync){n.next=2;break}throw new l.UnavailabilityError('expo-file-system','readDirectoryAsync');case 2:return n.next=4,c.default.awrap(y.default.readDirectoryAsync(t,{}));case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)},e.getFreeDiskStorageAsync=function(){return c.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(y.default.getFreeDiskStorageAsync){t.next=2;break}throw new l.UnavailabilityError('expo-file-system','getFreeDiskStorageAsync');case 2:return t.next=4,c.default.awrap(y.default.getFreeDiskStorageAsync());case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}},null,null,null,Promise)},e.getTotalDiskCapacityAsync=function(){return c.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(y.default.getTotalDiskCapacityAsync){t.next=2;break}throw new l.UnavailabilityError('expo-file-system','getTotalDiskCapacityAsync');case 2:return t.next=4,c.default.awrap(y.default.getTotalDiskCapacityAsync());case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}},null,null,null,Promise)},e.downloadAsync=function(t,n){var s,u=arguments;return c.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:if(s=u.length>2&&void 0!==u[2]?u[2]:{},y.default.downloadAsync){o.next=3;break}throw new l.UnavailabilityError('expo-file-system','downloadAsync');case 3:return o.next=5,c.default.awrap(y.default.downloadAsync(t,n,b({sessionType:p.FileSystemSessionType.BACKGROUND},s)));case 5:return o.abrupt("return",o.sent);case 6:case"end":return o.stop()}},null,null,null,Promise)},e.uploadAsync=function(t,n){var s,u=arguments;return c.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:if(s=u.length>2&&void 0!==u[2]?u[2]:{},y.default.uploadAsync){o.next=3;break}throw new l.UnavailabilityError('expo-file-system','uploadAsync');case 3:return o.next=5,c.default.awrap(y.default.uploadAsync(t,n,b(b({sessionType:p.FileSystemSessionType.BACKGROUND,uploadType:p.FileSystemUploadType.BINARY_CONTENT},s),{},{httpMethod:(s.httpMethod||'POST').toUpperCase()})));case 5:return o.abrupt("return",o.sent);case 6:case"end":return o.stop()}},null,null,null,Promise)},e.createDownloadResumable=function(t,n,s,u,c){return new E(t,n,s,u,c)},Object.defineProperty(e,"EncodingType",{enumerable:!0,get:function(){return p.EncodingType}}),Object.defineProperty(e,"FileSystemSessionType",{enumerable:!0,get:function(){return p.FileSystemSessionType}}),Object.defineProperty(e,"FileSystemUploadType",{enumerable:!0,get:function(){return p.FileSystemUploadType}}),e.StorageAccessFramework=e.DownloadResumable=e.bundleDirectory=e.bundledAssets=e.cacheDirectory=e.documentDirectory=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4])),l=r(d[5]),o=r(d[6]),f=t(r(d[7])),y=t(r(d[8])),p=r(d[9]);function w(t,n){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),s.push.apply(s,u)}return s}function b(t){for(var n=1;n2&&void 0!==u[2]?u[2]:{},y.default.writeAsStringAsync){o.next=3;break}throw new l.UnavailabilityError('expo-file-system','writeAsStringAsync');case 3:return o.next=5,c.default.awrap(y.default.writeAsStringAsync(t,n,s));case 5:return o.abrupt("return",o.sent);case 6:case"end":return o.stop()}},null,null,null,Promise)}function P(t){var n,s=arguments;return c.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(n=s.length>1&&void 0!==s[1]?s[1]:{},y.default.deleteAsync){u.next=3;break}throw new l.UnavailabilityError('expo-file-system','deleteAsync');case 3:return u.next=5,c.default.awrap(y.default.deleteAsync(t,n));case 5:return u.abrupt("return",u.sent);case 6:case"end":return u.stop()}},null,null,null,Promise)}function _(t){return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(y.default.moveAsync){n.next=2;break}throw new l.UnavailabilityError('expo-file-system','moveAsync');case 2:return n.next=4,c.default.awrap(y.default.moveAsync(t));case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)}function U(t){return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(y.default.copyAsync){n.next=2;break}throw new l.UnavailabilityError('expo-file-system','copyAsync');case 2:return n.next=4,c.default.awrap(y.default.copyAsync(t));case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)}e.bundleDirectory=D,e.bundledAssets=x;var E=(function(){function t(s,u){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0,p=arguments.length>4?arguments[4]:void 0;(0,n.default)(this,t),this._uuid=(0,f.default)(),this._url=s,this._fileUri=u,this._options=c,this._resumeData=p,this._callback=o,this._subscription=null,this._emitter=new l.EventEmitter(y.default)}return(0,s.default)(t,[{key:"downloadAsync",value:function(){return c.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(y.default.downloadResumableStartAsync){t.next=2;break}throw new l.UnavailabilityError('expo-file-system','downloadResumableStartAsync');case 2:return this._addSubscription(),t.next=5,c.default.awrap(y.default.downloadResumableStartAsync(this._url,this._fileUri,this._uuid,this._options,this._resumeData));case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}},null,this,null,Promise)}},{key:"pauseAsync",value:function(){var t;return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(y.default.downloadResumablePauseAsync){n.next=2;break}throw new l.UnavailabilityError('expo-file-system','downloadResumablePauseAsync');case 2:return n.next=4,c.default.awrap(y.default.downloadResumablePauseAsync(this._uuid));case 4:if(t=n.sent,this._removeSubscription(),!t){n.next=11;break}return this._resumeData=t.resumeData,n.abrupt("return",this.savable());case 11:throw new Error('Unable to generate a savable pause state');case 12:case"end":return n.stop()}},null,this,null,Promise)}},{key:"resumeAsync",value:function(){return c.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(y.default.downloadResumableStartAsync){t.next=2;break}throw new l.UnavailabilityError('expo-file-system','downloadResumableStartAsync');case 2:return this._addSubscription(),t.next=5,c.default.awrap(y.default.downloadResumableStartAsync(this._url,this._fileUri,this._uuid,this._options,this._resumeData));case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}},null,this,null,Promise)}},{key:"savable",value:function(){return{url:this._url,fileUri:this._fileUri,options:this._options,resumeData:this._resumeData}}},{key:"_addSubscription",value:function(){var t=this;this._subscription||(this._subscription=this._emitter.addListener('expo-file-system.downloadProgress',function(n){if(n.uuid===t._uuid){var s=t._callback;s&&s(n.data)}}))}},{key:"_removeSubscription",value:function(){this._subscription&&(this._emitter.removeSubscription(this._subscription),this._subscription=null)}}]),t})();e.DownloadResumable=E;var F,O=k,T=S,R=P,j=_,C=U;e.StorageAccessFramework=F,(function(t){t.getUriForDirectoryInRoot=function(t){return"content://com.android.externalstorage.documents/tree/primary:"+t+"/document/primary:"+t},t.requestDirectoryPermissionsAsync=function(){var t,n=arguments;return c.default.async(function(s){for(;;)switch(s.prev=s.next){case 0:if(t=n.length>0&&void 0!==n[0]?n[0]:null,y.default.requestDirectoryPermissionsAsync){s.next=3;break}throw new l.UnavailabilityError('expo-file-system','StorageAccessFramework.requestDirectoryPermissionsAsync');case 3:return s.next=5,c.default.awrap(y.default.requestDirectoryPermissionsAsync(t));case 5:return s.abrupt("return",s.sent);case 6:case"end":return s.stop()}},null,null,null,Promise)},t.readDirectoryAsync=function(t){return c.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(y.default.readSAFDirectoryAsync){n.next=2;break}throw new l.UnavailabilityError('expo-file-system','StorageAccessFramework.readDirectoryAsync');case 2:return n.next=4,c.default.awrap(y.default.readSAFDirectoryAsync(t,{}));case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)},t.makeDirectoryAsync=function(t,n){return c.default.async(function(s){for(;;)switch(s.prev=s.next){case 0:if(y.default.makeSAFDirectoryAsync){s.next=2;break}throw new l.UnavailabilityError('expo-file-system','StorageAccessFramework.makeDirectoryAsync');case 2:return s.next=4,c.default.awrap(y.default.makeSAFDirectoryAsync(t,n));case 4:return s.abrupt("return",s.sent);case 5:case"end":return s.stop()}},null,null,null,Promise)},t.createFileAsync=function(t,n,s){return c.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(y.default.createSAFFileAsync){u.next=2;break}throw new l.UnavailabilityError('expo-file-system','StorageAccessFramework.createFileAsync');case 2:return u.next=4,c.default.awrap(y.default.createSAFFileAsync(t,n,s));case 4:return u.abrupt("return",u.sent);case 5:case"end":return u.stop()}},null,null,null,Promise)},t.writeAsStringAsync=T,t.readAsStringAsync=O,t.deleteAsync=R,t.moveAsync=j,t.copyAsync=C})(F||(e.StorageAccessFramework=F={}))},461,[1,31,32,54,106,429,10,462,465,467]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f,u){var l=f&&u||0;'string'==typeof t&&(f='binary'===t?new Array(16):null,t=null);var v=(t=t||{}).random||(t.rng||n)();if(v[6]=15&v[6]|64,v[8]=63&v[8]|128,f)for(var y=0;y<16;++y)f[l+y]=v[y];return f||o(v)}},462,[463,464]); +__d(function(g,r,i,a,m,e,d){var n='undefined'!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||'undefined'!=typeof msCrypto&&'function'==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);m.exports=function(){return n(t),t}}else{var o=new Array(16);m.exports=function(){for(var n,t=0;t<16;t++)0==(3&t)&&(n=4294967296*Math.random()),o[t]=n>>>((3&t)<<3)&255;return o}}},463,[]); +__d(function(g,r,i,a,m,e,d){for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);m.exports=function(t,o){var u=o||0,f=n;return[f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]]].join('')}},464,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[1]),l=t(r(d[2])),u=o.NativeModulesProxy.ExponentFileSystem?o.NativeModulesProxy.ExponentFileSystem:l.default;e.default=u},465,[1,429,466]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={get name(){return'ExponentFileSystem'},get documentDirectory(){return null},get cacheDirectory(){return null},get bundledAssets(){return null},get bundleDirectory(){return null},addListener:function(t){},removeListeners:function(t){}};e.default=t},466,[]); +__d(function(g,r,i,a,m,e,d){var n,T,o;Object.defineProperty(e,"__esModule",{value:!0}),e.EncodingType=e.FileSystemUploadType=e.FileSystemSessionType=void 0,e.FileSystemSessionType=n,(function(n){n[n.BACKGROUND=0]="BACKGROUND",n[n.FOREGROUND=1]="FOREGROUND"})(n||(e.FileSystemSessionType=n={})),e.FileSystemUploadType=T,(function(n){n[n.BINARY_CONTENT=0]="BINARY_CONTENT",n[n.MULTIPART=1]="MULTIPART"})(T||(e.FileSystemUploadType=T={})),e.EncodingType=o,(function(n){n.UTF8="utf8",n.Base64="base64"})(o||(e.EncodingType=o={}))},467,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getFilename=s,e.getFileExtension=function(t){var n=s(t),o=n.lastIndexOf('.');return o>0?n.substring(o):''},e.getManifestBaseUrl=function(t){var s=new n.default(t,{});'exp:'===s.protocol?s.set('protocol','http:'):'exps:'===s.protocol&&s.set('protocol','https:');var o=s.pathname.substring(0,s.pathname.lastIndexOf('/')+1);return s.set('pathname',o),s.set('query',''),s.set('hash',''),s.href};var n=t(r(d[1]));function s(t){var s=new n.default(t,{}).pathname;return s.substring(s.lastIndexOf('/')+1)}},468,[1,454]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isImageType=function(n){return/^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(n)},e.getImageInfoAsync=function(t){return new Promise(function(o,u){var c=new Image;c.onerror=u,c.onload=function(){o({name:(0,n.getFilename)(t),width:c.naturalWidth,height:c.naturalHeight})},c.src=t})};var n=r(d[0])},469,[468]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLocalAssetUri=function(t,o){var s=t,f=t+"."+(null!=o?o:'');switch(!0){case s in l:return l[s];case f in l:return l[f];case!0:var p="asset_"+t+(o?"."+o:'');return'standalone'===n.default.appOwnership&&c.has(p)?""+u.bundleDirectory+p:null}};var n=t(r(d[1])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=s(n);if(u&&u.has(t))return u.get(t);var o={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(o,l,f):o[l]=t[l]}o.default=t,u&&u.set(t,o);return o})(r(d[2])),o=r(d[3]);function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(s=function(t){return t?u:n})(t)}var c=new Set(u.bundledAssets||[]),l=(0,o.getLocalAssets)()},470,[1,428,460,458]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={};e.default=void 0;var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,u&&u.set(t,f);return f})(r(d[0]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}Object.keys(n).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||o in e&&e[o]===n[o]||Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[o]}}))});var u=n.default;e.default=u},471,[187]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.useAssets=function(t){var c=(0,s.useState)(),f=(0,u.default)(c,2),o=f[0],l=f[1],v=(0,s.useState)(),_=(0,u.default)(v,2),A=_[0],h=_[1];return(0,s.useEffect)(function(){n.Asset.loadAsync(t).then(l).catch(h)},[]),[o,A]};var u=t(r(d[1])),s=r(d[2]),n=r(d[3])},472,[1,19,6,450]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={useFonts:!0};Object.defineProperty(e,"useFonts",{enumerable:!0,get:function(){return o.useFonts}});var n=r(d[0]);Object.keys(n).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||o in e&&e[o]===n[o]||Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[o]}}))});var o=r(d[1])},473,[474,478]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.processFontFamily=function(n){if(!n||!(0,l.fontFamilyNeedsScoping)(n))return n;if(!p(n))return'System';return"ExpoFont-"+(0,l.getNativeFontName)(n)},e.isLoaded=p,e.isLoading=function(n){return n in f},e.loadAsync=function(n,o){var s,l;return t.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if('object'!=typeof n){c.next=8;break}if(!o){c.next=3;break}throw new u.CodedError("ERR_FONT_API","No fontFamily can be used for the provided source: "+o+". The second argument of `loadAsync()` can only be used with a `string` value as the first argument.");case 3:return s=n,l=Object.keys(s),c.next=7,t.default.awrap(Promise.all(l.map(function(n){return y(n,s[n])})));case 7:return c.abrupt("return");case 8:return c.next=10,t.default.awrap(y(n,o));case 10:return c.abrupt("return",c.sent);case 11:case"end":return c.stop()}},null,null,null,Promise)},e.unloadAllAsync=function(){var n,s,l;return t.default.async(function(p){for(;;)switch(p.prev=p.next){case 0:if(o.default.unloadAllAsync){p.next=2;break}throw new u.UnavailabilityError('expo-font','unloadAllAsync');case 2:if(!Object.keys(f).length){p.next=4;break}throw new u.CodedError("ERR_UNLOAD","Cannot unload fonts while they're still loading: "+Object.keys(f).join(', '));case 4:for(n=0,s=Object.keys(c);n` at the top of your app.');return t},e.withSafeAreaInsets=function(t){return u.forwardRef(function(o,l){return u.createElement(y,null,function(f){return u.createElement(t,(0,n.default)({},o,{insets:f,ref:l}))})})},e.useSafeArea=function(){return h()},e.SafeAreaContext=e.SafeAreaConsumer=e.SafeAreaFrameContext=e.SafeAreaInsetsContext=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var c=l?Object.getOwnPropertyDescriptor(t,f):null;c&&(c.get||c.set)?Object.defineProperty(u,f,c):u[f]=t[f]}u.default=t,o&&o.set(t,u);return u})(r(d[3])),l=r(d[4]),f=t(r(d[5]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}var c=u.createContext(null);e.SafeAreaInsetsContext=c,c.displayName='SafeAreaInsetsContext';var v=u.createContext(null);e.SafeAreaFrameContext=v,v.displayName='SafeAreaFrameContext';var p=l.StyleSheet.create({fill:{flex:1}});function h(){var t=u.useContext(c);if(null==t)throw new Error('No safe area insets value available. Make sure you are rendering `` at the top of your app.');return t}var y=c.Consumer;e.SafeAreaConsumer=y;var S=c;e.SafeAreaContext=S},482,[1,9,19,6,10,483]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).requireNativeComponent)('RNCSafeAreaProvider');e.default=o},483,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SafeAreaView=void 0;var o=(0,r(d[0]).requireNativeComponent)('RNCSafeAreaView');e.SafeAreaView=o},484,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.initialWindowSafeAreaInsets=e.initialWindowMetrics=void 0;var n=r(d[0]).UIManager.getViewManagerConfig('RNCSafeAreaProvider'),t=null!=n&&null!=n.Constants?n.Constants.initialWindowMetrics:null;e.initialWindowMetrics=t;var l=null==t?void 0:t.insets;e.initialWindowSafeAreaInsets=l},485,[10]); +__d(function(g,r,i,a,m,e,d){},486,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.enableExpoCliLogging=function(){},e.disableExpoCliLogging=function(){}},487,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){if(n.AppRegistry.registerComponent('main',function(){return(0,o.default)(t)}),'web'===n.Platform.OS){var u,l=null!=(u=document.getElementById('root'))?u:document.getElementById('main');n.AppRegistry.runApplication('main',{rootTag:l})}},r(d[1]);var n=r(d[2]),o=t(r(d[3]))},488,[1,426,10,489]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(o){y();var f=O(O({},o),{},{exp:O(O({},o.exp),{},{errorRecovery:c.recoveredProps})});return u.createElement(t,(0,n.default)({},f))}};var n=t(r(d[1])),o=t(r(d[2])),c=p(r(d[3])),u=p(r(d[4]));function f(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(f=function(t){return t?o:n})(t)}function p(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=f(n);if(o&&o.has(t))return o.get(t);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var l=u?Object.getOwnPropertyDescriptor(t,p):null;l&&(l.get||l.set)?Object.defineProperty(c,p,l):c[p]=t[p]}return c.default=t,o&&o.set(t,c),c}function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function O(t){for(var n=1;n=0||(c[o]=t[o]);return c}function l(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function p(t,n,o){return n in t?Object.defineProperty(t,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[n]=o,t}var s=function(u,s){return function(u){var v=(function(o){var v,h;function _(){for(var t,u=arguments.length,c=new Array(u),f=0;f>16&255,u>>8&255,255&u],this.valpha=1;else{this.valpha=1;var k=Object.keys(u);'alpha'in u&&(k.splice(k.indexOf('alpha'),1),this.valpha='number'==typeof u.alpha?u.alpha:0);var x=k.sort().join('');if(!(x in l))throw new Error('Unable to parse color from object: '+JSON.stringify(u));this.model=l[x];var j=o[this.model].labels,A=[];for(v=0;vn?(o+.05)/(n+.05):(n+.05)/(o+.05)},level:function(t){var o=this.contrast(t);return o>=7.1?'AAA':o>=4.5?'AA':''},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),o=0;o<3;o++)t.color[o]=255-t.color[o];return t},lighten:function(t){var o=this.hsl();return o.color[2]+=o.color[2]*t,o},darken:function(t){var o=this.hsl();return o.color[2]-=o.color[2]*t,o},saturate:function(t){var o=this.hsl();return o.color[1]+=o.color[1]*t,o},desaturate:function(t){var o=this.hsl();return o.color[1]-=o.color[1]*t,o},whiten:function(t){var o=this.hwb();return o.color[1]+=o.color[1]*t,o},blacken:function(t){var o=this.hwb();return o.color[2]+=o.color[2]*t,o},grayscale:function(){var t=this.rgb().color,o=.3*t[0]+.59*t[1]+.11*t[2];return c.rgb(o,o,o)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var o=this.hsl(),n=o.color[0];return n=(n=(n+t)%360)<0?360+n:n,o.color[0]=n,o},mix:function(t,o){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);var n=t.rgb(),h=this.rgb(),l=void 0===o?.5:o,s=2*l-1,u=n.alpha()-h.alpha(),f=((s*u==-1?s:(s+u)/(1+s*u))+1)/2,v=1-f;return c.rgb(f*n.red()+v*h.red(),f*n.green()+v*h.green(),f*n.blue()+v*h.blue(),n.alpha()*l+h.alpha()*(1-l))}},Object.keys(o).forEach(function(t){if(-1===h.indexOf(t)){var l=o[t].channels;c.prototype[t]=function(){if(this.model===t)return new c(this);if(arguments.length)return new c(arguments,t);var n,h='number'==typeof arguments[l]?l:this.valpha;return new c((n=o[this.model][t].raw(this.color),Array.isArray(n)?n:[n]).concat(h),t)},c[t]=function(o){return'number'==typeof o&&(o=b(n.call(arguments),l)),new c(o,t)}}}),m.exports=c},504,[505,509]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s={};for(var o in t)t.hasOwnProperty(o)&&(s[t[o]]=o);var u=m.exports={to:{},get:{}};function l(t,n,s){return Math.min(Math.max(n,t),s)}function h(t){var n=t.toString(16).toUpperCase();return n.length<2?'0'+n:n}u.get=function(t){var n,s;switch(t.substring(0,3).toLowerCase()){case'hsl':n=u.get.hsl(t),s='hsl';break;case'hwb':n=u.get.hwb(t),s='hwb';break;default:n=u.get.rgb(t),s='rgb'}return n?{model:s,value:n}:null},u.get.rgb=function(n){if(!n)return null;var s,o,u,h=[0,0,0,1];if(s=n.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(u=s[2],s=s[1],o=0;o<3;o++){var f=2*o;h[o]=parseInt(s.slice(f,f+2),16)}u&&(h[3]=parseInt(u,16)/255)}else if(s=n.match(/^#([a-f0-9]{3,4})$/i)){for(u=(s=s[1])[3],o=0;o<3;o++)h[o]=parseInt(s[o]+s[o],16);u&&(h[3]=parseInt(u+u,16)/255)}else if(s=n.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/)){for(o=0;o<3;o++)h[o]=parseInt(s[o+1],0);s[4]&&(h[3]=parseFloat(s[4]))}else{if(!(s=n.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/)))return(s=n.match(/(\D+)/))?'transparent'===s[1]?[0,0,0,0]:(h=t[s[1]])?(h[3]=1,h):null:null;for(o=0;o<3;o++)h[o]=Math.round(2.55*parseFloat(s[o+1]));s[4]&&(h[3]=parseFloat(s[4]))}for(o=0;o<3;o++)h[o]=l(h[o],0,255);return h[3]=l(h[3],0,1),h},u.get.hsl=function(t){if(!t)return null;var n=t.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/);if(n){var s=parseFloat(n[4]);return[(parseFloat(n[1])+360)%360,l(parseFloat(n[2]),0,100),l(parseFloat(n[3]),0,100),l(isNaN(s)?1:s,0,1)]}return null},u.get.hwb=function(t){if(!t)return null;var n=t.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/);if(n){var s=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,l(parseFloat(n[2]),0,100),l(parseFloat(n[3]),0,100),l(isNaN(s)?1:s,0,1)]}return null},u.to.hex=function(){var t=n(arguments);return'#'+h(t[0])+h(t[1])+h(t[2])+(t[3]<1?h(Math.round(255*t[3])):'')},u.to.rgb=function(){var t=n(arguments);return t.length<4||1===t[3]?'rgb('+Math.round(t[0])+', '+Math.round(t[1])+', '+Math.round(t[2])+')':'rgba('+Math.round(t[0])+', '+Math.round(t[1])+', '+Math.round(t[2])+', '+t[3]+')'},u.to.rgb.percent=function(){var t=n(arguments),s=Math.round(t[0]/255*100),o=Math.round(t[1]/255*100),u=Math.round(t[2]/255*100);return t.length<4||1===t[3]?'rgb('+s+'%, '+o+'%, '+u+'%)':'rgba('+s+'%, '+o+'%, '+u+'%, '+t[3]+')'},u.to.hsl=function(){var t=n(arguments);return t.length<4||1===t[3]?'hsl('+t[0]+', '+t[1]+'%, '+t[2]+'%)':'hsla('+t[0]+', '+t[1]+'%, '+t[2]+'%, '+t[3]+')'},u.to.hwb=function(){var t=n(arguments),s='';return t.length>=4&&1!==t[3]&&(s=', '+t[3]),'hwb('+t[0]+', '+t[1]+'%, '+t[2]+'%'+s+')'},u.to.keyword=function(t){return s[t.slice(0,3)]}},505,[506,507]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},506,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=Array.prototype.concat,o=Array.prototype.slice,c=m.exports=function(c){for(var u=[],p=0,l=c.length;p=0&&(n.splice instanceof Function||Object.getOwnPropertyDescriptor(n,n.length-1)&&'String'!==n.constructor.name))}},508,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]),t={};function c(n){var o=function(o){return void 0===o||null===o?o:(arguments.length>1&&(o=Array.prototype.slice.call(arguments)),n(o))};return'conversion'in n&&(o.conversion=n.conversion),o}function l(n){var o=function(o){if(void 0===o||null===o)return o;arguments.length>1&&(o=Array.prototype.slice.call(arguments));var t=n(o);if('object'==typeof t)for(var c=t.length,l=0;l1&&(o-=1)),[360*o,100*s,100*f]},u.rgb.hwb=function(n){var t=n[0],h=n[1],o=n[2];return[u.rgb.hsl(n)[0],100*(.00392156862745098*Math.min(t,Math.min(h,o))),100*(o=1-.00392156862745098*Math.max(t,Math.max(h,o)))]},u.rgb.cmyk=function(n){var t,h=n[0]/255,u=n[1]/255,o=n[2]/255;return[100*((1-h-(t=Math.min(1-h,1-u,1-o)))/(1-t)||0),100*((1-u-t)/(1-t)||0),100*((1-o-t)/(1-t)||0),100*t]},u.rgb.keyword=function(h){var u=t[h];if(u)return u;var o,s,c,l=1/0;for(var b in n)if(n.hasOwnProperty(b)){var f=n[b],M=(s=h,c=f,Math.pow(s[0]-c[0],2)+Math.pow(s[1]-c[1],2)+Math.pow(s[2]-c[2],2));M.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(h=h>.04045?Math.pow((h+.055)/1.055,2.4):h/12.92)+.1805*(u=u>.04045?Math.pow((u+.055)/1.055,2.4):u/12.92)),100*(.2126*t+.7152*h+.0722*u),100*(.0193*t+.1192*h+.9505*u)]},u.rgb.lab=function(n){var t=u.rgb.xyz(n),h=t[0],o=t[1],s=t[2];return o/=100,s/=108.883,h=(h/=95.047)>.008856?Math.pow(h,.3333333333333333):7.787*h+.13793103448275862,[116*(o=o>.008856?Math.pow(o,.3333333333333333):7.787*o+.13793103448275862)-16,500*(h-o),200*(o-(s=s>.008856?Math.pow(s,.3333333333333333):7.787*s+.13793103448275862))]},u.hsl.rgb=function(n){var t,h,u,o,s,c=n[0]/360,l=n[1]/100,b=n[2]/100;if(0===l)return[s=255*b,s,s];t=2*b-(h=b<.5?b*(1+l):b+l-b*l),o=[0,0,0];for(var f=0;f<3;f++)(u=c+.3333333333333333*-(f-1))<0&&u++,u>1&&u--,s=6*u<1?t+6*(h-t)*u:2*u<1?h:3*u<2?t+(h-t)*(.6666666666666666-u)*6:t,o[f]=255*s;return o},u.hsl.hsv=function(n){var t=n[0],h=n[1]/100,u=n[2]/100,o=h,s=Math.max(u,.01);return h*=(u*=2)<=1?u:2-u,o*=s<=1?s:2-s,[t,100*(0===u?2*o/(s+o):2*h/(u+h)),100*((u+h)/2)]},u.hsv.rgb=function(n){var t=n[0]/60,h=n[1]/100,u=n[2]/100,o=Math.floor(t)%6,s=t-Math.floor(t),c=255*u*(1-h),l=255*u*(1-h*s),b=255*u*(1-h*(1-s));switch(u*=255,o){case 0:return[u,b,c];case 1:return[l,u,c];case 2:return[c,u,b];case 3:return[c,l,u];case 4:return[b,c,u];case 5:return[u,c,l]}},u.hsv.hsl=function(n){var t,h,u,o=n[0],s=n[1]/100,c=n[2]/100,l=Math.max(c,.01);return u=(2-s)*c,h=s*l,[o,100*(h=(h/=(t=(2-s)*l)<=1?t:2-t)||0),100*(u/=2)]},u.hwb.rgb=function(n){var t,h,u,o,s,c,l,b=n[0]/360,f=n[1]/100,M=n[2]/100,v=f+M;switch(v>1&&(f/=v,M/=v),h=1-M,u=6*b-(t=Math.floor(6*b)),0!=(1&t)&&(u=1-u),o=f+u*(h-f),t){default:case 6:case 0:s=h,c=o,l=f;break;case 1:s=o,c=h,l=f;break;case 2:s=f,c=h,l=o;break;case 3:s=f,c=o,l=h;break;case 4:s=o,c=f,l=h;break;case 5:s=h,c=f,l=o}return[255*s,255*c,255*l]},u.cmyk.rgb=function(n){var t=n[0]/100,h=n[1]/100,u=n[2]/100,o=n[3]/100;return[255*(1-Math.min(1,t*(1-o)+o)),255*(1-Math.min(1,h*(1-o)+o)),255*(1-Math.min(1,u*(1-o)+o))]},u.xyz.rgb=function(n){var t,h,u,o=n[0]/100,s=n[1]/100,c=n[2]/100;return h=-.9689*o+1.8758*s+.0415*c,u=.0557*o+-.204*s+1.057*c,t=(t=3.2406*o+-1.5372*s+-.4986*c)>.0031308?1.055*Math.pow(t,.4166666666666667)-.055:12.92*t,h=h>.0031308?1.055*Math.pow(h,.4166666666666667)-.055:12.92*h,u=u>.0031308?1.055*Math.pow(u,.4166666666666667)-.055:12.92*u,[255*(t=Math.min(Math.max(0,t),1)),255*(h=Math.min(Math.max(0,h),1)),255*(u=Math.min(Math.max(0,u),1))]},u.xyz.lab=function(n){var t=n[0],h=n[1],u=n[2];return h/=100,u/=108.883,t=(t/=95.047)>.008856?Math.pow(t,.3333333333333333):7.787*t+.13793103448275862,[116*(h=h>.008856?Math.pow(h,.3333333333333333):7.787*h+.13793103448275862)-16,500*(t-h),200*(h-(u=u>.008856?Math.pow(u,.3333333333333333):7.787*u+.13793103448275862))]},u.lab.xyz=function(n){var t,h,u,o=n[0],s=n[1],c=n[2];t=s/500+(h=(o+16)/116),u=h-c/200;var l=Math.pow(h,3),b=Math.pow(t,3),f=Math.pow(u,3);return h=l>.008856?l:(h-.13793103448275862)/7.787,t=b>.008856?b:(t-.13793103448275862)/7.787,u=f>.008856?f:(u-.13793103448275862)/7.787,[t*=95.047,h*=100,u*=108.883]},u.lab.lch=function(n){var t,h=n[0],u=n[1],o=n[2];return(t=360*Math.atan2(o,u)/2/Math.PI)<0&&(t+=360),[h,Math.sqrt(u*u+o*o),t]},u.lch.lab=function(n){var t,h=n[0],u=n[1];return t=n[2]/360*2*Math.PI,[h,u*Math.cos(t),u*Math.sin(t)]},u.rgb.ansi16=function(n){var t=n[0],h=n[1],o=n[2],s=1 in arguments?arguments[1]:u.rgb.hsv(n)[2];if(0===(s=Math.round(s/50)))return 30;var c=30+(Math.round(o/255)<<2|Math.round(h/255)<<1|Math.round(t/255));return 2===s&&(c+=60),c},u.hsv.ansi16=function(n){return u.rgb.ansi16(u.hsv.rgb(n),n[2])},u.rgb.ansi256=function(n){var t=n[0],h=n[1],u=n[2];return t===h&&h===u?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(h/255*5)+Math.round(u/255*5)},u.ansi16.rgb=function(n){var t=n%10;if(0===t||7===t)return n>50&&(t+=3.5),[t=t/10.5*255,t,t];var h=.5*(1+~~(n>50));return[(1&t)*h*255,(t>>1&1)*h*255,(t>>2&1)*h*255]},u.ansi256.rgb=function(n){if(n>=232){var t=10*(n-232)+8;return[t,t,t]}var h;return n-=16,[Math.floor(n/36)/5*255,Math.floor((h=n%36)/6)/5*255,h%6/5*255]},u.rgb.hex=function(n){var t=(((255&Math.round(n[0]))<<16)+((255&Math.round(n[1]))<<8)+(255&Math.round(n[2]))).toString(16).toUpperCase();return'000000'.substring(t.length)+t},u.hex.rgb=function(n){var t=n.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var h=t[0];3===t[0].length&&(h=h.split('').map(function(n){return n+n}).join(''));var u=parseInt(h,16);return[u>>16&255,u>>8&255,255&u]},u.rgb.hcg=function(n){var t,h,u=n[0]/255,o=n[1]/255,s=n[2]/255,c=Math.max(Math.max(u,o),s),l=Math.min(Math.min(u,o),s),b=c-l;return t=b<1?l/(1-b):0,h=b<=0?0:c===u?(o-s)/b%6:c===o?2+(s-u)/b:4+(u-o)/b+4,h/=6,[360*(h%=1),100*b,100*t]},u.hsl.hcg=function(n){var t=n[1]/100,h=n[2]/100,u=1,o=0;return(u=h<.5?2*t*h:2*t*(1-h))<1&&(o=(h-.5*u)/(1-u)),[n[0],100*u,100*o]},u.hsv.hcg=function(n){var t=n[1]/100,h=n[2]/100,u=t*h,o=0;return u<1&&(o=(h-u)/(1-u)),[n[0],100*u,100*o]},u.hcg.rgb=function(n){var t=n[0]/360,h=n[1]/100,u=n[2]/100;if(0===h)return[255*u,255*u,255*u];var o,s=[0,0,0],c=t%1*6,l=c%1,b=1-l;switch(Math.floor(c)){case 0:s[0]=1,s[1]=l,s[2]=0;break;case 1:s[0]=b,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=l;break;case 3:s[0]=0,s[1]=b,s[2]=1;break;case 4:s[0]=l,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=b}return o=(1-h)*u,[255*(h*s[0]+o),255*(h*s[1]+o),255*(h*s[2]+o)]},u.hcg.hsv=function(n){var t=n[1]/100,h=t+n[2]/100*(1-t),u=0;return h>0&&(u=t/h),[n[0],100*u,100*h]},u.hcg.hsl=function(n){var t=n[1]/100,h=n[2]/100*(1-t)+.5*t,u=0;return h>0&&h<.5?u=t/(2*h):h>=.5&&h<1&&(u=t/(2*(1-h))),[n[0],100*u,100*h]},u.hcg.hwb=function(n){var t=n[1]/100,h=t+n[2]/100*(1-t);return[n[0],100*(h-t),100*(1-h)]},u.hwb.hcg=function(n){var t=n[1]/100,h=1-n[2]/100,u=h-t,o=0;return u<1&&(o=(h-u)/(1-u)),[n[0],100*u,100*o]},u.apple.rgb=function(n){return[n[0]/65535*255,n[1]/65535*255,n[2]/65535*255]},u.rgb.apple=function(n){return[n[0]/255*65535,n[1]/255*65535,n[2]/255*65535]},u.gray.rgb=function(n){return[n[0]/100*255,n[0]/100*255,n[0]/100*255]},u.gray.hsl=u.gray.hsv=function(n){return[0,0,n[0]]},u.gray.hwb=function(n){return[0,100,n[0]]},u.gray.cmyk=function(n){return[0,0,0,n[0]]},u.gray.lab=function(n){return[n[0],0,0]},u.gray.hex=function(n){var t=255&Math.round(n[0]/100*255),h=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return'000000'.substring(h.length)+h},u.rgb.gray=function(n){return[(n[0]+n[1]+n[2])/3/255*100]}},510,[506]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);function t(){for(var t={},u=Object.keys(n),c=u.length,o=0;o1&&void 0!==v[1]?v[1]:F,u=v.length>2&&void 0!==v[2]?v[2]:R,(0,y.default)(),l=M(t),c=(0,h.processColor)(u),f=l+":"+o+":"+c,!E.has(f)){O.next=8;break}return O.abrupt("return",E.get(f));case 8:return O.prev=8,O.next=11,n.default.awrap(I.getImageForFont(x,l,o,c));case 11:return s=O.sent,p={uri:s,scale:h.PixelRatio.get()},E.setValue(f,p),O.abrupt("return",p);case 17:throw O.prev=17,O.t0=O.catch(8),E.setError(f,O.t0),O.t0;case 21:case"end":return O.stop()}},null,null,[[8,17]],Promise)},C.getImageSourceSync=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:F,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:R;(0,y.default)();var u=M(t),l=(0,h.processColor)(o),c=u+":"+n+":"+l;if(E.has(c))return E.get(c);try{var f=I.getImageForFontSync(x,u,n,l),s={uri:f,scale:h.PixelRatio.get()};return E.setValue(c,s),s}catch(t){throw E.setError(c,t),t}},C.loadFont=function(){var t,u=arguments;return n.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(t=u.length>0&&void 0!==u[0]?u[0]:_,'ios'!==h.Platform.OS){l.next=7;break}if((0,y.default)(),t){l.next=5;break}throw new Error('Unable to load font, because no file was specified. ');case 5:return l.next=7,n.default.awrap(I.loadFontWithFileName.apply(I,(0,o.default)(t.split('.'))));case 7:case"end":return l.stop()}},null,null,null,Promise)},C.hasIcon=function(n){return Object.prototype.hasOwnProperty.call(t,n)},C.getRawGlyphMap=function(){return t},C.getFontFamily=function(){return x},C},e.DEFAULT_ICON_COLOR=e.DEFAULT_ICON_SIZE=e.NativeIconAPI=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),s=t(r(d[7])),p=t(r(d[8])),v=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=b(n);if(o&&o.has(t))return o.get(t);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=l?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(u,c,f):u[c]=t[c]}u.default=t,o&&o.set(t,u);return u})(r(d[9])),h=(t(r(d[10])),r(d[11])),y=t(r(d[12])),O=t(r(d[13])),P=t(r(d[14]));t(r(d[15]));function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(b=function(t){return t?o:n})(t)}function w(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var I=h.NativeModules.RNVectorIconsManager||h.NativeModules.RNVectorIconsModule;e.NativeIconAPI=I;var F=12;e.DEFAULT_ICON_SIZE=F;var R='black';e.DEFAULT_ICON_COLOR=R},519,[1,106,27,60,31,32,42,44,41,6,72,520,521,522,523,527]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n=r(d[0]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))})},520,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){if(!n){if('android'===o.Platform.OS)throw new Error('RNVectorIconsModule not available, did you properly integrate the module? Try running `react-native link react-native-vector-icons` and recompiling.');throw new Error('RNVectorIconsManager not available, did you add the library to your project and link with libRNVectorIcons.a? Try running `react-native link react-native-vector-icons` and recompiling.')}};var o=r(d[0]),n=o.NativeModules.RNVectorIconsManager||o.NativeModules.RNVectorIconsModule},521,[520]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var u=new Map;return{setValue:function(n,o){return u.set(n,{type:t,data:o})},setError:function(t,o){return u.set(t,{type:n,data:o})},has:function(t){return u.has(t)},get:function(t){if(u.has(t)){var o=u.get(t),f=o.type,s=o.data;if(f===n)throw s;return s}}}};var t='value',n='error'},522,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var P,R;return R=P=(function(P){(0,u.default)(x,P);var k,R,C=(k=x,R=O(),function(){var t,n=(0,f.default)(k);if(R){var o=(0,f.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,s.default)(this,t)});function x(){return(0,l.default)(this,x),C.apply(this,arguments)}return(0,c.default)(x,[{key:"render",value:function(){var l=this.props,c=l.style,u=l.iconStyle,s=l.children,f=(0,o.default)(l,["style","iconStyle","children"]),P=(0,b.default)(f,w,'style','name','size','color'),O=(0,b.default)(f,S),k=(0,p.default)(f,Object.keys(P),Object.keys(O),'iconStyle','borderRadius','backgroundColor');P.style=u?[j.icon,u]:j.icon;var R=(0,b.default)(this.props,'color'),C=(0,b.default)(this.props,'backgroundColor','borderRadius');return h.default.createElement(v.TouchableHighlight,(0,n.default)({style:[j.touchable,C]},O),h.default.createElement(v.View,(0,n.default)({style:[j.container,C,c]},k),h.default.createElement(t,P),(0,y.default)(s)?h.default.createElement(v.Text,{style:[j.text,R]},s):s))}}]),x})(h.PureComponent),P.defaultProps={backgroundColor:k,borderRadius:5,color:'white',size:20},R};var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),s=t(r(d[6])),f=t(r(d[7])),y=t(r(d[8])),p=t(r(d[9])),b=t(r(d[10])),h=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=P(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var s=c?Object.getOwnPropertyDescriptor(t,u):null;s&&(s.get||s.set)?Object.defineProperty(l,u,s):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[11])),v=r(d[12]);function P(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(P=function(t){return t?o:n})(t)}function O(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var j=v.StyleSheet.create({container:{flexDirection:'row',justifyContent:'flex-start',alignItems:'center',padding:8},touchable:{overflow:'hidden'},icon:{marginRight:10},text:{fontWeight:'600',backgroundColor:'transparent'}}),k='#007AFF',w=['ellipsizeMode','numberOfLines','textBreakStrategy','selectable','suppressHighlighting','allowFontScaling','adjustsFontSizeToFit','minimumFontScale'],S=['accessible','accessibilityLabel','accessibilityHint','accessibilityComponentType','accessibilityRole','accessibilityStates','accessibilityTraits','onFocus','onBlur','disabled','onPress','onPressIn','onPressOut','onLayout','onLongPress','nativeID','testID','delayPressIn','delayPressOut','delayLongPress','activeOpacity','underlayColor','selectionColor','onShowUnderlay','onHideUnderlay','hasTVPreferredFocus','tvParallaxProperties']},523,[1,9,60,31,32,42,44,41,524,525,526,6,520]); +__d(function(g,r,i,a,m,e,d){var t='[object String]',n=Object.prototype.toString,o=Array.isArray;function c(t){return!!t&&'object'==typeof t}m.exports=function(f){return'string'==typeof f||!o(f)&&c(f)&&n.call(f)==t}},524,[]); +__d(function(g,r,i,a,m,e,d){var t=200,n='__lodash_hash_undefined__',o=9007199254740991,u='[object Arguments]',c='[object Function]',f='[object GeneratorFunction]',l='[object Symbol]',s=/^\[object .+?Constructor\]$/,h=/^(?:0|[1-9]\d*)$/,p='object'==typeof g&&g&&g.Object===Object&&g,_='object'==typeof self&&self&&self.Object===Object&&self,y=p||_||Function('return this')();function v(t,n,o){switch(o.length){case 0:return t.call(n);case 1:return t.call(n,o[0]);case 2:return t.call(n,o[0],o[1]);case 3:return t.call(n,o[0],o[1],o[2])}return t.apply(n,o)}function b(t,n){return!!(t?t.length:0)&&A(t,n,0)>-1}function j(t,n,o){for(var u=-1,c=t?t.length:0;++u=t&&(s=x,h=!1,o=new tt(o));t:for(;++l0&&o(s)?n>1?ot(s,n-1,o,u,c):w(c,s):u||(c[c.length]=s)}return c}function ut(t,n,o){var u=n(t);return Ot(t)?u:w(u,o(t))}function it(t){return!(!$t(t)||T&&T in t)&&(St(t)||E(t)?D:s).test(bt(t))}function at(t){if(!$t(t))return gt(t);var n,o,u,c=(o=(n=t)&&n.constructor,u='function'==typeof o&&o.prototype||R,n===u),f=[];for(var l in t)('constructor'!=l||!c&&z.call(t,l))&&f.push(l);return f}function ct(t,n){return ft(t=Object(t),n,function(n,o){return o in t})}function ft(t,n,o){for(var u=-1,c=n.length,f={};++u-1},Y.prototype.set=function(t,n){var o=this.__data__,u=nt(o,t);return u<0?o.push([t,n]):o[u][1]=n,this},Z.prototype.clear=function(){this.__data__={hash:new X,map:new(V||Y),string:new X}},Z.prototype.delete=function(t){return st(this,t).delete(t)},Z.prototype.get=function(t){return st(this,t).get(t)},Z.prototype.has=function(t){return st(this,t).has(t)},Z.prototype.set=function(t,n){return st(this,t).set(t,n),this},tt.prototype.add=tt.prototype.push=function(t){return this.__data__.set(t,n),this},tt.prototype.has=function(t){return this.__data__.has(t)};var pt=Q?k(Q,Object):It,_t=Q?function(t){for(var n=[];t;)w(n,pt(t)),t=J(t);return n}:It;function yt(t){return Ot(t)||jt(t)||!!(N&&t&&t[N])}function vt(t,n){return!!(n=null==n?o:n)&&('number'==typeof t||h.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=o}function $t(t){var n=typeof t;return!!t&&('object'==n||'function'==n)}function Pt(t){return!!t&&'object'==typeof t}function xt(t){return'symbol'==typeof t||Pt(t)&&B.call(t)==l}function Ft(t){return mt(t)?rt(t,!0):at(t)}var Et,kt,Ct=(Et=function(t,n){return null==t?{}:(n=O(ot(n,1),dt),ct(t,et(lt(t),n)))},kt=U(void 0===kt?Et.length-1:kt,0),function(){for(var t=arguments,n=-1,o=U(t.length-kt,0),u=Array(o);++n0&&o(b)?n>1?w(b,n-1,o,c,u):v(u,b):c||(u[u.length]=b)}return u}function x(t,n){return _(t=Object(t),n,function(n,o){return o in t})}function _(t,n,o){for(var c=-1,u=n.length,l={};++c-1&&n%1==0&&n<=t}function z(t){var n=typeof t;return!!t&&('object'==n||'function'==n)}function B(t){return!!t&&'object'==typeof t}function D(t){return'symbol'==typeof t||B(t)&&j.call(t)==u}var H,J,K=(H=function(t,n){return null==t?{}:x(t,y(w(n,1),E))},J=F(void 0===J?H.length-1:J,0),function(){for(var t=arguments,n=-1,o=F(t.length-J,0),c=Array(o);++nh))return!1;var v=l.get(t);if(v&&l.get(u))return v==u;var y=-1,b=!0,j=c&o?new Mt:void 0;for(l.set(t,u),l.set(u,t);++y-1},$t.prototype.set=function(t,n){var o=this.__data__,u=It(o,t);return u<0?(++this.size,o.push([t,n])):o[u][1]=n,this},xt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ft,map:new(dt||$t),string:new Ft}},xt.prototype.delete=function(t){var n=Jt(this,t).delete(t);return this.size-=n?1:0,n},xt.prototype.get=function(t){return Jt(this,t).get(t)},xt.prototype.has=function(t){return Jt(this,t).has(t)},xt.prototype.set=function(t,n){var o=Jt(this,t),u=o.size;return o.set(t,n),this.size+=o.size==u?0:1,this},Mt.prototype.add=Mt.prototype.push=function(n){return this.__data__.set(n,t),this},Mt.prototype.has=function(t){return this.__data__.has(t)},Ut.prototype.clear=function(){this.__data__=new $t,this.size=0},Ut.prototype.delete=function(t){var n=this.__data__,o=n.delete(t);return this.size=n.size,o},Ut.prototype.get=function(t){return this.__data__.get(t)},Ut.prototype.has=function(t){return this.__data__.has(t)},Ut.prototype.set=function(t,n){var o=this.__data__;if(o instanceof $t){var u=o.__data__;if(!dt||u.length<199)return u.push([t,n]),this.size=++o.size,this;o=this.__data__=new xt(u)}return o.set(t,n),this.size=o.size,this};var Xt=pt?function(t){return null==t?[]:(t=Object(t),N(pt(t),function(n){return lt.call(t,n)}))}:function(){return[]},Yt=Tt;function Zt(t,n){return!!(n=null==n?u:n)&&('number'==typeof t||x.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=u}function ce(t){var n=typeof t;return null!=t&&('object'==n||'function'==n)}function se(t){return null!=t&&'object'==typeof t}var fe=C?(function(t){return function(n){return t(n)}})(C):function(t){return se(t)&&ue(t.length)&&!!M[Tt(t)]};function le(t){return null!=(n=t)&&ue(n.length)&&!ae(n)?Bt(t):Nt(t);var n}m.exports=function(t,n){return Dt(t,n)}},528,[]); +__d(function(e,a,s,t,o,d,c){o.exports=a(c[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"6a2ddad1092a0a1c326b6d0e738e682b",name:"MaterialCommunityIcons",type:"ttf",fileHashes:["6a2ddad1092a0a1c326b6d0e738e682b"]})},529,[188]); +__d(function(e,o,t,l,a,i,r){a.exports={"ab-testing":983497,"abjad-arabic":987944,"abjad-hebrew":987945,"abugida-devanagari":987946,"abugida-thai":987947,"access-point":983043,"access-point-network":983042,"access-point-network-off":986081,account:983044,"account-alert":983045,"account-alert-outline":985936,"account-arrow-left":985937,"account-arrow-left-outline":985938,"account-arrow-right":985939,"account-arrow-right-outline":985940,"account-box":983046,"account-box-multiple":985396,"account-box-multiple-outline":987146,"account-box-outline":983047,"account-cancel":987871,"account-cancel-outline":987872,"account-cash":987287,"account-cash-outline":987288,"account-check":983048,"account-check-outline":986082,"account-child":985737,"account-child-circle":985738,"account-child-outline":987336,"account-circle":983049,"account-circle-outline":985941,"account-clock":985942,"account-clock-outline":985943,"account-cog":988016,"account-cog-outline":988017,"account-convert":983050,"account-convert-outline":987905,"account-cowboy-hat":986779,"account-details":984625,"account-details-outline":988018,"account-edit":984764,"account-edit-outline":987131,"account-group":985161,"account-group-outline":985944,"account-hard-hat":984501,"account-heart":985241,"account-heart-outline":986083,"account-key":983051,"account-key-outline":986084,"account-lock":987486,"account-lock-outline":987487,"account-minus":983053,"account-minus-outline":985836,"account-multiple":983054,"account-multiple-check":985285,"account-multiple-check-outline":987646,"account-multiple-minus":984531,"account-multiple-minus-outline":986085,"account-multiple-outline":983055,"account-multiple-plus":983056,"account-multiple-plus-outline":985088,"account-multiple-remove":987658,"account-multiple-remove-outline":987659,"account-music":985091,"account-music-outline":986345,"account-network":983057,"account-network-outline":986086,"account-off":983058,"account-off-outline":986087,"account-outline":983059,"account-plus":983060,"account-plus-outline":985089,"account-question":985945,"account-question-outline":985946,"account-remove":983061,"account-remove-outline":985837,"account-search":983062,"account-search-outline":985397,"account-settings":984624,"account-settings-outline":987337,"account-star":983063,"account-star-outline":986088,"account-supervisor":985739,"account-supervisor-circle":985740,"account-supervisor-outline":987437,"account-switch":983065,"account-switch-outline":984267,"account-tie":986339,"account-tie-outline":987338,"account-tie-voice":987912,"account-tie-voice-off":987914,"account-tie-voice-off-outline":987915,"account-tie-voice-outline":987913,"account-voice":984523,adjust:983066,adobe:985398,"adobe-acrobat":987037,"air-conditioner":983067,"air-filter":986435,"air-horn":986540,"air-humidifier":987289,"air-humidifier-off":988262,"air-purifier":986436,airbag:986089,airballoon:983068,"airballoon-outline":987147,airplane:983069,"airplane-landing":984532,"airplane-off":983070,"airplane-takeoff":984533,airport:985163,alarm:983072,"alarm-bell":984974,"alarm-check":983073,"alarm-light":984975,"alarm-light-outline":986090,"alarm-multiple":983074,"alarm-note":986737,"alarm-note-off":986738,"alarm-off":983075,"alarm-plus":983076,"alarm-snooze":984718,album:983077,alert:983078,"alert-box":983079,"alert-box-outline":986340,"alert-circle":983080,"alert-circle-check":987629,"alert-circle-check-outline":987630,"alert-circle-outline":984534,"alert-decagram":984765,"alert-decagram-outline":986341,"alert-minus":988347,"alert-minus-outline":988350,"alert-octagon":983081,"alert-octagon-outline":986342,"alert-octagram":984935,"alert-octagram-outline":986343,"alert-outline":983082,"alert-plus":988346,"alert-plus-outline":988349,"alert-remove":988348,"alert-remove-outline":988351,"alert-rhombus":987598,"alert-rhombus-outline":987599,alien:985242,"alien-outline":987339,"align-horizontal-center":987587,"align-horizontal-left":987586,"align-horizontal-right":987588,"align-vertical-bottom":987589,"align-vertical-center":987590,"align-vertical-top":987591,"all-inclusive":984766,allergy:987736,alpha:983083,"alpha-a":985838,"alpha-a-box":985864,"alpha-a-box-outline":986091,"alpha-a-circle":986092,"alpha-a-circle-outline":986093,"alpha-b":985839,"alpha-b-box":985865,"alpha-b-box-outline":986094,"alpha-b-circle":986095,"alpha-b-circle-outline":986096,"alpha-c":985840,"alpha-c-box":985866,"alpha-c-box-outline":986097,"alpha-c-circle":986098,"alpha-c-circle-outline":986099,"alpha-d":985841,"alpha-d-box":985867,"alpha-d-box-outline":986100,"alpha-d-circle":986101,"alpha-d-circle-outline":986102,"alpha-e":985842,"alpha-e-box":985868,"alpha-e-box-outline":986103,"alpha-e-circle":986104,"alpha-e-circle-outline":986105,"alpha-f":985843,"alpha-f-box":985869,"alpha-f-box-outline":986106,"alpha-f-circle":986107,"alpha-f-circle-outline":986108,"alpha-g":985844,"alpha-g-box":985870,"alpha-g-box-outline":986109,"alpha-g-circle":986110,"alpha-g-circle-outline":986111,"alpha-h":985845,"alpha-h-box":985871,"alpha-h-box-outline":986112,"alpha-h-circle":986113,"alpha-h-circle-outline":986114,"alpha-i":985846,"alpha-i-box":985872,"alpha-i-box-outline":986115,"alpha-i-circle":986116,"alpha-i-circle-outline":986117,"alpha-j":985847,"alpha-j-box":985873,"alpha-j-box-outline":986118,"alpha-j-circle":986119,"alpha-j-circle-outline":986120,"alpha-k":985848,"alpha-k-box":985874,"alpha-k-box-outline":986121,"alpha-k-circle":986122,"alpha-k-circle-outline":986123,"alpha-l":985849,"alpha-l-box":985875,"alpha-l-box-outline":986124,"alpha-l-circle":986125,"alpha-l-circle-outline":986126,"alpha-m":985850,"alpha-m-box":985876,"alpha-m-box-outline":986127,"alpha-m-circle":986128,"alpha-m-circle-outline":986129,"alpha-n":985851,"alpha-n-box":985877,"alpha-n-box-outline":986130,"alpha-n-circle":986131,"alpha-n-circle-outline":986132,"alpha-o":985852,"alpha-o-box":985878,"alpha-o-box-outline":986133,"alpha-o-circle":986134,"alpha-o-circle-outline":986135,"alpha-p":985853,"alpha-p-box":985879,"alpha-p-box-outline":986136,"alpha-p-circle":986137,"alpha-p-circle-outline":986138,"alpha-q":985854,"alpha-q-box":985880,"alpha-q-box-outline":986139,"alpha-q-circle":986140,"alpha-q-circle-outline":986141,"alpha-r":985855,"alpha-r-box":985881,"alpha-r-box-outline":986142,"alpha-r-circle":986143,"alpha-r-circle-outline":986144,"alpha-s":985856,"alpha-s-box":985882,"alpha-s-box-outline":986145,"alpha-s-circle":986146,"alpha-s-circle-outline":986147,"alpha-t":985857,"alpha-t-box":985883,"alpha-t-box-outline":986148,"alpha-t-circle":986149,"alpha-t-circle-outline":986150,"alpha-u":985858,"alpha-u-box":985884,"alpha-u-box-outline":986151,"alpha-u-circle":986152,"alpha-u-circle-outline":986153,"alpha-v":985859,"alpha-v-box":985885,"alpha-v-box-outline":986154,"alpha-v-circle":986155,"alpha-v-circle-outline":986156,"alpha-w":985860,"alpha-w-box":985886,"alpha-w-box-outline":986157,"alpha-w-circle":986158,"alpha-w-circle-outline":986159,"alpha-x":985861,"alpha-x-box":985887,"alpha-x-box-outline":986160,"alpha-x-circle":986161,"alpha-x-circle-outline":986162,"alpha-y":985862,"alpha-y-box":985888,"alpha-y-box-outline":986163,"alpha-y-circle":986164,"alpha-y-circle-outline":986165,"alpha-z":985863,"alpha-z-box":985889,"alpha-z-box-outline":986166,"alpha-z-circle":986167,"alpha-z-circle-outline":986168,"alphabet-aurebesh":987948,"alphabet-cyrillic":987949,"alphabet-greek":987950,"alphabet-latin":987951,"alphabet-piqad":987952,"alphabet-tengwar":987959,alphabetical:983084,"alphabetical-off":987148,"alphabetical-variant":987149,"alphabetical-variant-off":987150,altimeter:984535,amazon:983085,"amazon-alexa":985286,ambulance:983087,ammunition:986344,ampersand:985741,amplifier:983088,"amplifier-off":987573,anchor:983089,android:983090,"android-auto":985742,"android-debug-bridge":983091,"android-messages":986437,"android-studio":983092,"angle-acute":985399,"angle-obtuse":985400,"angle-right":985401,angular:984754,angularjs:984767,animation:984536,"animation-outline":985743,"animation-play":985402,"animation-play-outline":985744,ansible:987290,antenna:987417,anvil:985243,"apache-kafka":987151,api:987291,"api-off":987735,apple:983093,"apple-airplay":983071,"apple-finder":983094,"apple-icloud":983096,"apple-ios":983095,"apple-keyboard-caps":984626,"apple-keyboard-command":984627,"apple-keyboard-control":984628,"apple-keyboard-option":984629,"apple-keyboard-shift":984630,"apple-safari":983097,application:984596,"application-export":986541,"application-import":986542,"approximately-equal":987038,"approximately-equal-box":987039,apps:983099,"apps-box":986438,arch:985287,archive:983100,"archive-arrow-down":987737,"archive-arrow-down-outline":987738,"archive-arrow-up":987739,"archive-arrow-up-outline":987740,"archive-outline":987662,"arm-flex":987095,"arm-flex-outline":987094,"arrange-bring-forward":983101,"arrange-bring-to-front":983102,"arrange-send-backward":983103,"arrange-send-to-back":983104,"arrow-all":983105,"arrow-bottom-left":983106,"arrow-bottom-left-bold-outline":985527,"arrow-bottom-left-thick":985528,"arrow-bottom-right":983107,"arrow-bottom-right-bold-outline":985529,"arrow-bottom-right-thick":985530,"arrow-collapse":984597,"arrow-collapse-all":983108,"arrow-collapse-down":984978,"arrow-collapse-horizontal":985164,"arrow-collapse-left":984979,"arrow-collapse-right":984980,"arrow-collapse-up":984981,"arrow-collapse-vertical":985165,"arrow-decision":985531,"arrow-decision-auto":985532,"arrow-decision-auto-outline":985533,"arrow-decision-outline":985534,"arrow-down":983109,"arrow-down-bold":984878,"arrow-down-bold-box":984879,"arrow-down-bold-box-outline":984880,"arrow-down-bold-circle":983111,"arrow-down-bold-circle-outline":983112,"arrow-down-bold-hexagon-outline":983113,"arrow-down-bold-outline":985535,"arrow-down-box":984768,"arrow-down-circle":986331,"arrow-down-circle-outline":986332,"arrow-down-drop-circle":983114,"arrow-down-drop-circle-outline":983115,"arrow-down-thick":983110,"arrow-expand":984598,"arrow-expand-all":983116,"arrow-expand-down":984982,"arrow-expand-horizontal":985166,"arrow-expand-left":984983,"arrow-expand-right":984984,"arrow-expand-up":984985,"arrow-expand-vertical":985167,"arrow-horizontal-lock":987483,"arrow-left":983117,"arrow-left-bold":984881,"arrow-left-bold-box":984882,"arrow-left-bold-box-outline":984883,"arrow-left-bold-circle":983119,"arrow-left-bold-circle-outline":983120,"arrow-left-bold-hexagon-outline":983121,"arrow-left-bold-outline":985536,"arrow-left-box":984769,"arrow-left-circle":986333,"arrow-left-circle-outline":986334,"arrow-left-drop-circle":983122,"arrow-left-drop-circle-outline":983123,"arrow-left-right":986739,"arrow-left-right-bold":986740,"arrow-left-right-bold-outline":985537,"arrow-left-thick":983118,"arrow-right":983124,"arrow-right-bold":984884,"arrow-right-bold-box":984885,"arrow-right-bold-box-outline":984886,"arrow-right-bold-circle":983126,"arrow-right-bold-circle-outline":983127,"arrow-right-bold-hexagon-outline":983128,"arrow-right-bold-outline":985538,"arrow-right-box":984770,"arrow-right-circle":986335,"arrow-right-circle-outline":986336,"arrow-right-drop-circle":983129,"arrow-right-drop-circle-outline":983130,"arrow-right-thick":983125,"arrow-split-horizontal":985403,"arrow-split-vertical":985404,"arrow-top-left":983131,"arrow-top-left-bold-outline":985539,"arrow-top-left-bottom-right":986741,"arrow-top-left-bottom-right-bold":986742,"arrow-top-left-thick":985540,"arrow-top-right":983132,"arrow-top-right-bold-outline":985541,"arrow-top-right-bottom-left":986743,"arrow-top-right-bottom-left-bold":986744,"arrow-top-right-thick":985542,"arrow-up":983133,"arrow-up-bold":984887,"arrow-up-bold-box":984888,"arrow-up-bold-box-outline":984889,"arrow-up-bold-circle":983135,"arrow-up-bold-circle-outline":983136,"arrow-up-bold-hexagon-outline":983137,"arrow-up-bold-outline":985543,"arrow-up-box":984771,"arrow-up-circle":986337,"arrow-up-circle-outline":986338,"arrow-up-down":986745,"arrow-up-down-bold":986746,"arrow-up-down-bold-outline":985544,"arrow-up-drop-circle":983138,"arrow-up-drop-circle-outline":983139,"arrow-up-thick":983134,"arrow-vertical-lock":987484,artstation:985947,"aspect-ratio":985636,assistant:983140,asterisk:984772,at:983141,atlassian:985092,atm:986439,atom:984936,"atom-variant":986747,attachment:983142,"audio-video":985405,"audio-video-off":987574,"augmented-reality":985168,"auto-download":988030,"auto-fix":983144,"auto-upload":983145,autorenew:983146,"av-timer":983147,aws:986639,axe:985288,axis:986440,"axis-arrow":986441,"axis-arrow-info":988174,"axis-arrow-lock":986442,"axis-lock":986443,"axis-x-arrow":986444,"axis-x-arrow-lock":986445,"axis-x-rotate-clockwise":986446,"axis-x-rotate-counterclockwise":986447,"axis-x-y-arrow-lock":986448,"axis-y-arrow":986449,"axis-y-arrow-lock":986450,"axis-y-rotate-clockwise":986451,"axis-y-rotate-counterclockwise":986452,"axis-z-arrow":986453,"axis-z-arrow-lock":986454,"axis-z-rotate-clockwise":986455,"axis-z-rotate-counterclockwise":986456,babel:985637,baby:983148,"baby-bottle":986937,"baby-bottle-outline":986938,"baby-buggy":988128,"baby-carriage":984719,"baby-carriage-off":987040,"baby-face":986748,"baby-face-outline":986749,backburger:983149,backspace:983150,"backspace-outline":985948,"backspace-reverse":986750,"backspace-reverse-outline":986751,"backup-restore":983151,bacteria:986837,"bacteria-outline":986838,"badge-account":986535,"badge-account-alert":986536,"badge-account-alert-outline":986537,"badge-account-horizontal":986637,"badge-account-horizontal-outline":986638,"badge-account-outline":986538,badminton:985169,"bag-carry-on":986939,"bag-carry-on-check":986469,"bag-carry-on-off":986940,"bag-checked":986941,"bag-personal":986640,"bag-personal-off":986641,"bag-personal-off-outline":986642,"bag-personal-outline":986643,baguette:986942,balloon:985638,ballot:985545,"ballot-outline":985546,"ballot-recount":986169,"ballot-recount-outline":986170,bandage:986543,bandcamp:984693,bank:983152,"bank-minus":986544,"bank-outline":986752,"bank-plus":986545,"bank-remove":986546,"bank-transfer":985639,"bank-transfer-in":985640,"bank-transfer-out":985641,barcode:983153,"barcode-off":987702,"barcode-scan":983154,barley:983155,"barley-off":985949,barn:985950,barrel:983156,baseball:985170,"baseball-bat":985171,bash:987523,basket:983158,"basket-fill":983159,"basket-outline":987521,"basket-unfill":983160,basketball:985094,"basketball-hoop":986171,"basketball-hoop-outline":986172,bat:985951,battery:983161,"battery-10":983162,"battery-10-bluetooth":985406,"battery-20":983163,"battery-20-bluetooth":985407,"battery-30":983164,"battery-30-bluetooth":985408,"battery-40":983165,"battery-40-bluetooth":985409,"battery-50":983166,"battery-50-bluetooth":985410,"battery-60":983167,"battery-60-bluetooth":985411,"battery-70":983168,"battery-70-bluetooth":985412,"battery-80":983169,"battery-80-bluetooth":985413,"battery-90":983170,"battery-90-bluetooth":985414,"battery-alert":983171,"battery-alert-bluetooth":985415,"battery-alert-variant":987340,"battery-alert-variant-outline":987341,"battery-bluetooth":985416,"battery-bluetooth-variant":985417,"battery-charging":983172,"battery-charging-10":985244,"battery-charging-100":983173,"battery-charging-20":983174,"battery-charging-30":983175,"battery-charging-40":983176,"battery-charging-50":985245,"battery-charging-60":983177,"battery-charging-70":985246,"battery-charging-80":983178,"battery-charging-90":983179,"battery-charging-high":987814,"battery-charging-low":987812,"battery-charging-medium":987813,"battery-charging-outline":985247,"battery-charging-wireless":985095,"battery-charging-wireless-10":985096,"battery-charging-wireless-20":985097,"battery-charging-wireless-30":985098,"battery-charging-wireless-40":985099,"battery-charging-wireless-50":985100,"battery-charging-wireless-60":985101,"battery-charging-wireless-70":985102,"battery-charging-wireless-80":985103,"battery-charging-wireless-90":985104,"battery-charging-wireless-alert":985105,"battery-charging-wireless-outline":985106,"battery-heart":987663,"battery-heart-outline":987664,"battery-heart-variant":987665,"battery-high":987811,"battery-low":987809,"battery-medium":987810,"battery-minus":983180,"battery-negative":983181,"battery-off":987741,"battery-off-outline":987742,"battery-outline":983182,"battery-plus":983183,"battery-positive":983184,"battery-unknown":983185,"battery-unknown-bluetooth":985418,battlenet:985952,beach:983186,beaker:986346,"beaker-alert":987689,"beaker-alert-outline":987690,"beaker-check":987691,"beaker-check-outline":987692,"beaker-minus":987693,"beaker-minus-outline":987694,"beaker-outline":984720,"beaker-plus":987695,"beaker-plus-outline":987696,"beaker-question":987697,"beaker-question-outline":987698,"beaker-remove":987699,"beaker-remove-outline":987700,bed:983779,"bed-double":987092,"bed-double-outline":987091,"bed-empty":985248,"bed-king":987090,"bed-king-outline":987089,"bed-outline":983193,"bed-queen":987088,"bed-queen-outline":987099,"bed-single":987245,"bed-single-outline":987246,bee:987041,"bee-flower":987042,"beehive-off-outline":988141,"beehive-outline":987342,beer:983192,"beer-outline":987916,bell:983194,"bell-alert":986457,"bell-alert-outline":986753,"bell-cancel":988135,"bell-cancel-outline":988136,"bell-check":987621,"bell-check-outline":987622,"bell-circle":986458,"bell-circle-outline":986459,"bell-minus":988137,"bell-minus-outline":988138,"bell-off":983195,"bell-off-outline":985745,"bell-outline":983196,"bell-plus":983197,"bell-plus-outline":985746,"bell-remove":988139,"bell-remove-outline":988140,"bell-ring":983198,"bell-ring-outline":983199,"bell-sleep":983200,"bell-sleep-outline":985747,beta:983201,betamax:985547,biathlon:986644,bicycle:987292,"bicycle-basket":987701,bike:983203,"bike-fast":987423,billboard:987152,billiards:985953,"billiards-rack":985954,binoculars:983205,bio:983206,biohazard:983207,bitbucket:983208,bitcoin:985107,"black-mesa":983209,blender:986347,"blender-software":983211,blinds:983212,"blinds-open":987153,"block-helper":983213,blogger:983214,"blood-bag":986348,bluetooth:983215,"bluetooth-audio":983216,"bluetooth-connect":983217,"bluetooth-off":983218,"bluetooth-settings":983219,"bluetooth-transfer":983220,blur:983221,"blur-linear":983222,"blur-off":983223,"blur-radial":983224,"bolnisi-cross":986349,bolt:986547,bomb:984721,"bomb-off":984773,bone:983225,book:983226,"book-account":988077,"book-account-outline":988078,"book-alphabet":984605,"book-cross":983202,"book-information-variant":987247,"book-lock":984986,"book-lock-open":984987,"book-minus":984537,"book-minus-multiple":985748,"book-minus-multiple-outline":985355,"book-multiple":983227,"book-multiple-outline":984118,"book-music":983143,"book-open":983229,"book-open-outline":985955,"book-open-page-variant":984538,"book-open-variant":983230,"book-outline":985956,"book-play":986754,"book-play-outline":986755,"book-plus":984539,"book-plus-multiple":985749,"book-plus-multiple-outline":985822,"book-remove":985751,"book-remove-multiple":985750,"book-remove-multiple-outline":984266,"book-search":986756,"book-search-outline":986757,"book-variant":983231,"book-variant-multiple":983228,bookmark:983232,"bookmark-check":983233,"bookmark-check-outline":988027,"bookmark-minus":985548,"bookmark-minus-outline":985549,"bookmark-multiple":986645,"bookmark-multiple-outline":986646,"bookmark-music":983234,"bookmark-music-outline":988025,"bookmark-off":985550,"bookmark-off-outline":985551,"bookmark-outline":983235,"bookmark-plus":983237,"bookmark-plus-outline":983236,"bookmark-remove":983238,"bookmark-remove-outline":988026,bookshelf:987743,"boom-gate":986758,"boom-gate-alert":986759,"boom-gate-alert-outline":986760,"boom-gate-down":986761,"boom-gate-down-outline":986762,"boom-gate-outline":986763,"boom-gate-up":986764,"boom-gate-up-outline":986765,boombox:984540,boomerang:987343,bootstrap:984774,"border-all":983239,"border-all-variant":985249,"border-bottom":983240,"border-bottom-variant":985250,"border-color":983241,"border-horizontal":983242,"border-inside":983243,"border-left":983244,"border-left-variant":985251,"border-none":983245,"border-none-variant":985252,"border-outside":983246,"border-right":983247,"border-right-variant":985253,"border-style":983248,"border-top":983249,"border-top-variant":985254,"border-vertical":983250,"bottle-soda":987248,"bottle-soda-classic":987249,"bottle-soda-classic-outline":988003,"bottle-soda-outline":987250,"bottle-tonic":987438,"bottle-tonic-outline":987439,"bottle-tonic-plus":987440,"bottle-tonic-plus-outline":987441,"bottle-tonic-skull":987442,"bottle-tonic-skull-outline":987443,"bottle-wine":985172,"bottle-wine-outline":987920,"bow-tie":984696,bowl:983694,"bowl-mix":984599,"bowl-mix-outline":983780,"bowl-outline":983721,bowling:983251,box:983252,"box-cutter":983253,"box-cutter-off":985930,"box-shadow":984631,"boxing-glove":985957,braille:985552,brain:985553,"bread-slice":986350,"bread-slice-outline":986351,bridge:984600,briefcase:983254,"briefcase-account":986352,"briefcase-account-outline":986353,"briefcase-check":983255,"briefcase-check-outline":987934,"briefcase-clock":987344,"briefcase-clock-outline":987345,"briefcase-download":983256,"briefcase-download-outline":986173,"briefcase-edit":985752,"briefcase-edit-outline":986174,"briefcase-minus":985642,"briefcase-minus-outline":986175,"briefcase-outline":985108,"briefcase-plus":985643,"briefcase-plus-outline":986176,"briefcase-remove":985644,"briefcase-remove-outline":986177,"briefcase-search":985645,"briefcase-search-outline":986178,"briefcase-upload":983257,"briefcase-upload-outline":986179,"briefcase-variant":988308,"briefcase-variant-outline":988309,"brightness-1":983258,"brightness-2":983259,"brightness-3":983260,"brightness-4":983261,"brightness-5":983262,"brightness-6":983263,"brightness-7":983264,"brightness-auto":983265,"brightness-percent":986354,broom:983266,brush:983267,bucket:988181,"bucket-outline":988182,buddhism:985419,buffer:984601,buffet:984440,bug:983268,"bug-check":985646,"bug-check-outline":985647,"bug-outline":985648,bugle:986548,bulldozer:985890,bullet:986355,"bulletin-board":983269,bullhorn:983270,"bullhorn-outline":985891,bullseye:984541,"bullseye-arrow":985289,bulma:987879,"bunk-bed":987906,"bunk-bed-outline":983191,bus:983271,"bus-alert":985753,"bus-articulated-end":984988,"bus-articulated-front":984989,"bus-clock":985290,"bus-double-decker":984990,"bus-marker":987666,"bus-multiple":986943,"bus-school":984991,"bus-side":984992,"bus-stop":987154,"bus-stop-covered":987155,"bus-stop-uncovered":987156,"cable-data":988052,cached:983272,cactus:986549,cake:983273,"cake-layered":983274,"cake-variant":983275,calculator:983276,"calculator-variant":985754,calendar:983277,"calendar-account":986839,"calendar-account-outline":986840,"calendar-alert":985649,"calendar-arrow-left":987444,"calendar-arrow-right":987445,"calendar-blank":983278,"calendar-blank-multiple":987251,"calendar-blank-outline":985958,"calendar-check":983279,"calendar-check-outline":986180,"calendar-clock":983280,"calendar-edit":985255,"calendar-export":985892,"calendar-heart":985554,"calendar-import":985893,"calendar-minus":986460,"calendar-month":986647,"calendar-month-outline":986648,"calendar-multiple":983281,"calendar-multiple-check":983282,"calendar-multiselect":985650,"calendar-outline":985959,"calendar-plus":983283,"calendar-question":984722,"calendar-range":984697,"calendar-range-outline":985960,"calendar-refresh":983521,"calendar-refresh-outline":983555,"calendar-remove":983284,"calendar-remove-outline":986181,"calendar-search":985420,"calendar-star":985555,"calendar-sync":986766,"calendar-sync-outline":986767,"calendar-text":983285,"calendar-text-outline":986182,"calendar-today":983286,"calendar-week":985651,"calendar-week-begin":985652,"calendar-weekend":986841,"calendar-weekend-outline":986842,"call-made":983287,"call-merge":983288,"call-missed":983289,"call-received":983290,"call-split":983291,camcorder:983292,"camcorder-off":983295,camera:983296,"camera-account":985291,"camera-burst":984723,"camera-control":985961,"camera-enhance":983297,"camera-enhance-outline":985962,"camera-front":983298,"camera-front-variant":983299,"camera-gopro":984993,"camera-image":985292,"camera-iris":983300,"camera-metering-center":984994,"camera-metering-matrix":984995,"camera-metering-partial":984996,"camera-metering-spot":984997,"camera-off":984543,"camera-outline":986461,"camera-party-mode":983301,"camera-plus":986843,"camera-plus-outline":986844,"camera-rear":983302,"camera-rear-variant":983303,"camera-retake":986649,"camera-retake-outline":986650,"camera-switch":983304,"camera-switch-outline":985162,"camera-timer":983305,"camera-wireless":986550,"camera-wireless-outline":986551,campfire:986845,cancel:984890,candle:984546,candycane:983306,cannabis:984998,"caps-lock":985755,car:983307,"car-2-plus":987157,"car-3-plus":987158,"car-arrow-left":988082,"car-arrow-right":988083,"car-back":986651,"car-battery":983308,"car-brake-abs":986183,"car-brake-alert":986184,"car-brake-hold":986462,"car-brake-parking":986463,"car-brake-retarder":987159,"car-child-seat":987043,"car-clutch":987160,"car-cog":988108,"car-connected":983309,"car-convertible":984999,"car-coolant-level":987161,"car-cruise-control":986464,"car-defrost-front":986465,"car-defrost-rear":986466,"car-door":985963,"car-door-lock":987293,"car-electric":985964,"car-esp":986185,"car-estate":985e3,"car-hatchback":985001,"car-info":987582,"car-key":985965,"car-light-dimmed":986186,"car-light-fog":986187,"car-light-high":986188,"car-limousine":985293,"car-multiple":985966,"car-off":986652,"car-parking-lights":986467,"car-pickup":985002,"car-seat":987044,"car-seat-cooler":987045,"car-seat-heater":987046,"car-settings":988109,"car-shift-pattern":986944,"car-side":985003,"car-sports":985004,"car-tire-alert":986189,"car-traction-control":986468,"car-turbocharger":987162,"car-wash":983310,"car-windshield":987163,"car-windshield-outline":987164,carabiner:988352,caravan:985005,card:985967,"card-account-details":984530,"card-account-details-outline":986539,"card-account-details-star":983715,"card-account-details-star-outline":984795,"card-account-mail":983438,"card-account-mail-outline":986776,"card-account-phone":986777,"card-account-phone-outline":986778,"card-bulleted":985968,"card-bulleted-off":985969,"card-bulleted-off-outline":985970,"card-bulleted-outline":985971,"card-bulleted-settings":985972,"card-bulleted-settings-outline":985973,"card-outline":985974,"card-plus":987647,"card-plus-outline":987648,"card-search":987252,"card-search-outline":987253,"card-text":985975,"card-text-outline":985976,cards:984632,"cards-club":985294,"cards-diamond":985295,"cards-diamond-outline":987165,"cards-heart":985296,"cards-outline":984633,"cards-playing-outline":984634,"cards-spade":985297,"cards-variant":984775,carrot:983311,cart:983312,"cart-arrow-down":986470,"cart-arrow-right":986190,"cart-arrow-up":986471,"cart-minus":986472,"cart-off":984683,"cart-outline":983313,"cart-plus":983314,"cart-remove":986473,"case-sensitive-alt":983315,cash:983316,"cash-100":983317,"cash-marker":986552,"cash-minus":987744,"cash-multiple":983318,"cash-plus":987745,"cash-refund":985756,"cash-register":986356,"cash-remove":987746,"cash-usd":987510,"cash-usd-outline":983319,cassette:985556,cast:983320,"cast-audio":987166,"cast-connected":983321,"cast-education":986653,"cast-off":984970,castle:983322,cat:983323,cctv:985006,"ceiling-light":984937,cellphone:983324,"cellphone-android":983325,"cellphone-arrow-down":985557,"cellphone-basic":983326,"cellphone-charging":988055,"cellphone-cog":985425,"cellphone-dock":983327,"cellphone-erase":985421,"cellphone-information":986945,"cellphone-iphone":983328,"cellphone-key":985422,"cellphone-link":983329,"cellphone-link-off":983330,"cellphone-lock":985423,"cellphone-message":985299,"cellphone-message-off":987346,"cellphone-nfc":986768,"cellphone-nfc-off":987864,"cellphone-off":985424,"cellphone-play":987167,"cellphone-screenshot":985653,"cellphone-settings":983331,"cellphone-sound":985426,"cellphone-text":985298,"cellphone-wireless":985109,"celtic-cross":986357,centos:987418,certificate:983332,"certificate-outline":987528,"chair-rolling":986952,"chair-school":983333,charity:986191,"chart-arc":983334,"chart-areaspline":983335,"chart-areaspline-variant":986769,"chart-bar":983336,"chart-bar-stacked":984938,"chart-bell-curve":986192,"chart-bell-curve-cumulative":987047,"chart-bubble":984547,"chart-donut":985007,"chart-donut-variant":985008,"chart-gantt":984684,"chart-histogram":983337,"chart-line":983338,"chart-line-stacked":984939,"chart-line-variant":985009,"chart-multiline":985300,"chart-multiple":987667,"chart-pie":983339,"chart-ppf":988032,"chart-sankey":987615,"chart-sankey-variant":987616,"chart-scatter-plot":986770,"chart-scatter-plot-hexbin":984685,"chart-timeline":984686,"chart-timeline-variant":986771,"chart-tree":986772,chat:985977,"chat-alert":985978,"chat-alert-outline":987849,"chat-minus":988176,"chat-minus-outline":988179,"chat-outline":986846,"chat-plus":988175,"chat-plus-outline":988178,"chat-processing":985979,"chat-processing-outline":987850,"chat-remove":988177,"chat-remove-outline":988180,"chat-sleep":987857,"chat-sleep-outline":987858,check:983340,"check-all":983341,"check-bold":986654,"check-box-multiple-outline":986193,"check-box-outline":986194,"check-circle":984544,"check-circle-outline":984545,"check-decagram":984977,"check-network":986195,"check-network-outline":986196,"check-outline":985173,"check-underline":986655,"check-underline-circle":986656,"check-underline-circle-outline":986657,checkbook:985757,"checkbox-blank":983342,"checkbox-blank-circle":983343,"checkbox-blank-circle-outline":983344,"checkbox-blank-off":987884,"checkbox-blank-off-outline":987885,"checkbox-blank-outline":983345,"checkbox-intermediate":985174,"checkbox-marked":983346,"checkbox-marked-circle":983347,"checkbox-marked-circle-outline":983348,"checkbox-marked-outline":983349,"checkbox-multiple-blank":983350,"checkbox-multiple-blank-circle":984635,"checkbox-multiple-blank-circle-outline":984636,"checkbox-multiple-blank-outline":983351,"checkbox-multiple-marked":983352,"checkbox-multiple-marked-circle":984637,"checkbox-multiple-marked-circle-outline":984638,"checkbox-multiple-marked-outline":983353,checkerboard:983354,"checkerboard-minus":987650,"checkerboard-plus":987649,"checkerboard-remove":987651,cheese:987833,"cheese-off":988142,"chef-hat":985980,"chemical-weapon":983355,"chess-bishop":985180,"chess-king":985175,"chess-knight":985176,"chess-pawn":985177,"chess-queen":985178,"chess-rook":985179,"chevron-double-down":983356,"chevron-double-left":983357,"chevron-double-right":983358,"chevron-double-up":983359,"chevron-down":983360,"chevron-down-box":985558,"chevron-down-box-outline":985559,"chevron-down-circle":985894,"chevron-down-circle-outline":985895,"chevron-left":983361,"chevron-left-box":985560,"chevron-left-box-outline":985561,"chevron-left-circle":985896,"chevron-left-circle-outline":985897,"chevron-right":983362,"chevron-right-box":985562,"chevron-right-box-outline":985563,"chevron-right-circle":985898,"chevron-right-circle-outline":985899,"chevron-triple-down":986553,"chevron-triple-left":986554,"chevron-triple-right":986555,"chevron-triple-up":986556,"chevron-up":983363,"chevron-up-box":985564,"chevron-up-box-outline":985565,"chevron-up-circle":985900,"chevron-up-circle-outline":985901,"chili-hot":985010,"chili-medium":985011,"chili-mild":985012,"chili-off":988263,chip:984602,christianity:985427,"christianity-outline":986358,church:983364,cigar:987529,"cigar-off":988187,circle:984933,"circle-double":986773,"circle-edit-outline":985301,"circle-expand":986774,"circle-half":988053,"circle-half-full":988054,"circle-medium":985566,"circle-multiple":985912,"circle-multiple-outline":984725,"circle-off-outline":987347,"circle-outline":984934,"circle-slice-1":985758,"circle-slice-2":985759,"circle-slice-3":985760,"circle-slice-4":985761,"circle-slice-5":985762,"circle-slice-6":985763,"circle-slice-7":985764,"circle-slice-8":985765,"circle-small":985567,"circular-saw":986658,city:983366,"city-variant":985654,"city-variant-outline":985655,clipboard:983367,"clipboard-account":983368,"clipboard-account-outline":986197,"clipboard-alert":983369,"clipboard-alert-outline":986359,"clipboard-arrow-down":983370,"clipboard-arrow-down-outline":986198,"clipboard-arrow-left":983371,"clipboard-arrow-left-outline":986360,"clipboard-arrow-right":986361,"clipboard-arrow-right-outline":986362,"clipboard-arrow-up":986199,"clipboard-arrow-up-outline":986200,"clipboard-check":983374,"clipboard-check-multiple":987747,"clipboard-check-multiple-outline":987748,"clipboard-check-outline":985256,"clipboard-file":987749,"clipboard-file-outline":987750,"clipboard-flow":984776,"clipboard-flow-outline":987415,"clipboard-list":987348,"clipboard-list-outline":987349,"clipboard-multiple":987751,"clipboard-multiple-outline":987752,"clipboard-outline":983372,"clipboard-play":986201,"clipboard-play-multiple":987753,"clipboard-play-multiple-outline":987754,"clipboard-play-outline":986202,"clipboard-plus":984913,"clipboard-plus-outline":987935,"clipboard-pulse":985181,"clipboard-pulse-outline":985182,"clipboard-text":983373,"clipboard-text-multiple":987755,"clipboard-text-multiple-outline":987756,"clipboard-text-outline":985656,"clipboard-text-play":986203,"clipboard-text-play-outline":986204,clippy:983375,clock:985428,"clock-alert":985429,"clock-alert-outline":984526,"clock-check":987048,"clock-check-outline":987049,"clock-digital":986775,"clock-end":983377,"clock-fast":983378,"clock-in":983379,"clock-out":983380,"clock-outline":983376,"clock-start":983381,"clock-time-eight":988230,"clock-time-eight-outline":988242,"clock-time-eleven":988233,"clock-time-eleven-outline":988245,"clock-time-five":988227,"clock-time-five-outline":988239,"clock-time-four":988226,"clock-time-four-outline":988238,"clock-time-nine":988231,"clock-time-nine-outline":988243,"clock-time-one":988223,"clock-time-one-outline":988235,"clock-time-seven":988229,"clock-time-seven-outline":988241,"clock-time-six":988228,"clock-time-six-outline":988240,"clock-time-ten":988232,"clock-time-ten-outline":988244,"clock-time-three":988225,"clock-time-three-outline":988237,"clock-time-twelve":988234,"clock-time-twelve-outline":988246,"clock-time-two":988224,"clock-time-two-outline":988236,close:983382,"close-box":983383,"close-box-multiple":986205,"close-box-multiple-outline":986206,"close-box-outline":983384,"close-circle":983385,"close-circle-multiple":984618,"close-circle-multiple-outline":985219,"close-circle-outline":983386,"close-network":983387,"close-network-outline":986207,"close-octagon":983388,"close-octagon-outline":983389,"close-outline":984777,"close-thick":988056,"closed-caption":983390,"closed-caption-outline":986557,cloud:983391,"cloud-alert":985568,"cloud-braces":985013,"cloud-check":983392,"cloud-check-outline":987852,"cloud-circle":983393,"cloud-download":983394,"cloud-download-outline":985981,"cloud-lock":987633,"cloud-lock-outline":987634,"cloud-off-outline":983396,"cloud-outline":983395,"cloud-print":983397,"cloud-print-outline":983398,"cloud-question":985657,"cloud-refresh":984362,"cloud-search":985430,"cloud-search-outline":985431,"cloud-sync":984639,"cloud-sync-outline":987862,"cloud-tags":985014,"cloud-upload":983399,"cloud-upload-outline":985982,clover:985110,"coach-lamp":987168,"coat-rack":987294,"code-array":983400,"code-braces":983401,"code-braces-box":987350,"code-brackets":983402,"code-equal":983403,"code-greater-than":983404,"code-greater-than-or-equal":983405,"code-json":984614,"code-less-than":983406,"code-less-than-or-equal":983407,"code-not-equal":983408,"code-not-equal-variant":983409,"code-parentheses":983410,"code-parentheses-box":987351,"code-string":983411,"code-tags":983412,"code-tags-check":984724,codepen:983413,coffee:983414,"coffee-maker":987295,"coffee-off":987050,"coffee-off-outline":987051,"coffee-outline":984778,"coffee-to-go":983415,"coffee-to-go-outline":987918,coffin:985983,cog:984211,"cog-box":984212,"cog-clockwise":987613,"cog-counterclockwise":987614,"cog-off":988110,"cog-off-outline":988111,"cog-outline":985275,"cog-refresh":988254,"cog-refresh-outline":988255,"cog-sync":988256,"cog-sync-outline":988257,"cog-transfer":987227,"cog-transfer-outline":987228,cogs:985302,collage:984640,"collapse-all":985766,"collapse-all-outline":985767,"color-helper":983417,comma:986659,"comma-box":986667,"comma-box-outline":986660,"comma-circle":986661,"comma-circle-outline":986662,comment:983418,"comment-account":983419,"comment-account-outline":983420,"comment-alert":983421,"comment-alert-outline":983422,"comment-arrow-left":985569,"comment-arrow-left-outline":985570,"comment-arrow-right":985571,"comment-arrow-right-outline":985572,"comment-check":983423,"comment-check-outline":983424,"comment-edit":987583,"comment-edit-outline":987844,"comment-eye":985658,"comment-eye-outline":985659,"comment-multiple":985183,"comment-multiple-outline":983425,"comment-outline":983426,"comment-plus":985573,"comment-plus-outline":983427,"comment-processing":983428,"comment-processing-outline":983429,"comment-question":985111,"comment-question-outline":983430,"comment-quote":987169,"comment-quote-outline":987170,"comment-remove":984542,"comment-remove-outline":983431,"comment-search":985660,"comment-search-outline":985661,"comment-text":983432,"comment-text-multiple":985184,"comment-text-multiple-outline":985185,"comment-text-outline":983433,compare:983434,"compare-horizontal":988306,"compare-vertical":988307,compass:983435,"compass-off":985984,"compass-off-outline":985985,"compass-outline":983436,"compass-rose":988034,"concourse-ci":987296,console:983437,"console-line":985015,"console-network":985257,"console-network-outline":986208,consolidate:987352,"contactless-payment":986474,"contactless-payment-circle":983841,"contactless-payment-circle-outline":984072,contacts:984779,"contacts-outline":984504,contain:985662,"contain-end":985663,"contain-start":985664,"content-copy":983439,"content-cut":983440,"content-duplicate":983441,"content-paste":983442,"content-save":983443,"content-save-alert":986946,"content-save-alert-outline":986947,"content-save-all":983444,"content-save-all-outline":986948,"content-save-cog":988251,"content-save-cog-outline":988252,"content-save-edit":986363,"content-save-edit-outline":986364,"content-save-move":986663,"content-save-move-outline":986664,"content-save-outline":985112,"content-save-settings":984603,"content-save-settings-outline":985902,contrast:983445,"contrast-box":983446,"contrast-circle":983447,"controller-classic":985986,"controller-classic-outline":985987,cookie:983448,"coolant-temperature":984008,copyright:984550,cordova:985432,corn:985016,"corn-off":988143,"cosine-wave":988281,counter:983449,cow:983450,"cpu-32-bit":986847,"cpu-64-bit":986848,crane:985186,creation:984692,"creative-commons":986475,"credit-card":987119,"credit-card-check":988112,"credit-card-check-outline":988113,"credit-card-clock":986849,"credit-card-clock-outline":986850,"credit-card-marker":984744,"credit-card-marker-outline":986558,"credit-card-minus":987052,"credit-card-minus-outline":987053,"credit-card-multiple":987120,"credit-card-multiple-outline":983452,"credit-card-off":987121,"credit-card-off-outline":984548,"credit-card-outline":983451,"credit-card-plus":987122,"credit-card-plus-outline":984694,"credit-card-refund":987123,"credit-card-refund-outline":985768,"credit-card-remove":987054,"credit-card-remove-outline":987055,"credit-card-scan":987124,"credit-card-scan-outline":983453,"credit-card-settings":987125,"credit-card-settings-outline":985303,"credit-card-wireless":985090,"credit-card-wireless-off":984442,"credit-card-wireless-off-outline":984443,"credit-card-wireless-outline":986476,cricket:986477,crop:983454,"crop-free":983455,"crop-landscape":983456,"crop-portrait":983457,"crop-rotate":984726,"crop-square":983458,crosshairs:983459,"crosshairs-gps":983460,"crosshairs-off":986949,"crosshairs-question":987446,crown:983461,"crown-outline":987600,cryengine:985433,"crystal-ball":985903,cube:983462,"cube-off":988188,"cube-off-outline":988189,"cube-outline":983463,"cube-scan":985988,"cube-send":983464,"cube-unfolded":983465,cup:983466,"cup-off":984549,"cup-off-outline":988029,"cup-outline":987919,"cup-water":983467,cupboard:986950,"cupboard-outline":986951,cupcake:985434,curling:985187,"currency-bdt":985188,"currency-brl":985989,"currency-btc":983468,"currency-cny":985018,"currency-eth":985019,"currency-eur":983469,"currency-eur-off":987925,"currency-gbp":983470,"currency-ils":986209,"currency-inr":983471,"currency-jpy":985020,"currency-krw":985021,"currency-kzt":985189,"currency-ngn":983472,"currency-php":985574,"currency-rial":986780,"currency-rub":983473,"currency-sign":985022,"currency-try":983474,"currency-twd":985023,"currency-usd":983489,"currency-usd-circle":987499,"currency-usd-circle-outline":983416,"currency-usd-off":984698,"current-ac":988288,"current-dc":985436,"cursor-default":983488,"cursor-default-click":986365,"cursor-default-click-outline":986366,"cursor-default-gesture":987431,"cursor-default-gesture-outline":987432,"cursor-default-outline":983487,"cursor-move":983486,"cursor-pointer":983485,"cursor-text":984551,database:983484,"database-check":985769,"database-edit":985990,"database-export":985438,"database-import":985437,"database-lock":985770,"database-marker":987894,"database-minus":983483,"database-plus":983482,"database-refresh":984514,"database-remove":986368,"database-search":985190,"database-settings":986369,"database-sync":986367,"death-star":985304,"death-star-variant":985305,"deathly-hallows":985991,debian:985306,"debug-step-into":983481,"debug-step-out":983480,"debug-step-over":983479,decagram:984940,"decagram-outline":984941,decimal:987297,"decimal-comma":987298,"decimal-comma-decrease":987299,"decimal-comma-increase":987300,"decimal-decrease":983478,"decimal-increase":983477,delete:983476,"delete-alert":987301,"delete-alert-outline":987302,"delete-circle":984707,"delete-circle-outline":985992,"delete-empty":984780,"delete-empty-outline":986781,"delete-forever":984552,"delete-forever-outline":985993,"delete-off":987303,"delete-off-outline":987304,"delete-outline":985575,"delete-restore":985113,"delete-sweep":984553,"delete-sweep-outline":986210,"delete-variant":983475,delta:983490,desk:987705,"desk-lamp":985439,deskphone:983491,"desktop-classic":985024,"desktop-mac":983492,"desktop-mac-dashboard":985576,"desktop-tower":983493,"desktop-tower-monitor":985771,details:983494,"dev-to":986478,"developer-board":984727,deviantart:983495,devices:987056,diabetes:987430,dialpad:984604,diameter:986211,"diameter-outline":986212,"diameter-variant":986213,diamond:985994,"diamond-outline":985995,"diamond-stone":983496,"dice-1":983498,"dice-1-outline":987466,"dice-2":983499,"dice-2-outline":987467,"dice-3":983500,"dice-3-outline":987468,"dice-4":983501,"dice-4-outline":987469,"dice-5":983502,"dice-5-outline":987470,"dice-6":983503,"dice-6-outline":987471,"dice-d10":987475,"dice-d10-outline":984943,"dice-d12":987476,"dice-d12-outline":985191,"dice-d20":987477,"dice-d20-outline":984554,"dice-d4":987472,"dice-d4-outline":984555,"dice-d6":987473,"dice-d6-outline":984557,"dice-d8":987474,"dice-d8-outline":984556,"dice-multiple":984942,"dice-multiple-outline":987478,"digital-ocean":987703,"dip-switch":985025,directions:983504,"directions-fork":984641,disc:984558,"disc-alert":983505,"disc-player":985440,discord:984687,dishwasher:985772,"dishwasher-alert":987576,"dishwasher-off":987577,disqus:983506,"distribute-horizontal-center":987593,"distribute-horizontal-left":987592,"distribute-horizontal-right":987594,"distribute-vertical-bottom":987595,"distribute-vertical-center":987596,"distribute-vertical-top":987597,"diving-flippers":986559,"diving-helmet":986560,"diving-scuba":986561,"diving-scuba-flag":986562,"diving-scuba-tank":986563,"diving-scuba-tank-multiple":986564,"diving-snorkel":986565,division:983508,"division-box":983509,dlna:985665,dna:984708,dns:983510,"dns-outline":985996,"do-not-disturb":984728,"do-not-disturb-off":984729,"dock-bottom":987305,"dock-left":987306,"dock-right":987307,"dock-window":987308,docker:985192,doctor:985666,dog:985667,"dog-service":985773,"dog-side":985668,dolby:984755,dolly:986782,domain:983511,"domain-off":986479,"domain-plus":987309,"domain-remove":987310,"dome-light":988190,"domino-mask":987171,donkey:985026,door:985114,"door-closed":985115,"door-closed-lock":987311,"door-open":985116,doorbell:987878,"doorbell-video":985193,"dot-net":985774,"dots-horizontal":983512,"dots-horizontal-circle":985027,"dots-horizontal-circle-outline":985997,"dots-vertical":983513,"dots-vertical-circle":985028,"dots-vertical-circle-outline":985998,douban:984730,download:983514,"download-box":988258,"download-box-outline":988259,"download-circle":988260,"download-circle-outline":988261,"download-lock":987936,"download-lock-outline":987937,"download-multiple":985577,"download-network":984820,"download-network-outline":986214,"download-off":987312,"download-off-outline":987313,"download-outline":985999,drag:983515,"drag-horizontal":983516,"drag-horizontal-variant":987888,"drag-variant":986e3,"drag-vertical":983517,"drag-vertical-variant":987889,"drama-masks":986370,draw:986953,drawing:983518,"drawing-box":983519,dresser:986954,"dresser-outline":986955,drone:983522,dropbox:983523,drupal:983524,duck:983525,dumbbell:983526,"dump-truck":986215,"ear-hearing":985029,"ear-hearing-off":985669,earth:983527,"earth-arrow-right":987921,"earth-box":984781,"earth-box-minus":988167,"earth-box-off":984782,"earth-box-plus":988166,"earth-box-remove":988168,"earth-minus":988164,"earth-off":983528,"earth-plus":988163,"earth-remove":988165,egg:985775,"egg-easter":985776,"egg-off":988144,"egg-off-outline":988145,"egg-outline":988146,"eight-track":985578,eject:983530,"eject-outline":986001,"electric-switch":986783,"electric-switch-closed":987353,"electron-framework":987172,elephant:985030,"elevation-decline":983531,"elevation-rise":983532,elevator:983533,"elevator-down":987842,"elevator-passenger":988033,"elevator-up":987841,ellipse:986784,"ellipse-outline":986785,email:983534,"email-alert":984783,"email-alert-outline":986434,"email-box":986371,"email-check":985777,"email-check-outline":985778,"email-edit":986851,"email-edit-outline":986852,"email-lock":983537,"email-mark-as-unread":986002,"email-minus":986853,"email-minus-outline":986854,"email-multiple":986855,"email-multiple-outline":986856,"email-newsletter":987057,"email-off":988131,"email-off-outline":988132,"email-open":983535,"email-open-multiple":986857,"email-open-multiple-outline":986858,"email-open-outline":984559,"email-outline":983536,"email-plus":985579,"email-plus-outline":985580,"email-receive":987354,"email-receive-outline":987355,"email-search":985441,"email-search-outline":985442,"email-send":987356,"email-send-outline":987357,"email-sync":987847,"email-sync-outline":987848,"email-variant":984560,ember:985904,emby:984756,emoticon:986216,"emoticon-angry":986217,"emoticon-angry-outline":986218,"emoticon-confused":987358,"emoticon-confused-outline":987359,"emoticon-cool":986219,"emoticon-cool-outline":983539,"emoticon-cry":986220,"emoticon-cry-outline":986221,"emoticon-dead":986222,"emoticon-dead-outline":984731,"emoticon-devil":986223,"emoticon-devil-outline":983540,"emoticon-excited":986224,"emoticon-excited-outline":984732,"emoticon-frown":986956,"emoticon-frown-outline":986957,"emoticon-happy":986225,"emoticon-happy-outline":983541,"emoticon-kiss":986226,"emoticon-kiss-outline":986227,"emoticon-lol":987668,"emoticon-lol-outline":987669,"emoticon-neutral":986228,"emoticon-neutral-outline":983542,"emoticon-outline":983538,"emoticon-poop":983543,"emoticon-poop-outline":986229,"emoticon-sad":986230,"emoticon-sad-outline":983544,"emoticon-tongue":983545,"emoticon-tongue-outline":986231,"emoticon-wink":986232,"emoticon-wink-outline":986233,engine:983546,"engine-off":985670,"engine-off-outline":985671,"engine-outline":983547,epsilon:987360,equal:983548,"equal-box":983549,equalizer:986786,"equalizer-outline":986787,eraser:983550,"eraser-variant":984642,escalator:983551,"escalator-box":988057,"escalator-down":987840,"escalator-up":987839,eslint:986234,et:985779,ethereum:985194,ethernet:983552,"ethernet-cable":983553,"ethernet-cable-off":983554,"ev-station":984561,evernote:983556,excavator:987173,exclamation:983557,"exclamation-thick":987704,"exit-run":985672,"exit-to-app":983558,"expand-all":985780,"expand-all-outline":985781,"expansion-card":985262,"expansion-card-variant":987058,exponent:985443,"exponent-box":985444,export:983559,"export-variant":986003,eye:983560,"eye-check":986372,"eye-check-outline":986373,"eye-circle":986004,"eye-circle-outline":986005,"eye-minus":987174,"eye-minus-outline":987175,"eye-off":983561,"eye-off-outline":984785,"eye-outline":984784,"eye-plus":985195,"eye-plus-outline":985196,"eye-settings":985197,"eye-settings-outline":985198,eyedropper:983562,"eyedropper-minus":988125,"eyedropper-off":988127,"eyedropper-plus":988124,"eyedropper-remove":988126,"eyedropper-variant":983563,face:984643,"face-agent":986480,"face-outline":986006,"face-profile":984644,"face-profile-woman":987254,"face-recognition":986235,"face-woman":987255,"face-woman-outline":987256,facebook:983564,"facebook-messenger":983566,"facebook-workplace":985905,factory:983567,fan:983568,"fan-alert":988268,"fan-chevron-down":988269,"fan-chevron-up":988270,"fan-minus":988272,"fan-off":985117,"fan-plus":988271,"fan-remove":988273,"fan-speed-1":988274,"fan-speed-2":988275,"fan-speed-3":988276,"fast-forward":983569,"fast-forward-10":986481,"fast-forward-30":986374,"fast-forward-5":987640,"fast-forward-outline":984786,fax:983570,feather:984787,"feature-search":985673,"feature-search-outline":985674,fedora:985307,fencing:988353,"ferris-wheel":986788,ferry:983571,file:983572,"file-account":984891,"file-account-outline":987176,"file-alert":985675,"file-alert-outline":985676,"file-cabinet":985782,"file-cad":986859,"file-cad-box":986860,"file-cancel":986566,"file-cancel-outline":986567,"file-certificate":987526,"file-certificate-outline":987527,"file-chart":983573,"file-chart-outline":987177,"file-check":983574,"file-check-outline":986665,"file-clock":987873,"file-clock-outline":987874,"file-cloud":983575,"file-cloud-outline":987178,"file-code":983598,"file-code-outline":987179,"file-cog":987259,"file-cog-outline":987260,"file-compare":985258,"file-delimited":983576,"file-delimited-outline":986789,"file-document":983577,"file-document-edit":986568,"file-document-edit-outline":986569,"file-document-outline":985582,"file-download":985445,"file-download-outline":985446,"file-edit":987623,"file-edit-outline":987624,"file-excel":983579,"file-excel-box":983580,"file-excel-box-outline":987180,"file-excel-outline":987181,"file-export":983581,"file-export-outline":987182,"file-eye":986570,"file-eye-outline":986571,"file-find":983582,"file-find-outline":986007,"file-hidden":984595,"file-image":983583,"file-image-outline":986800,"file-import":983584,"file-import-outline":987183,"file-key":987524,"file-key-outline":987525,"file-link":987511,"file-link-outline":987512,"file-lock":983585,"file-lock-outline":987184,"file-move":985785,"file-move-outline":987185,"file-multiple":983586,"file-multiple-outline":987186,"file-music":983587,"file-music-outline":986666,"file-outline":983588,"file-pdf":983589,"file-pdf-box":983590,"file-pdf-box-outline":987059,"file-pdf-outline":986669,"file-percent":985118,"file-percent-outline":987187,"file-phone":987513,"file-phone-outline":987514,"file-plus":984914,"file-plus-outline":986861,"file-powerpoint":983591,"file-powerpoint-box":983592,"file-powerpoint-box-outline":987188,"file-powerpoint-outline":987189,"file-presentation-box":983593,"file-question":985199,"file-question-outline":987190,"file-refresh":985368,"file-refresh-outline":984385,"file-remove":986008,"file-remove-outline":987191,"file-replace":985906,"file-replace-outline":985907,"file-restore":984688,"file-restore-outline":987192,"file-search":986236,"file-search-outline":986237,"file-send":983594,"file-send-outline":987193,"file-settings":987257,"file-settings-outline":987258,"file-star":987194,"file-star-outline":987195,"file-swap":987060,"file-swap-outline":987061,"file-sync":987670,"file-sync-outline":987671,"file-table":986238,"file-table-box":987361,"file-table-box-multiple":987362,"file-table-box-multiple-outline":987363,"file-table-box-outline":987364,"file-table-outline":986239,"file-tree":984645,"file-tree-outline":988114,"file-undo":985308,"file-undo-outline":987196,"file-upload":985677,"file-upload-outline":985678,"file-video":983595,"file-video-outline":986668,"file-word":983596,"file-word-box":983597,"file-word-box-outline":987197,"file-word-outline":987198,film:983599,filmstrip:983600,"filmstrip-box":983858,"filmstrip-box-multiple":986392,"filmstrip-off":983601,filter:983602,"filter-menu":987365,"filter-menu-outline":987366,"filter-minus":986862,"filter-minus-outline":986863,"filter-outline":983603,"filter-plus":986864,"filter-plus-outline":986865,"filter-remove":983604,"filter-remove-outline":983605,"filter-variant":983606,"filter-variant-minus":987410,"filter-variant-plus":987411,"filter-variant-remove":987199,finance:985119,"find-replace":984788,fingerprint:983607,"fingerprint-off":986801,fire:983608,"fire-extinguisher":986866,"fire-hydrant":987447,"fire-hydrant-alert":987448,"fire-hydrant-off":987449,"fire-truck":985259,firebase:985447,firefox:983609,fireplace:986670,"fireplace-off":986671,firework:986672,fish:983610,"fish-off":988147,fishbowl:986867,"fishbowl-outline":986868,"fit-to-page":986869,"fit-to-page-outline":986870,flag:983611,"flag-checkered":983612,"flag-minus":986009,"flag-minus-outline":987314,"flag-outline":983613,"flag-plus":986010,"flag-plus-outline":987315,"flag-remove":986011,"flag-remove-outline":987316,"flag-triangle":983615,"flag-variant":983616,"flag-variant-outline":983614,flare:986482,flash:983617,"flash-alert":986871,"flash-alert-outline":986872,"flash-auto":983618,"flash-circle":985120,"flash-off":983619,"flash-outline":984789,"flash-red-eye":984699,flashlight:983620,"flashlight-off":983621,flask:983187,"flask-empty":983188,"flask-empty-minus":987706,"flask-empty-minus-outline":987707,"flask-empty-off":988148,"flask-empty-off-outline":988149,"flask-empty-outline":983189,"flask-empty-plus":987708,"flask-empty-plus-outline":987709,"flask-empty-remove":987710,"flask-empty-remove-outline":987711,"flask-minus":987712,"flask-minus-outline":987713,"flask-off":988150,"flask-off-outline":988151,"flask-outline":983190,"flask-plus":987714,"flask-plus-outline":987715,"flask-remove":987716,"flask-remove-outline":987717,"flask-round-bottom":987723,"flask-round-bottom-empty":987724,"flask-round-bottom-empty-outline":987725,"flask-round-bottom-outline":987726,"fleur-de-lis":987907,"flip-horizontal":987367,"flip-to-back":983623,"flip-to-front":983624,"flip-vertical":987368,"floor-lamp":985309,"floor-lamp-dual":987200,"floor-lamp-variant":987201,"floor-plan":985121,floppy:983625,"floppy-variant":985583,flower:983626,"flower-outline":985584,"flower-poppy":986376,"flower-tulip":985585,"flower-tulip-outline":985586,"focus-auto":986958,"focus-field":986959,"focus-field-horizontal":986960,"focus-field-vertical":986961,folder:983627,"folder-account":983628,"folder-account-outline":986012,"folder-alert":986572,"folder-alert-outline":986573,"folder-clock":985786,"folder-clock-outline":985787,"folder-cog":987263,"folder-cog-outline":987264,"folder-download":983629,"folder-download-outline":987369,"folder-edit":985310,"folder-edit-outline":986574,"folder-google-drive":983630,"folder-heart":987370,"folder-heart-outline":987371,"folder-home":987317,"folder-home-outline":987318,"folder-image":983631,"folder-information":987319,"folder-information-outline":987320,"folder-key":985260,"folder-key-network":985261,"folder-key-network-outline":986240,"folder-key-outline":987372,"folder-lock":983632,"folder-lock-open":983633,"folder-marker":987757,"folder-marker-outline":987758,"folder-move":983634,"folder-move-outline":987718,"folder-multiple":983635,"folder-multiple-image":983636,"folder-multiple-outline":983637,"folder-multiple-plus":988286,"folder-multiple-plus-outline":988287,"folder-music":987993,"folder-music-outline":987994,"folder-network":985200,"folder-network-outline":986241,"folder-open":984944,"folder-open-outline":986575,"folder-outline":983638,"folder-plus":983639,"folder-plus-outline":986013,"folder-pound":986377,"folder-pound-outline":986378,"folder-refresh":984905,"folder-refresh-outline":984386,"folder-remove":983640,"folder-remove-outline":986014,"folder-search":985448,"folder-search-outline":985449,"folder-settings":987261,"folder-settings-outline":987262,"folder-star":984733,"folder-star-multiple":988115,"folder-star-multiple-outline":988116,"folder-star-outline":986015,"folder-swap":987062,"folder-swap-outline":987063,"folder-sync":986379,"folder-sync-outline":986380,"folder-table":987875,"folder-table-outline":987876,"folder-text":986242,"folder-text-outline":986243,"folder-upload":983641,"folder-upload-outline":987373,"folder-zip":984811,"folder-zip-outline":985017,"font-awesome":983098,food:983642,"food-apple":983643,"food-apple-outline":986244,"food-croissant":985032,"food-drumstick":988191,"food-drumstick-off":988264,"food-drumstick-off-outline":988265,"food-drumstick-outline":988192,"food-fork-drink":984562,"food-off":984563,"food-steak":988266,"food-steak-off":988267,"food-variant":983644,"food-variant-off":988133,"foot-print":986962,football:983645,"football-australian":983646,"football-helmet":983647,forklift:985033,"form-dropdown":988160,"form-select":988161,"form-textarea":987285,"form-textbox":984590,"form-textbox-lock":987997,"form-textbox-password":985077,"format-align-bottom":984915,"format-align-center":983648,"format-align-justify":983649,"format-align-left":983650,"format-align-middle":984916,"format-align-right":983651,"format-align-top":984917,"format-annotation-minus":985788,"format-annotation-plus":984646,"format-bold":983652,"format-clear":983653,"format-color-fill":983654,"format-color-highlight":986673,"format-color-marker-cancel":987923,"format-color-text":984734,"format-columns":985311,"format-float-center":983655,"format-float-left":983656,"format-float-none":983657,"format-float-right":983658,"format-font":984790,"format-font-size-decrease":985587,"format-font-size-increase":985588,"format-header-1":983659,"format-header-2":983660,"format-header-3":983661,"format-header-4":983662,"format-header-5":983663,"format-header-6":983664,"format-header-decrease":983665,"format-header-equal":983666,"format-header-increase":983667,"format-header-pound":983668,"format-horizontal-align-center":984606,"format-horizontal-align-left":984607,"format-horizontal-align-right":984608,"format-indent-decrease":983669,"format-indent-increase":983670,"format-italic":983671,"format-letter-case":985908,"format-letter-case-lower":985909,"format-letter-case-upper":985910,"format-letter-ends-with":987064,"format-letter-matches":987065,"format-letter-starts-with":987066,"format-line-spacing":983672,"format-line-style":984520,"format-line-weight":984521,"format-list-bulleted":983673,"format-list-bulleted-square":986576,"format-list-bulleted-triangle":986802,"format-list-bulleted-type":983674,"format-list-checkbox":985450,"format-list-checks":984918,"format-list-numbered":983675,"format-list-numbered-rtl":986381,"format-list-text":987759,"format-overline":986803,"format-page-break":984791,"format-paint":983676,"format-paragraph":983677,"format-pilcrow":984792,"format-quote-close":983678,"format-quote-close-outline":987560,"format-quote-open":984919,"format-quote-open-outline":987559,"format-rotate-90":984746,"format-section":984735,"format-size":983679,"format-strikethrough":983680,"format-strikethrough-variant":983681,"format-subscript":983682,"format-superscript":983683,"format-text":983684,"format-text-rotation-angle-down":987067,"format-text-rotation-angle-up":987068,"format-text-rotation-down":986483,"format-text-rotation-down-vertical":987069,"format-text-rotation-none":986484,"format-text-rotation-up":987070,"format-text-rotation-vertical":987071,"format-text-variant":986674,"format-text-wrapping-clip":986382,"format-text-wrapping-overflow":986383,"format-text-wrapping-wrap":986384,"format-textbox":986385,"format-textdirection-l-to-r":983685,"format-textdirection-r-to-l":983686,"format-title":984564,"format-underline":983687,"format-vertical-align-bottom":984609,"format-vertical-align-center":984610,"format-vertical-align-top":984611,"format-wrap-inline":983688,"format-wrap-square":983689,"format-wrap-tight":983690,"format-wrap-top-bottom":983691,forum:983692,"forum-outline":985122,forward:983693,forwardburger:986485,fountain:985451,"fountain-pen":986386,"fountain-pen-tip":986387,freebsd:985312,"frequently-asked-questions":986804,fridge:983696,"fridge-alert":987569,"fridge-alert-outline":987570,"fridge-bottom":983698,"fridge-off":987567,"fridge-off-outline":987568,"fridge-outline":983695,"fridge-top":983697,"fruit-cherries":987202,"fruit-cherries-off":988152,"fruit-citrus":987203,"fruit-citrus-off":988153,"fruit-grapes":987204,"fruit-grapes-outline":987205,"fruit-pineapple":987206,"fruit-watermelon":987207,fuel:985034,fullscreen:983699,"fullscreen-exit":983700,function:983701,"function-variant":985201,"furigana-horizontal":987265,"furigana-vertical":987266,fuse:986245,"fuse-alert":988205,"fuse-blade":986246,"fuse-off":988204,gamepad:983702,"gamepad-circle":986675,"gamepad-circle-down":986676,"gamepad-circle-left":986677,"gamepad-circle-outline":986678,"gamepad-circle-right":986679,"gamepad-circle-up":986680,"gamepad-down":986681,"gamepad-left":986682,"gamepad-right":986683,"gamepad-round":986684,"gamepad-round-down":986685,"gamepad-round-left":986686,"gamepad-round-outline":986687,"gamepad-round-right":986688,"gamepad-round-up":986689,"gamepad-square":986805,"gamepad-square-outline":986806,"gamepad-up":986690,"gamepad-variant":983703,"gamepad-variant-outline":986807,gamma:987374,"gantry-crane":986577,garage:984793,"garage-alert":985202,"garage-alert-variant":987861,"garage-open":984794,"garage-open-variant":987860,"garage-variant":987859,"gas-cylinder":984647,"gas-station":983704,"gas-station-off":988169,"gas-station-off-outline":988170,"gas-station-outline":986808,gate:983705,"gate-and":985313,"gate-arrow-right":987497,"gate-nand":985314,"gate-nor":985315,"gate-not":985316,"gate-open":987498,"gate-or":985317,"gate-xnor":985318,"gate-xor":985319,gatsby:986691,gauge:983706,"gauge-empty":985203,"gauge-full":985204,"gauge-low":985205,gavel:983707,"gender-female":983708,"gender-male":983709,"gender-male-female":983710,"gender-male-female-variant":987455,"gender-non-binary":987456,"gender-transgender":983711,gentoo:985320,gesture:985035,"gesture-double-tap":984892,"gesture-pinch":985789,"gesture-spread":985790,"gesture-swipe":986486,"gesture-swipe-down":984893,"gesture-swipe-horizontal":985791,"gesture-swipe-left":984894,"gesture-swipe-right":984895,"gesture-swipe-up":984896,"gesture-swipe-vertical":985792,"gesture-tap":984897,"gesture-tap-box":987817,"gesture-tap-button":987816,"gesture-tap-hold":986487,"gesture-two-double-tap":984898,"gesture-two-tap":984899,ghost:983712,"ghost-off":985589,gif:986488,gift:986692,"gift-outline":983713,git:983714,github:983716,gitlab:986016,"glass-cocktail":983894,"glass-flute":983717,"glass-mug":983718,"glass-mug-variant":987414,"glass-pint-outline":987917,"glass-stange":983719,"glass-tulip":983720,"glass-wine":985206,glasses:983722,"globe-light":987863,"globe-model":985321,gmail:983723,gnome:983724,"go-kart":986489,"go-kart-track":986490,gog:986017,gold:987727,golf:985123,"golf-cart":987556,"golf-tee":987267,gondola:984710,goodreads:986491,google:983725,"google-ads":986247,"google-analytics":985036,"google-assistant":985037,"google-cardboard":983726,"google-chrome":983727,"google-circles":983728,"google-circles-communities":983729,"google-circles-extended":983730,"google-circles-group":983731,"google-classroom":983744,"google-cloud":987638,"google-controller":983732,"google-controller-off":983733,"google-downasaur":988002,"google-drive":983734,"google-earth":983735,"google-fit":985452,"google-glass":983736,"google-hangouts":983753,"google-home":985124,"google-keep":984796,"google-lens":985590,"google-maps":984565,"google-my-business":987208,"google-nearby":983737,"google-photos":984797,"google-play":983740,"google-plus":983741,"google-podcast":986809,"google-spreadsheet":985591,"google-street-view":986248,"google-translate":983743,gradient:984736,grain:986492,graph:987209,"graph-outline":987210,graphql:985207,"grave-stone":986018,"grease-pencil":984648,"greater-than":985453,"greater-than-or-equal":985454,grid:983745,"grid-large":984920,"grid-off":983746,grill:986693,"grill-outline":987530,group:983747,"guitar-acoustic":984945,"guitar-electric":983748,"guitar-pick":983749,"guitar-pick-outline":983750,"guy-fawkes-mask":985125,hail:985793,"hair-dryer":987375,"hair-dryer-outline":987376,halloween:986019,hamburger:984709,hammer:985322,"hammer-screwdriver":987938,"hammer-wrench":987939,hand:985679,"hand-heart":987377,"hand-left":986694,"hand-okay":985680,"hand-peace":985681,"hand-peace-variant":985682,"hand-pointing-down":985683,"hand-pointing-left":985684,"hand-pointing-right":983751,"hand-pointing-up":985685,"hand-right":986695,"hand-saw":986696,"hand-water":988063,handball:986963,handcuffs:987454,handshake:987672,hanger:983752,"hard-hat":985455,harddisk:983754,"harddisk-plus":987211,"harddisk-remove":987212,"hat-fedora":986020,"hazard-lights":986249,hdr:986493,"hdr-off":986494,head:987998,"head-alert":987960,"head-alert-outline":987961,"head-check":987962,"head-check-outline":987963,"head-cog":987964,"head-cog-outline":987965,"head-dots-horizontal":987966,"head-dots-horizontal-outline":987967,"head-flash":987968,"head-flash-outline":987969,"head-heart":987970,"head-heart-outline":987971,"head-lightbulb":987972,"head-lightbulb-outline":987973,"head-minus":987974,"head-minus-outline":987975,"head-outline":987999,"head-plus":987976,"head-plus-outline":987977,"head-question":987978,"head-question-outline":987979,"head-remove":987980,"head-remove-outline":987981,"head-snowflake":987982,"head-snowflake-outline":987983,"head-sync":987984,"head-sync-outline":987985,headphones:983755,"headphones-bluetooth":985456,"headphones-box":983756,"headphones-off":985038,"headphones-settings":983757,headset:983758,"headset-dock":983759,"headset-off":983760,heart:983761,"heart-box":983762,"heart-box-outline":983763,"heart-broken":983764,"heart-broken-outline":986388,"heart-circle":985457,"heart-circle-outline":985458,"heart-flash":986873,"heart-half":984799,"heart-half-full":984798,"heart-half-outline":984800,"heart-minus":988207,"heart-minus-outline":988210,"heart-multiple":985686,"heart-multiple-outline":985687,"heart-off":984921,"heart-off-outline":988212,"heart-outline":983765,"heart-plus":988206,"heart-plus-outline":988209,"heart-pulse":984566,"heart-remove":988208,"heart-remove-outline":988211,helicopter:985794,help:983766,"help-box":984971,"help-circle":983767,"help-circle-outline":984613,"help-network":984821,"help-network-outline":986250,"help-rhombus":986021,"help-rhombus-outline":986022,hexadecimal:987815,hexagon:983768,"hexagon-multiple":984801,"hexagon-multiple-outline":987378,"hexagon-outline":983769,"hexagon-slice-1":985795,"hexagon-slice-2":985796,"hexagon-slice-3":985797,"hexagon-slice-4":985798,"hexagon-slice-5":985799,"hexagon-slice-6":985800,hexagram:985801,"hexagram-outline":985802,"high-definition":985039,"high-definition-box":985208,highway:984567,hiking:986495,hinduism:985459,history:983770,"hockey-puck":985209,"hockey-sticks":985210,hololens:983771,home:983772,"home-account":985126,"home-alert":985211,"home-analytics":986810,"home-assistant":985040,"home-automation":985041,"home-circle":985042,"home-circle-outline":987213,"home-city":986389,"home-city-outline":986390,"home-currency-usd":985263,"home-edit":987481,"home-edit-outline":987482,"home-export-outline":987035,"home-flood":986874,"home-floor-0":986578,"home-floor-1":986496,"home-floor-2":986497,"home-floor-3":986498,"home-floor-a":986499,"home-floor-b":986500,"home-floor-g":986501,"home-floor-l":986502,"home-floor-negative-1":986579,"home-group":986580,"home-heart":985127,"home-import-outline":987036,"home-lightbulb":987729,"home-lightbulb-outline":987730,"home-lock":985323,"home-lock-open":985324,"home-map-marker":984568,"home-minus":985460,"home-minus-outline":988117,"home-modern":983773,"home-outline":984737,"home-plus":985461,"home-plus-outline":988118,"home-remove":987719,"home-remove-outline":988119,"home-roof":987435,"home-search":988080,"home-search-outline":988081,"home-thermometer":986964,"home-thermometer-outline":986965,"home-variant":983774,"home-variant-outline":986023,hook:984802,"hook-off":984803,hops:983775,"horizontal-rotate-clockwise":987379,"horizontal-rotate-counterclockwise":987380,horseshoe:985688,hospital:987126,"hospital-box":983776,"hospital-box-outline":987127,"hospital-building":983777,"hospital-marker":983778,"hot-tub":985128,"hours-24":988280,hubspot:986391,hulu:985129,human:983782,"human-baby-changing-table":988043,"human-child":983783,"human-female":984649,"human-female-boy":985689,"human-female-female":985690,"human-female-girl":985691,"human-greeting":984650,"human-handsdown":984651,"human-handsup":984652,"human-male":984653,"human-male-boy":985692,"human-male-child":988044,"human-male-female":983784,"human-male-girl":985693,"human-male-height":986875,"human-male-height-variant":986876,"human-male-male":985694,"human-pregnant":984527,"human-wheelchair":988045,"humble-bundle":984900,hvac:987986,"hydraulic-oil-level":987940,"hydraulic-oil-temperature":987941,"hydro-power":987877,"ice-cream":985130,"ice-cream-off":986706,"ice-pop":986877,"id-card":987072,identifier:986878,"ideogram-cjk":987953,"ideogram-cjk-variant":987954,iframe:986251,"iframe-array":987381,"iframe-array-outline":987382,"iframe-braces":987383,"iframe-braces-outline":987384,"iframe-outline":986252,"iframe-parentheses":987385,"iframe-parentheses-outline":987386,"iframe-variable":987387,"iframe-variable-outline":987388,image:983785,"image-album":983786,"image-area":983787,"image-area-close":983788,"image-auto-adjust":987073,"image-broken":983789,"image-broken-variant":983790,"image-edit":987619,"image-edit-outline":987620,"image-filter-black-white":983792,"image-filter-center-focus":983793,"image-filter-center-focus-strong":986879,"image-filter-center-focus-strong-outline":986880,"image-filter-center-focus-weak":983794,"image-filter-drama":983795,"image-filter-frames":983796,"image-filter-hdr":983797,"image-filter-none":983798,"image-filter-tilt-shift":983799,"image-filter-vintage":983800,"image-frame":986697,"image-minus":988185,"image-move":985592,"image-multiple":983801,"image-multiple-outline":983791,"image-off":985131,"image-off-outline":987601,"image-outline":985462,"image-plus":985212,"image-remove":988184,"image-search":985463,"image-search-outline":985464,"image-size-select-actual":986253,"image-size-select-large":986254,"image-size-select-small":986255,import:983802,inbox:984711,"inbox-arrow-down":983803,"inbox-arrow-down-outline":987760,"inbox-arrow-up":984017,"inbox-arrow-up-outline":987761,"inbox-full":987762,"inbox-full-outline":987763,"inbox-multiple":985264,"inbox-multiple-outline":986024,"inbox-outline":987764,incognito:984569,"incognito-circle":988193,"incognito-circle-off":988194,"incognito-off":983157,infinity:984804,information:983804,"information-outline":983805,"information-variant":984654,instagram:983806,"instrument-triangle":987214,"invert-colors":983809,"invert-colors-off":986698,iobroker:987880,ip:985695,"ip-network":985696,"ip-network-outline":986256,ipod:986257,islam:985465,island:987215,"iv-bag":987321,jabber:986581,jeepney:983810,jellyfish:986881,"jellyfish-outline":986882,jira:983811,jquery:985213,jsfiddle:983812,judaism:985466,"jump-rope":987903,kabaddi:986503,karate:985132,keg:983813,kettle:984570,"kettle-alert":987927,"kettle-alert-outline":987928,"kettle-off":987931,"kettle-off-outline":987932,"kettle-outline":986966,"kettle-steam":987929,"kettle-steam-outline":987930,kettlebell:987904,key:983814,"key-arrow-right":987922,"key-change":983815,"key-link":987551,"key-minus":983816,"key-outline":986582,"key-plus":983817,"key-remove":983818,"key-star":987550,"key-variant":983819,"key-wireless":987074,keyboard:983820,"keyboard-backspace":983821,"keyboard-caps":983822,"keyboard-close":983823,"keyboard-esc":987831,"keyboard-f1":987819,"keyboard-f10":987828,"keyboard-f11":987829,"keyboard-f12":987830,"keyboard-f2":987820,"keyboard-f3":987821,"keyboard-f4":987822,"keyboard-f5":987823,"keyboard-f6":987824,"keyboard-f7":987825,"keyboard-f8":987826,"keyboard-f9":987827,"keyboard-off":983824,"keyboard-off-outline":986699,"keyboard-outline":985467,"keyboard-return":983825,"keyboard-settings":985593,"keyboard-settings-outline":985594,"keyboard-space":987216,"keyboard-tab":983826,"keyboard-variant":983827,khanda:987389,kickstarter:984901,klingon:987995,knife:985595,"knife-military":985596,kodi:983828,kubernetes:987390,label:983829,"label-multiple":988021,"label-multiple-outline":988022,"label-off":985803,"label-off-outline":985804,"label-outline":983830,"label-percent":987882,"label-percent-outline":987883,"label-variant":985805,"label-variant-outline":985806,ladybug:985133,lambda:984615,lamp:984757,lan:983831,"lan-check":987818,"lan-connect":983832,"lan-disconnect":983833,"lan-pending":983834,"language-c":984689,"language-cpp":984690,"language-csharp":983835,"language-css3":983836,"language-fortran":987674,"language-go":985043,"language-haskell":986258,"language-html5":983837,"language-java":985911,"language-javascript":983838,"language-kotlin":987673,"language-lua":985265,"language-markdown":983892,"language-markdown-outline":986971,"language-php":983839,"language-python":983840,"language-r":985044,"language-ruby":986413,"language-ruby-on-rails":985807,"language-swift":984805,"language-typescript":984806,"language-xaml":984691,laptop:983842,"laptop-chromebook":983843,"laptop-mac":983844,"laptop-off":984807,"laptop-windows":983845,laravel:985808,"laser-pointer":988292,lasso:986883,lastpass:984134,latitude:986967,launch:983847,"lava-lamp":985045,layers:983848,"layers-minus":986700,"layers-off":983849,"layers-off-outline":985597,"layers-outline":985598,"layers-plus":986701,"layers-remove":986702,"layers-search":987654,"layers-search-outline":987655,"layers-triple":986968,"layers-triple-outline":986969,"lead-pencil":984655,leaf:983850,"leaf-maple":986259,"leaf-maple-off":987866,"leaf-off":987865,leak:986583,"leak-off":986584,"led-off":983851,"led-on":983852,"led-outline":983853,"led-strip":985046,"led-strip-variant":987217,"led-variant-off":983854,"led-variant-on":983855,"led-variant-outline":983856,leek:987517,"less-than":985468,"less-than-or-equal":985469,library:983857,"library-shelves":986025,license:987075,lifebuoy:985214,"light-switch":985470,lightbulb:983861,"lightbulb-cfl":987656,"lightbulb-cfl-off":987657,"lightbulb-cfl-spiral":987765,"lightbulb-cfl-spiral-off":987843,"lightbulb-group":987731,"lightbulb-group-off":987853,"lightbulb-group-off-outline":987854,"lightbulb-group-outline":987732,"lightbulb-multiple":987733,"lightbulb-multiple-off":987855,"lightbulb-multiple-off-outline":987856,"lightbulb-multiple-outline":987734,"lightbulb-off":986703,"lightbulb-off-outline":986704,"lightbulb-on":984808,"lightbulb-on-outline":984809,"lightbulb-outline":983862,lighthouse:985599,"lighthouse-on":985600,"lightning-bolt":988171,"lightning-bolt-outline":988172,lingerie:988278,link:983863,"link-box":986394,"link-box-outline":986395,"link-box-variant":986396,"link-box-variant-outline":986397,"link-lock":987322,"link-off":983864,"link-plus":986260,"link-variant":983865,"link-variant-minus":987391,"link-variant-off":983866,"link-variant-plus":987392,"link-variant-remove":987393,linkedin:983867,linux:983869,"linux-mint":985325,lipstick:988085,litecoin:985697,loading:984946,"location-enter":987076,"location-exit":987077,lock:983870,"lock-alert":985326,"lock-check":988058,"lock-clock":985471,"lock-open":983871,"lock-open-alert":988059,"lock-open-check":988060,"lock-open-outline":983872,"lock-open-variant":987078,"lock-open-variant-outline":987079,"lock-outline":983873,"lock-pattern":984810,"lock-plus":984571,"lock-question":985327,"lock-reset":984947,"lock-smart":985266,locker:985047,"locker-multiple":985048,login:983874,"login-variant":984572,logout:983875,"logout-variant":984573,longitude:986970,looks:983876,loupe:983877,lumx:983878,lungs:987268,magnet:983879,"magnet-on":983880,magnify:983881,"magnify-close":985472,"magnify-minus":983882,"magnify-minus-cursor":985698,"magnify-minus-outline":984812,"magnify-plus":983883,"magnify-plus-cursor":985699,"magnify-plus-outline":984813,"magnify-remove-cursor":987660,"magnify-remove-outline":987661,"magnify-scan":987766,mail:986811,mailbox:984814,"mailbox-open":986504,"mailbox-open-outline":986505,"mailbox-open-up":986506,"mailbox-open-up-outline":986507,"mailbox-outline":986508,"mailbox-up":986509,"mailbox-up-outline":986510,map:983885,"map-check":986812,"map-check-outline":986813,"map-clock":986398,"map-clock-outline":986399,"map-legend":985601,"map-marker":983886,"map-marker-alert":986885,"map-marker-alert-outline":986886,"map-marker-check":986261,"map-marker-check-outline":987899,"map-marker-circle":983887,"map-marker-distance":985328,"map-marker-down":987394,"map-marker-left":987867,"map-marker-left-outline":987869,"map-marker-minus":984656,"map-marker-minus-outline":987897,"map-marker-multiple":983888,"map-marker-multiple-outline":987767,"map-marker-off":983889,"map-marker-off-outline":987901,"map-marker-outline":985049,"map-marker-path":986400,"map-marker-plus":984657,"map-marker-plus-outline":987896,"map-marker-question":986887,"map-marker-question-outline":986888,"map-marker-radius":983890,"map-marker-radius-outline":987900,"map-marker-remove":986889,"map-marker-remove-outline":987898,"map-marker-remove-variant":986890,"map-marker-right":987868,"map-marker-right-outline":987870,"map-marker-up":987395,"map-minus":985473,"map-outline":985474,"map-plus":985475,"map-search":985476,"map-search-outline":985477,mapbox:986026,margin:983891,marker:984658,"marker-cancel":986585,"marker-check":983893,mastodon:985809,"material-design":985478,"material-ui":983895,"math-compass":983896,"math-cos":986262,"math-integral":987080,"math-integral-box":987081,"math-log":987269,"math-norm":987082,"math-norm-box":987083,"math-sin":986263,"math-tan":986264,matrix:984616,medal:985479,"medal-outline":987942,"medical-bag":984815,meditation:987515,memory:983899,menu:983900,"menu-down":983901,"menu-down-outline":984758,"menu-left":983902,"menu-left-outline":985602,"menu-open":986027,"menu-right":983903,"menu-right-outline":985603,"menu-swap":985700,"menu-swap-outline":985701,"menu-up":983904,"menu-up-outline":984759,merge:986972,message:983905,"message-alert":983906,"message-alert-outline":985604,"message-arrow-left":987890,"message-arrow-left-outline":987891,"message-arrow-right":987892,"message-arrow-right-outline":987893,"message-bulleted":984738,"message-bulleted-off":984739,"message-cog":984817,"message-cog-outline":987506,"message-draw":983907,"message-image":983908,"message-image-outline":987500,"message-lock":987084,"message-lock-outline":987501,"message-minus":987502,"message-minus-outline":987503,"message-outline":983909,"message-plus":984659,"message-plus-outline":987323,"message-processing":983910,"message-processing-outline":987504,"message-reply":983911,"message-reply-text":983912,"message-settings":984816,"message-settings-outline":987505,"message-text":983913,"message-text-clock":987507,"message-text-clock-outline":987508,"message-text-lock":987085,"message-text-lock-outline":987509,"message-text-outline":983914,"message-video":983915,meteor:984617,metronome:985050,"metronome-tick":985051,"micro-sd":985052,microphone:983916,"microphone-minus":985267,"microphone-off":983917,"microphone-outline":983918,"microphone-plus":985268,"microphone-settings":983919,"microphone-variant":983920,"microphone-variant-off":983921,microscope:984660,microsoft:983922,"microsoft-access":988046,"microsoft-azure":985093,"microsoft-azure-devops":987093,"microsoft-bing":983204,"microsoft-dynamics-365":985480,"microsoft-edge":983529,"microsoft-edge-legacy":987728,"microsoft-excel":988047,"microsoft-internet-explorer":983808,"microsoft-office":984006,"microsoft-onedrive":984010,"microsoft-onenote":984903,"microsoft-outlook":986402,"microsoft-powerpoint":988048,"microsoft-sharepoint":988049,"microsoft-teams":983739,"microsoft-visual-studio":984592,"microsoft-visual-studio-code":985630,"microsoft-windows":984499,"microsoft-windows-classic":985633,"microsoft-word":988050,"microsoft-xbox":984505,"microsoft-xbox-controller":984506,"microsoft-xbox-controller-battery-alert":984907,"microsoft-xbox-controller-battery-charging":985634,"microsoft-xbox-controller-battery-empty":984908,"microsoft-xbox-controller-battery-full":984909,"microsoft-xbox-controller-battery-low":984910,"microsoft-xbox-controller-battery-medium":984911,"microsoft-xbox-controller-battery-unknown":984912,"microsoft-xbox-controller-menu":986735,"microsoft-xbox-controller-off":984507,"microsoft-xbox-controller-view":986736,"microsoft-yammer":984969,microwave:986265,"microwave-off":988195,middleware:986973,"middleware-outline":986974,midi:985329,"midi-port":985330,mine:986586,minecraft:983923,"mini-sd":985605,minidisc:985606,minus:983924,"minus-box":983925,"minus-box-multiple":987457,"minus-box-multiple-outline":987458,"minus-box-outline":984818,"minus-circle":983926,"minus-circle-multiple":983898,"minus-circle-multiple-outline":985811,"minus-circle-off":988249,"minus-circle-off-outline":988250,"minus-circle-outline":983927,"minus-network":983928,"minus-network-outline":986266,mirror:987645,"mixed-martial-arts":986511,"mixed-reality":985215,mixer:985053,molecule:986028,"molecule-co":987902,"molecule-co2":985060,monitor:983929,"monitor-cellphone":985481,"monitor-cellphone-star":985482,"monitor-clean":987396,"monitor-dashboard":985607,"monitor-edit":987846,"monitor-eye":988084,"monitor-lock":986587,"monitor-multiple":983930,"monitor-off":986512,"monitor-screenshot":986705,"monitor-share":988291,"monitor-speaker":986975,"monitor-speaker-off":986976,"monitor-star":986588,"moon-first-quarter":986977,"moon-full":986978,"moon-last-quarter":986979,"moon-new":986980,"moon-waning-crescent":986981,"moon-waning-gibbous":986982,"moon-waxing-crescent":986983,"moon-waxing-gibbous":986984,moped:987270,more:983931,"mother-heart":987924,"mother-nurse":986401,"motion-sensor":986513,"motion-sensor-off":988213,motorbike:983932,mouse:983933,"mouse-bluetooth":985483,"mouse-off":983934,"mouse-variant":983935,"mouse-variant-off":983936,"move-resize":984661,"move-resize-variant":984662,movie:983937,"movie-edit":987426,"movie-edit-outline":987427,"movie-filter":987428,"movie-filter-outline":987429,"movie-open":987086,"movie-open-outline":987087,"movie-outline":986589,"movie-roll":985054,"movie-search":987602,"movie-search-outline":987603,muffin:985484,multiplication:983938,"multiplication-box":983939,mushroom:985055,"mushroom-off":988154,"mushroom-off-outline":988155,"mushroom-outline":985056,music:984922,"music-accidental-double-flat":986985,"music-accidental-double-sharp":986986,"music-accidental-flat":986987,"music-accidental-natural":986988,"music-accidental-sharp":986989,"music-box":983940,"music-box-multiple":983859,"music-box-multiple-outline":986884,"music-box-outline":983941,"music-circle":983942,"music-circle-outline":985812,"music-clef-alto":986990,"music-clef-bass":986991,"music-clef-treble":986992,"music-note":983943,"music-note-bluetooth":984574,"music-note-bluetooth-off":984575,"music-note-eighth":983944,"music-note-eighth-dotted":986993,"music-note-half":983945,"music-note-half-dotted":986994,"music-note-off":983946,"music-note-off-outline":986995,"music-note-outline":986996,"music-note-plus":986590,"music-note-quarter":983947,"music-note-quarter-dotted":986997,"music-note-sixteenth":983948,"music-note-sixteenth-dotted":986998,"music-note-whole":983949,"music-note-whole-dotted":986999,"music-off":984923,"music-rest-eighth":987e3,"music-rest-half":987001,"music-rest-quarter":987002,"music-rest-sixteenth":987003,"music-rest-whole":987004,nail:986591,nas:985331,nativescript:985216,nature:983950,"nature-people":983951,navigation:983952,"near-me":984525,necklace:986891,needle:983953,netflix:984902,network:984819,"network-off":986267,"network-off-outline":986268,"network-outline":986269,"network-strength-1":985332,"network-strength-1-alert":985333,"network-strength-2":985334,"network-strength-2-alert":985335,"network-strength-3":985336,"network-strength-3-alert":985337,"network-strength-4":985338,"network-strength-4-alert":985339,"network-strength-off":985340,"network-strength-off-outline":985341,"network-strength-outline":985342,"new-box":983956,newspaper:983957,"newspaper-minus":986892,"newspaper-plus":986893,"newspaper-variant":987137,"newspaper-variant-multiple":987138,"newspaper-variant-multiple-outline":987139,"newspaper-variant-outline":987140,nfc:983958,"nfc-search-variant":986707,"nfc-tap":983959,"nfc-variant":983960,"nfc-variant-off":986708,ninja:984948,"nintendo-game-boy":988051,"nintendo-switch":985057,"nintendo-wii":984491,"nintendo-wiiu":984877,nix:987397,nodejs:983961,noodles:987518,"not-equal":985485,"not-equal-variant":985486,note:983962,"note-multiple":984760,"note-multiple-outline":984761,"note-outline":983963,"note-plus":983964,"note-plus-outline":983965,"note-text":983966,"note-text-outline":987607,notebook:985134,"notebook-multiple":986709,"notebook-outline":986815,"notification-clear-all":983967,npm:984823,nuke:984740,null:985058,numeric:983968,"numeric-0":985913,"numeric-0-box":983969,"numeric-0-box-multiple":986894,"numeric-0-box-multiple-outline":983970,"numeric-0-box-outline":983971,"numeric-0-circle":986270,"numeric-0-circle-outline":986271,"numeric-1":985914,"numeric-1-box":983972,"numeric-1-box-multiple":986895,"numeric-1-box-multiple-outline":983973,"numeric-1-box-outline":983974,"numeric-1-circle":986272,"numeric-1-circle-outline":986273,"numeric-10":987113,"numeric-10-box":987005,"numeric-10-box-multiple":987114,"numeric-10-box-multiple-outline":987115,"numeric-10-box-outline":987006,"numeric-10-circle":987116,"numeric-10-circle-outline":987117,"numeric-2":985915,"numeric-2-box":983975,"numeric-2-box-multiple":986896,"numeric-2-box-multiple-outline":983976,"numeric-2-box-outline":983977,"numeric-2-circle":986274,"numeric-2-circle-outline":986275,"numeric-3":985916,"numeric-3-box":983978,"numeric-3-box-multiple":986897,"numeric-3-box-multiple-outline":983979,"numeric-3-box-outline":983980,"numeric-3-circle":986276,"numeric-3-circle-outline":986277,"numeric-4":985917,"numeric-4-box":983981,"numeric-4-box-multiple":986898,"numeric-4-box-multiple-outline":983986,"numeric-4-box-outline":983982,"numeric-4-circle":986278,"numeric-4-circle-outline":986279,"numeric-5":985918,"numeric-5-box":983985,"numeric-5-box-multiple":986899,"numeric-5-box-multiple-outline":983983,"numeric-5-box-outline":983984,"numeric-5-circle":986280,"numeric-5-circle-outline":986281,"numeric-6":985919,"numeric-6-box":983987,"numeric-6-box-multiple":986900,"numeric-6-box-multiple-outline":983988,"numeric-6-box-outline":983989,"numeric-6-circle":986282,"numeric-6-circle-outline":986283,"numeric-7":985920,"numeric-7-box":983990,"numeric-7-box-multiple":986901,"numeric-7-box-multiple-outline":983991,"numeric-7-box-outline":983992,"numeric-7-circle":986284,"numeric-7-circle-outline":986285,"numeric-8":985921,"numeric-8-box":983993,"numeric-8-box-multiple":986902,"numeric-8-box-multiple-outline":983994,"numeric-8-box-outline":983995,"numeric-8-circle":986286,"numeric-8-circle-outline":986287,"numeric-9":985922,"numeric-9-box":983996,"numeric-9-box-multiple":986903,"numeric-9-box-multiple-outline":983997,"numeric-9-box-outline":983998,"numeric-9-circle":986288,"numeric-9-circle-outline":986289,"numeric-9-plus":987118,"numeric-9-plus-box":983999,"numeric-9-plus-box-multiple":986904,"numeric-9-plus-box-multiple-outline":984e3,"numeric-9-plus-box-outline":984001,"numeric-9-plus-circle":986290,"numeric-9-plus-circle-outline":986291,"numeric-negative-1":987218,nut:984824,nutrition:984002,nuxt:987398,oar:984700,ocarina:986592,oci:987881,ocr:987450,octagon:984003,"octagon-outline":984004,octagram:984825,"octagram-outline":984949,odnoklassniki:984005,offer:987675,"office-building":985489,oil:984007,"oil-lamp":986905,"oil-level":987219,"oil-temperature":987128,omega:984009,"one-up":986029,onepassword:985217,opacity:984524,"open-in-app":984011,"open-in-new":984012,"open-source-initiative":986030,openid:984013,opera:984014,orbit:983064,"order-alphabetical-ascending":983565,"order-alphabetical-descending":986375,"order-bool-ascending":983742,"order-bool-ascending-variant":985487,"order-bool-descending":988036,"order-bool-descending-variant":985488,"order-numeric-ascending":984389,"order-numeric-descending":984390,origin:985923,ornament:984015,"ornament-variant":984016,"outdoor-lamp":987220,overscan:987141,owl:984018,"pac-man":986031,package:984019,"package-down":984020,"package-up":984021,"package-variant":984022,"package-variant-closed":984023,"page-first":984576,"page-last":984577,"page-layout-body":984826,"page-layout-footer":984827,"page-layout-header":984828,"page-layout-header-footer":987007,"page-layout-sidebar-left":984829,"page-layout-sidebar-right":984830,"page-next":986032,"page-next-outline":986033,"page-previous":986034,"page-previous-outline":986035,pail:988183,"pail-minus":988215,"pail-minus-outline":988220,"pail-off":988217,"pail-off-outline":988222,"pail-outline":988218,"pail-plus":988214,"pail-plus-outline":988219,"pail-remove":988216,"pail-remove-outline":988221,palette:984024,"palette-advanced":984025,"palette-outline":986636,"palette-swatch":985269,"palette-swatch-outline":987996,"palm-tree":987221,pan:986036,"pan-bottom-left":986037,"pan-bottom-right":986038,"pan-down":986039,"pan-horizontal":986040,"pan-left":986041,"pan-right":986042,"pan-top-left":986043,"pan-top-right":986044,"pan-up":986045,"pan-vertical":986046,panda:984026,pandora:984027,panorama:984028,"panorama-fisheye":984029,"panorama-horizontal":984030,"panorama-vertical":984031,"panorama-wide-angle":984032,"paper-cut-vertical":984033,"paper-roll":987479,"paper-roll-outline":987480,paperclip:984034,parachute:986292,"parachute-outline":986293,parking:984035,"party-popper":987222,passport:985059,"passport-biometric":986593,pasta:987488,"patio-heater":987008,patreon:985218,pause:984036,"pause-circle":984037,"pause-circle-outline":984038,"pause-octagon":984039,"pause-octagon-outline":984040,paw:984041,"paw-off":984663,"pdf-box":986710,peace:985220,peanut:987132,"peanut-off":987133,"peanut-off-outline":987135,"peanut-outline":987134,pen:984042,"pen-lock":986594,"pen-minus":986595,"pen-off":986596,"pen-plus":986597,"pen-remove":986598,pencil:984043,"pencil-box":984044,"pencil-box-multiple":987460,"pencil-box-multiple-outline":987461,"pencil-box-outline":984045,"pencil-circle":984831,"pencil-circle-outline":984950,"pencil-lock":984046,"pencil-lock-outline":986599,"pencil-minus":986600,"pencil-minus-outline":986601,"pencil-off":984047,"pencil-off-outline":986602,"pencil-outline":986294,"pencil-plus":986603,"pencil-plus-outline":986604,"pencil-remove":986605,"pencil-remove-outline":986606,"pencil-ruler":987987,penguin:986816,pentagon:984833,"pentagon-outline":984832,percent:984048,"percent-outline":987768,"periodic-table":985270,"perspective-less":986403,"perspective-more":986404,pharmacy:984049,phone:984050,"phone-alert":986906,"phone-alert-outline":987534,"phone-bluetooth":984051,"phone-bluetooth-outline":987535,"phone-cancel":987324,"phone-cancel-outline":987536,"phone-check":987561,"phone-check-outline":987562,"phone-classic":984578,"phone-classic-off":987769,"phone-forward":984052,"phone-forward-outline":987537,"phone-hangup":984053,"phone-hangup-outline":987538,"phone-in-talk":984054,"phone-in-talk-outline":987522,"phone-incoming":984055,"phone-incoming-outline":987539,"phone-lock":984056,"phone-lock-outline":987540,"phone-log":984057,"phone-log-outline":987541,"phone-message":987542,"phone-message-outline":987543,"phone-minus":984664,"phone-minus-outline":987544,"phone-missed":984058,"phone-missed-outline":987557,"phone-off":986607,"phone-off-outline":987558,"phone-outgoing":984059,"phone-outgoing-outline":987545,"phone-outline":986608,"phone-paused":984060,"phone-paused-outline":987546,"phone-plus":984665,"phone-plus-outline":987547,"phone-return":985135,"phone-return-outline":987548,"phone-ring":987563,"phone-ring-outline":987564,"phone-rotate-landscape":985221,"phone-rotate-portrait":985222,"phone-settings":984061,"phone-settings-outline":987549,"phone-voip":984062,pi:984063,"pi-box":984064,"pi-hole":986609,piano:984701,pickaxe:985271,"picture-in-picture-bottom-right":986711,"picture-in-picture-bottom-right-outline":986712,"picture-in-picture-top-right":986713,"picture-in-picture-top-right-outline":986714,pier:985223,"pier-crane":985224,pig:984065,"pig-variant":987142,"piggy-bank":987143,pill:984066,pillar:984834,pin:984067,"pin-off":984068,"pin-off-outline":985392,"pin-outline":985393,"pine-tree":984069,"pine-tree-box":984070,"pine-tree-fire":988186,pinterest:984071,pinwheel:985813,"pinwheel-outline":985814,pipe:985061,"pipe-disconnected":985062,"pipe-leak":985225,"pipe-wrench":987988,pirate:985608,pistol:984835,piston:985226,pizza:984073,play:984074,"play-box":987770,"play-box-multiple":986393,"play-box-multiple-outline":988134,"play-box-outline":984075,"play-circle":984076,"play-circle-outline":984077,"play-network":985227,"play-network-outline":986295,"play-outline":986907,"play-pause":984078,"play-protected-content":984079,"play-speed":985343,"playlist-check":984519,"playlist-edit":985344,"playlist-minus":984080,"playlist-music":986296,"playlist-music-outline":986297,"playlist-play":984081,"playlist-plus":984082,"playlist-remove":984083,"playlist-star":986610,plex:984762,plus:984085,"plus-box":984086,"plus-box-multiple":983860,"plus-box-multiple-outline":987459,"plus-box-outline":984836,"plus-circle":984087,"plus-circle-multiple":983884,"plus-circle-multiple-outline":984088,"plus-circle-outline":984089,"plus-minus":985490,"plus-minus-box":985491,"plus-minus-variant":988361,"plus-network":984090,"plus-network-outline":986298,"plus-one":984091,"plus-outline":984837,"plus-thick":987628,podcast:985492,podium:986405,"podium-bronze":986406,"podium-gold":986407,"podium-silver":986408,"point-of-sale":986514,pokeball:984093,"pokemon-go":985609,"poker-chip":985136,polaroid:984094,"police-badge":987495,"police-badge-outline":987496,poll:984095,"poll-box":984096,"poll-box-outline":987771,polo:988355,polymer:984097,pool:984582,popcorn:984098,post:987144,"post-outline":987145,"postage-stamp":986299,pot:983781,"pot-mix":984667,"pot-mix-outline":984695,"pot-outline":983807,"pot-steam":984666,"pot-steam-outline":983846,pound:984099,"pound-box":984100,"pound-box-outline":987519,power:984101,"power-cycle":985345,"power-off":985346,"power-on":985347,"power-plug":984741,"power-plug-off":984742,"power-plug-off-outline":988196,"power-plug-outline":988197,"power-settings":984102,"power-sleep":985348,"power-socket":984103,"power-socket-au":985349,"power-socket-de":987399,"power-socket-eu":985063,"power-socket-fr":987400,"power-socket-jp":987401,"power-socket-uk":985064,"power-socket-us":985065,"power-standby":985350,powershell:985610,prescription:984838,presentation:984104,"presentation-play":984105,printer:984106,"printer-3d":984107,"printer-3d-nozzle":986715,"printer-3d-nozzle-alert":987584,"printer-3d-nozzle-alert-outline":987585,"printer-3d-nozzle-outline":986716,"printer-alert":984108,"printer-check":987462,"printer-eye":988248,"printer-off":986717,"printer-pos":987223,"printer-search":988247,"printer-settings":984839,"printer-wireless":985611,"priority-high":984579,"priority-low":984580,"professional-hexagon":984109,"progress-alert":986300,"progress-check":985493,"progress-clock":985494,"progress-close":987402,"progress-download":985495,"progress-upload":985496,"progress-wrench":986301,projector:984110,"projector-screen":984111,"propane-tank":987991,"propane-tank-outline":987992,protocol:987096,publish:984743,pulse:984112,pump:988162,pumpkin:986047,purse:986908,"purse-outline":986909,puzzle:984113,"puzzle-check":988198,"puzzle-check-outline":988199,"puzzle-edit":988371,"puzzle-edit-outline":988377,"puzzle-heart":988372,"puzzle-heart-outline":988378,"puzzle-minus":988369,"puzzle-minus-outline":988375,"puzzle-outline":985702,"puzzle-plus":988368,"puzzle-plus-outline":988374,"puzzle-remove":988370,"puzzle-remove-outline":988376,"puzzle-star":988373,"puzzle-star-outline":988379,qi:985497,qqchat:984581,qrcode:984114,"qrcode-edit":985272,"qrcode-minus":987532,"qrcode-plus":987531,"qrcode-remove":987533,"qrcode-scan":984115,quadcopter:984116,"quality-high":984117,"quality-low":985612,"quality-medium":985613,quora:986409,rabbit:985351,"racing-helmet":986515,racquetball:986516,radar:984119,radiator:984120,"radiator-disabled":985815,"radiator-off":985816,radio:984121,"radio-am":986302,"radio-fm":986303,"radio-handheld":984122,"radio-off":987676,"radio-tower":984123,radioactive:984124,"radioactive-off":986817,"radiobox-blank":984125,"radiobox-marked":984126,"radiology-box":988357,"radiology-box-outline":988358,radius:986304,"radius-outline":986305,"railroad-light":986910,"raspberry-pi":984127,"ray-end":984128,"ray-end-arrow":984129,"ray-start":984130,"ray-start-arrow":984131,"ray-start-end":984132,"ray-vertex":984133,react:984840,read:984135,receipt:984137,record:984138,"record-circle":986818,"record-circle-outline":986819,"record-player":985498,"record-rec":984139,rectangle:986718,"rectangle-outline":986719,recycle:984140,"recycle-variant":988061,reddit:984141,redhat:987419,redo:984142,"redo-variant":984143,"reflect-horizontal":985614,"reflect-vertical":985615,refresh:984144,"refresh-circle":988023,regex:984145,"registered-trademark":985703,"relation-many-to-many":988310,"relation-many-to-one":988311,"relation-many-to-one-or-many":988312,"relation-many-to-only-one":988313,"relation-many-to-zero-or-many":988314,"relation-many-to-zero-or-one":988315,"relation-one-or-many-to-many":988316,"relation-one-or-many-to-one":988317,"relation-one-or-many-to-one-or-many":988318,"relation-one-or-many-to-only-one":988319,"relation-one-or-many-to-zero-or-many":988320,"relation-one-or-many-to-zero-or-one":988321,"relation-one-to-many":988322,"relation-one-to-one":988323,"relation-one-to-one-or-many":988324,"relation-one-to-only-one":988325,"relation-one-to-zero-or-many":988326,"relation-one-to-zero-or-one":988327,"relation-only-one-to-many":988328,"relation-only-one-to-one":988329,"relation-only-one-to-one-or-many":988330,"relation-only-one-to-only-one":988331,"relation-only-one-to-zero-or-many":988332,"relation-only-one-to-zero-or-one":988333,"relation-zero-or-many-to-many":988334,"relation-zero-or-many-to-one":988335,"relation-zero-or-many-to-one-or-many":988336,"relation-zero-or-many-to-only-one":988337,"relation-zero-or-many-to-zero-or-many":988338,"relation-zero-or-many-to-zero-or-one":988339,"relation-zero-or-one-to-many":988340,"relation-zero-or-one-to-one":988341,"relation-zero-or-one-to-one-or-many":988342,"relation-zero-or-one-to-only-one":988343,"relation-zero-or-one-to-zero-or-many":988344,"relation-zero-or-one-to-zero-or-one":988345,"relative-scale":984146,reload:984147,"reload-alert":987403,reminder:985228,remote:984148,"remote-desktop":985273,"remote-off":986820,"remote-tv":986821,"remote-tv-off":986822,"rename-box":984149,"reorder-horizontal":984712,"reorder-vertical":984713,repeat:984150,"repeat-off":984151,"repeat-once":984152,replay:984153,reply:984154,"reply-all":984155,"reply-all-outline":986911,"reply-circle":987566,"reply-outline":986912,reproduction:984156,resistor:985924,"resistor-nodes":985925,resize:985704,"resize-bottom-right":984157,responsive:984158,restart:984841,"restart-alert":987404,"restart-off":986517,restore:985499,"restore-alert":987405,rewind:984159,"rewind-10":986410,"rewind-30":986518,"rewind-5":987641,"rewind-outline":984842,rhombus:984843,"rhombus-medium":985616,"rhombus-medium-outline":988380,"rhombus-outline":984844,"rhombus-split":985617,"rhombus-split-outline":988381,ribbon:984160,rice:985066,ring:985067,rivet:986720,road:984161,"road-variant":984162,robber:987224,robot:984745,"robot-industrial":985926,"robot-mower":987639,"robot-mower-outline":987635,"robot-vacuum":984845,"robot-vacuum-variant":985352,rocket:984163,"rocket-launch":988382,"rocket-launch-outline":988383,"rocket-outline":988079,rodent:987943,"roller-skate":986411,"roller-skate-off":983365,rollerblade:986412,"rollerblade-off":983086,rollupjs:986048,"roman-numeral-1":987272,"roman-numeral-10":987281,"roman-numeral-2":987273,"roman-numeral-3":987274,"roman-numeral-4":987275,"roman-numeral-5":987276,"roman-numeral-6":987277,"roman-numeral-7":987278,"roman-numeral-8":987279,"roman-numeral-9":987280,"room-service":985229,"room-service-outline":986519,"rotate-3d":986823,"rotate-3d-variant":984164,"rotate-left":984165,"rotate-left-variant":984166,"rotate-orbit":986520,"rotate-right":984167,"rotate-right-variant":984168,"rounded-corner":984583,router:987618,"router-network":987271,"router-wireless":984169,"router-wireless-settings":985705,routes:984170,"routes-clock":987225,rowing:984584,rss:984171,"rss-box":984172,"rss-off":986913,rug:988277,rugby:986521,ruler:984173,"ruler-square":986306,"ruler-square-compass":986814,run:984846,"run-fast":984174,"rv-truck":987604,sack:986414,"sack-percent":986415,safe:985706,"safe-square":987772,"safe-square-outline":987773,"safety-goggles":986416,"sail-boat":986824,sale:984175,salesforce:985230,sass:985068,satellite:984176,"satellite-uplink":985353,"satellite-variant":984177,sausage:985274,"saw-blade":986721,"sawtooth-wave":988282,saxophone:984585,scale:984178,"scale-balance":984529,"scale-bathroom":984179,"scale-off":987226,"scan-helper":988120,scanner:984747,"scanner-off":985354,"scatter-plot":986825,"scatter-plot-outline":986826,school:984180,"school-outline":987520,"scissors-cutting":985707,scooter:987625,scoreboard:987774,"scoreboard-outline":987775,"screen-rotation":984181,"screen-rotation-lock":984184,"screw-flat-top":986611,"screw-lag":986612,"screw-machine-flat-top":986613,"screw-machine-round-top":986614,"screw-round-top":986615,screwdriver:984182,script:986049,"script-outline":984183,"script-text":986050,"script-text-outline":986051,sd:984185,seal:984186,"seal-variant":987097,"search-web":984847,seat:986307,"seat-flat":984187,"seat-flat-angled":984188,"seat-individual-suite":984189,"seat-legroom-extra":984190,"seat-legroom-normal":984191,"seat-legroom-reduced":984192,"seat-outline":986308,"seat-passenger":987721,"seat-recline-extra":984193,"seat-recline-normal":984194,seatbelt:986309,security:984195,"security-network":984196,seed:986722,"seed-off":988157,"seed-off-outline":988158,"seed-outline":986723,segment:986827,select:984197,"select-all":984198,"select-color":986417,"select-compare":985817,"select-drag":985708,"select-group":987010,"select-inverse":984199,"select-marker":987776,"select-multiple":987777,"select-multiple-marker":987778,"select-off":984200,"select-place":987098,"select-search":987652,selection:984201,"selection-drag":985709,"selection-ellipse":986418,"selection-ellipse-arrow-inside":986914,"selection-marker":987779,"selection-multiple":987781,"selection-multiple-marker":987780,"selection-off":984951,"selection-search":987653,"semantic-web":987926,send:984202,"send-check":987489,"send-check-outline":987490,"send-circle":986616,"send-circle-outline":986617,"send-clock":987491,"send-clock-outline":987492,"send-lock":985069,"send-lock-outline":987494,"send-outline":987493,"serial-port":984668,server:984203,"server-minus":984204,"server-network":984205,"server-network-off":984206,"server-off":984207,"server-plus":984208,"server-remove":984209,"server-security":984210,"set-all":984952,"set-center":984953,"set-center-right":984954,"set-left":984955,"set-left-center":984956,"set-left-right":984957,"set-merge":988384,"set-none":984958,"set-right":984959,"set-split":988385,"set-square":988253,"set-top-box":985503,"settings-helper":985710,shaker:987406,"shaker-outline":987407,shape:985137,"shape-circle-plus":984669,"shape-outline":985138,"shape-oval-plus":987642,"shape-plus":984213,"shape-polygon-plus":984670,"shape-rectangle-plus":984671,"shape-square-plus":984672,share:984214,"share-all":987636,"share-all-outline":987637,"share-circle":987565,"share-off":986915,"share-off-outline":986916,"share-outline":985394,"share-variant":984215,sheep:986310,shield:984216,"shield-account":985231,"shield-account-outline":985618,"shield-airplane":984763,"shield-airplane-outline":986311,"shield-alert":986828,"shield-alert-outline":986829,"shield-bug":988122,"shield-bug-outline":988123,"shield-car":987011,"shield-check":984421,"shield-check-outline":986312,"shield-cross":986313,"shield-cross-outline":986314,"shield-edit":987552,"shield-edit-outline":987553,"shield-half":988e3,"shield-half-full":984960,"shield-home":984714,"shield-home-outline":986315,"shield-key":986052,"shield-key-outline":986053,"shield-link-variant":986419,"shield-link-variant-outline":986420,"shield-lock":985501,"shield-lock-outline":986316,"shield-off":985502,"shield-off-outline":985500,"shield-outline":984217,"shield-plus":985818,"shield-plus-outline":985819,"shield-refresh":983210,"shield-refresh-outline":983520,"shield-remove":985820,"shield-remove-outline":985821,"shield-search":986522,"shield-star":987451,"shield-star-outline":987452,"shield-sun":987229,"shield-sun-outline":987230,"shield-sync":987554,"shield-sync-outline":987555,"ship-wheel":985139,"shoe-formal":985927,"shoe-heel":985928,"shoe-print":986618,shopping:984218,"shopping-music":984219,"shopping-outline":987605,"shopping-search":987012,shovel:984848,"shovel-off":984849,shower:985504,"shower-head":985505,shredder:984220,shuffle:984221,"shuffle-disabled":984222,"shuffle-variant":984223,shuriken:988031,sigma:984224,"sigma-lower":984619,"sign-caution":984225,"sign-direction":984961,"sign-direction-minus":987136,"sign-direction-plus":987100,"sign-direction-remove":987101,"sign-real-estate":987416,"sign-text":984962,signal:984226,"signal-2g":984850,"signal-3g":984851,"signal-4g":984852,"signal-5g":985711,"signal-cellular-1":985276,"signal-cellular-2":985277,"signal-cellular-3":985278,"signal-cellular-outline":985279,"signal-distance-variant":986724,"signal-hspa":984853,"signal-hspa-plus":984854,"signal-off":984963,"signal-variant":984586,signature:986619,"signature-freehand":986620,"signature-image":986621,"signature-text":986622,silo:985929,silverware:984227,"silverware-clean":987102,"silverware-fork":984228,"silverware-fork-knife":985712,"silverware-spoon":984229,"silverware-variant":984230,sim:984231,"sim-alert":984232,"sim-off":984233,"simple-icons":987933,"sina-weibo":985823,"sine-wave":985435,sitemap:984234,"size-l":988070,"size-m":988069,"size-s":988068,"size-xl":988071,"size-xs":988067,"size-xxl":988072,"size-xxs":988066,"size-xxxl":988073,skate:986421,skateboard:988354,"skew-less":986422,"skew-more":986423,ski:987908,"ski-cross-country":987909,"ski-water":987910,"skip-backward":984235,"skip-backward-outline":986917,"skip-forward":984236,"skip-forward-outline":986918,"skip-next":984237,"skip-next-circle":984673,"skip-next-circle-outline":984674,"skip-next-outline":986919,"skip-previous":984238,"skip-previous-circle":984675,"skip-previous-circle-outline":984676,"skip-previous-outline":986920,skull:984716,"skull-crossbones":986054,"skull-crossbones-outline":986055,"skull-outline":986056,"skull-scan":988359,"skull-scan-outline":988360,skype:984239,"skype-business":984240,slack:984241,"slash-forward":987103,"slash-forward-box":987104,sleep:984242,"sleep-off":984243,"slope-downhill":986623,"slope-uphill":986624,"slot-machine":987412,"slot-machine-outline":987413,"smart-card":987325,"smart-card-outline":987326,"smart-card-reader":987327,"smart-card-reader-outline":987328,smog:985713,"smoke-detector":983954,smoking:984244,"smoking-off":984245,"smoking-pipe":988173,"smoking-pipe-off":988200,snapchat:984246,snowboard:987911,snowflake:984855,"snowflake-alert":986921,"snowflake-melt":987851,"snowflake-variant":986922,snowman:984247,soccer:984248,"soccer-field":985140,sofa:984249,"solar-panel":986523,"solar-panel-large":986524,"solar-power":985714,"soldering-iron":987282,solid:984717,"sony-playstation":984084,sort:984250,"sort-alphabetical-ascending":984509,"sort-alphabetical-ascending-variant":987464,"sort-alphabetical-descending":984511,"sort-alphabetical-descending-variant":987465,"sort-alphabetical-variant":984251,"sort-ascending":984252,"sort-bool-ascending":988037,"sort-bool-ascending-variant":988038,"sort-bool-descending":988039,"sort-bool-descending-variant":988040,"sort-descending":984253,"sort-numeric-ascending":988041,"sort-numeric-ascending-variant":985357,"sort-numeric-descending":988042,"sort-numeric-descending-variant":985810,"sort-numeric-variant":984254,"sort-reverse-variant":983868,"sort-variant":984255,"sort-variant-lock":986317,"sort-variant-lock-open":986318,"sort-variant-remove":987463,soundcloud:984256,"source-branch":984620,"source-branch-check":988367,"source-branch-minus":988363,"source-branch-plus":988362,"source-branch-refresh":988365,"source-branch-remove":988364,"source-branch-sync":988366,"source-commit":984856,"source-commit-end":984857,"source-commit-end-local":984858,"source-commit-local":984859,"source-commit-next-local":984860,"source-commit-start":984861,"source-commit-start-next-local":984862,"source-fork":984257,"source-merge":984621,"source-pull":984258,"source-repository":986319,"source-repository-multiple":986320,"soy-sauce":985070,"soy-sauce-off":988156,spa:986321,"spa-outline":986322,"space-invaders":986057,"space-station":988035,spade:986725,speaker:984259,"speaker-bluetooth":985506,"speaker-multiple":986424,"speaker-off":984260,"speaker-wireless":984863,speedometer:984261,"speedometer-medium":987013,"speedometer-slow":987014,spellcheck:984262,spider:987626,"spider-thread":987627,"spider-web":986058,"spoon-sugar":988201,spotify:984263,spotlight:984264,"spotlight-beam":984265,spray:984677,"spray-bottle":985824,sprinkler:987231,"sprinkler-variant":987232,sprout:986726,"sprout-outline":986727,square:984932,"square-edit-outline":985356,"square-medium":985619,"square-medium-outline":985620,"square-off":987886,"square-off-outline":987887,"square-outline":984931,"square-root":984964,"square-root-box":985507,"square-small":985621,"square-wave":988283,squeegee:985825,ssh:985280,"stack-exchange":984587,"stack-overflow":984268,stackpath:983897,stadium:987129,"stadium-variant":984864,stairs:984269,"stairs-box":988062,"stairs-down":987838,"stairs-up":987837,stamper:986425,"standard-definition":985071,star:984270,"star-box":985715,"star-box-multiple":987782,"star-box-multiple-outline":987783,"star-box-outline":985716,"star-circle":984271,"star-circle-outline":985508,"star-face":985509,"star-four-points":985826,"star-four-points-outline":985827,"star-half":983622,"star-half-full":984272,"star-off":984273,"star-outline":984274,"star-three-points":985828,"star-three-points-outline":985829,"state-machine":987631,steam:984275,steering:984276,"steering-off":985358,"step-backward":984277,"step-backward-2":984278,"step-forward":984279,"step-forward-2":984280,stethoscope:984281,sticker:988004,"sticker-alert":988005,"sticker-alert-outline":988006,"sticker-check":988007,"sticker-check-outline":988008,"sticker-circle-outline":984528,"sticker-emoji":984965,"sticker-minus":988009,"sticker-minus-outline":988010,"sticker-outline":988011,"sticker-plus":988012,"sticker-plus-outline":988013,"sticker-remove":988014,"sticker-remove-outline":988015,stocking:984282,stomach:987283,stop:984283,"stop-circle":984678,"stop-circle-outline":984679,store:984284,"store-24-hour":984285,"store-outline":988001,storefront:985031,"storefront-outline":987329,stove:984286,strategy:987606,"stretch-to-page":986923,"stretch-to-page-outline":986924,"string-lights":987834,"string-lights-off":987835,"subdirectory-arrow-left":984588,"subdirectory-arrow-right":984589,subtitles:985622,"subtitles-outline":985623,subway:984748,"subway-alert-variant":986525,"subway-variant":984287,summit:984966,sunglasses:984288,"surround-sound":984517,"surround-sound-2-0":985072,"surround-sound-3-1":985073,"surround-sound-5-1":985074,"surround-sound-7-1":985075,svg:984865,"swap-horizontal":984289,"swap-horizontal-bold":986061,"swap-horizontal-circle":987105,"swap-horizontal-circle-outline":987106,"swap-horizontal-variant":985281,"swap-vertical":984290,"swap-vertical-bold":986062,"swap-vertical-circle":987107,"swap-vertical-circle-outline":987108,"swap-vertical-variant":985282,swim:984291,switch:984292,sword:984293,"sword-cross":984967,"syllabary-hangul":987955,"syllabary-hiragana":987956,"syllabary-katakana":987957,"syllabary-katakana-halfwidth":987958,symfony:985830,sync:984294,"sync-alert":984295,"sync-circle":988024,"sync-off":984296,tab:984297,"tab-minus":985931,"tab-plus":984924,"tab-remove":985932,"tab-unselected":984298,table:984299,"table-account":988089,"table-alert":988090,"table-arrow-down":988091,"table-arrow-left":988092,"table-arrow-right":988093,"table-arrow-up":988094,"table-border":985624,"table-cancel":988095,"table-chair":987233,"table-check":988096,"table-clock":988097,"table-cog":988098,"table-column":985141,"table-column-plus-after":984300,"table-column-plus-before":984301,"table-column-remove":984302,"table-column-width":984303,"table-edit":984304,"table-eye":987284,"table-eye-off":988099,"table-furniture":984508,"table-headers-eye":987677,"table-headers-eye-off":987678,"table-heart":988100,"table-key":988101,"table-large":984305,"table-large-plus":987015,"table-large-remove":987016,"table-lock":988102,"table-merge-cells":985510,"table-minus":988103,"table-multiple":988104,"table-network":988105,"table-of-contents":985142,"table-off":988106,"table-plus":985717,"table-refresh":988064,"table-remove":985718,"table-row":985143,"table-row-height":984306,"table-row-plus-after":984307,"table-row-plus-before":984308,"table-row-remove":984309,"table-search":985359,"table-settings":985144,"table-split-cell":988202,"table-star":988107,"table-sync":988065,"table-tennis":986728,tablet:984310,"tablet-android":984311,"tablet-cellphone":985511,"tablet-dashboard":986830,"tablet-ipad":984312,taco:984930,tag:984313,"tag-faces":984314,"tag-heart":984715,"tag-heart-outline":986063,"tag-minus":985360,"tag-minus-outline":987679,"tag-multiple":984315,"tag-multiple-outline":987895,"tag-off":987680,"tag-off-outline":987681,"tag-outline":984316,"tag-plus":984866,"tag-plus-outline":987682,"tag-remove":984867,"tag-remove-outline":987683,"tag-text":987684,"tag-text-outline":984317,tailwind:988159,tank:986426,"tanker-truck":987109,"tape-measure":985933,target:984318,"target-account":986064,"target-variant":985719,taxi:984319,tea:986526,"tea-outline":986527,teach:985232,teamviewer:984320,telegram:984321,telescope:985934,television:984322,"television-ambient-light":987990,"television-box":985145,"television-classic":985076,"television-classic-off":985146,"television-clean":987408,"television-guide":984323,"television-off":985147,"television-pause":987017,"television-play":986831,"television-stop":987018,"temperature-celsius":984324,"temperature-fahrenheit":984325,"temperature-kelvin":984326,tennis:986528,"tennis-ball":984327,tent:984328,terraform:987234,terrain:984329,"test-tube":984680,"test-tube-empty":985361,"test-tube-off":985362,text:985512,"text-box":983578,"text-box-check":986790,"text-box-check-outline":986791,"text-box-minus":986792,"text-box-minus-outline":986793,"text-box-multiple":985783,"text-box-multiple-outline":985784,"text-box-outline":985581,"text-box-plus":986794,"text-box-plus-outline":986795,"text-box-remove":986796,"text-box-remove-outline":986797,"text-box-search":986798,"text-box-search-outline":986799,"text-recognition":987453,"text-search":988088,"text-shadow":984681,"text-short":985513,"text-subject":985514,"text-to-speech":984330,"text-to-speech-off":984331,texture:984332,"texture-box":987110,theater:984333,"theme-light-dark":984334,thermometer:984335,"thermometer-alert":986625,"thermometer-chevron-down":986626,"thermometer-chevron-up":986627,"thermometer-high":987330,"thermometer-lines":984336,"thermometer-low":987331,"thermometer-minus":986628,"thermometer-plus":986629,thermostat:983955,"thermostat-box":985233,"thought-bubble":985078,"thought-bubble-outline":985079,"thumb-down":984337,"thumb-down-outline":984338,"thumb-up":984339,"thumb-up-outline":984340,"thumbs-up-down":984341,ticket:984342,"ticket-account":984343,"ticket-confirmation":984344,"ticket-confirmation-outline":988074,"ticket-outline":985363,"ticket-percent":984868,"ticket-percent-outline":988203,tie:984345,tilde:984869,timelapse:984346,timeline:986065,"timeline-alert":987029,"timeline-alert-outline":987032,"timeline-clock":987643,"timeline-clock-outline":987644,"timeline-help":987033,"timeline-help-outline":987034,"timeline-outline":986066,"timeline-plus":987030,"timeline-plus-outline":987031,"timeline-text":986067,"timeline-text-outline":986068,timer:988075,"timer-10":984348,"timer-3":984349,"timer-off":988076,"timer-off-outline":984350,"timer-outline":984347,"timer-sand":984351,"timer-sand-empty":984749,"timer-sand-full":984972,timetable:984352,toaster:987235,"toaster-off":987575,"toaster-oven":986323,"toggle-switch":984353,"toggle-switch-off":984354,"toggle-switch-off-outline":985625,"toggle-switch-outline":985626,toilet:985515,toolbox:985516,"toolbox-outline":985517,tools:987236,tooltip:984355,"tooltip-account":983052,"tooltip-edit":984356,"tooltip-edit-outline":987845,"tooltip-image":984357,"tooltip-image-outline":986069,"tooltip-outline":984358,"tooltip-plus":986070,"tooltip-plus-outline":984359,"tooltip-text":984360,"tooltip-text-outline":986071,tooth:985283,"tooth-outline":984361,toothbrush:987433,"toothbrush-electric":987436,"toothbrush-paste":987434,tortoise:986427,toslink:987832,tournament:985518,"tow-truck":985148,"tower-beach":984705,"tower-fire":984706,"toy-brick":987784,"toy-brick-marker":987785,"toy-brick-marker-outline":987786,"toy-brick-minus":987787,"toy-brick-minus-outline":987788,"toy-brick-outline":987789,"toy-brick-plus":987790,"toy-brick-plus-outline":987791,"toy-brick-remove":987792,"toy-brick-remove-outline":987793,"toy-brick-search":987794,"toy-brick-search-outline":987795,"track-light":985364,trackpad:985080,"trackpad-lock":985395,tractor:985234,"tractor-variant":988356,trademark:985720,"traffic-cone":988028,"traffic-light":984363,train:984364,"train-car":986072,"train-variant":985284,tram:984365,"tram-side":987111,transcribe:984366,"transcribe-close":984367,transfer:987237,"transfer-down":986529,"transfer-left":986530,"transfer-right":984368,"transfer-up":986531,"transit-connection":986428,"transit-connection-variant":986429,"transit-detour":987019,"transit-transfer":984750,transition:985365,"transition-masked":985366,translate:984522,"translate-off":986630,"transmission-tower":986430,"trash-can":985721,"trash-can-outline":985722,tray:987796,"tray-alert":987797,"tray-full":987798,"tray-minus":987799,"tray-plus":987800,"tray-remove":987801,"treasure-chest":984870,tree:984369,"tree-outline":986729,trello:984370,"trending-down":984371,"trending-neutral":984372,"trending-up":984373,triangle:984374,"triangle-outline":984375,"triangle-wave":988284,triforce:986073,trophy:984376,"trophy-award":984377,"trophy-broken":986532,"trophy-outline":984378,"trophy-variant":984379,"trophy-variant-outline":984380,truck:984381,"truck-check":986324,"truck-check-outline":987802,"truck-delivery":984382,"truck-delivery-outline":987803,"truck-fast":984968,"truck-fast-outline":987804,"truck-outline":987805,"truck-trailer":984871,trumpet:987286,"tshirt-crew":985723,"tshirt-crew-outline":984383,"tshirt-v":985724,"tshirt-v-outline":984384,"tumble-dryer":985367,"tumble-dryer-alert":987578,"tumble-dryer-off":987579,tune:984622,"tune-vertical":984682,turnstile:986325,"turnstile-outline":986326,turtle:986327,twitch:984387,twitter:984388,"twitter-retweet":984391,"two-factor-authentication":985519,typewriter:986925,ubisoft:986074,ubuntu:984392,ufo:987332,"ufo-outline":987333,"ultra-high-definition":985081,umbraco:984393,umbrella:984394,"umbrella-closed":985520,"umbrella-closed-outline":988130,"umbrella-closed-variant":988129,"umbrella-outline":984395,undo:984396,"undo-variant":984397,"unfold-less-horizontal":984398,"unfold-less-vertical":984928,"unfold-more-horizontal":984399,"unfold-more-vertical":984929,ungroup:984400,unicode:986832,unity:984751,unreal:985521,untappd:984401,update:984752,upload:984402,"upload-lock":988019,"upload-lock-outline":988020,"upload-multiple":985149,"upload-network":984822,"upload-network-outline":986328,"upload-off":987334,"upload-off-outline":987335,"upload-outline":986631,usb:984403,"usb-flash-drive":987806,"usb-flash-drive-outline":987807,"usb-port":987632,valve:987238,"valve-closed":987239,"valve-open":987240,"van-passenger":985082,"van-utility":985083,vanish:985084,"vanity-light":987617,variable:985831,"variable-box":987409,"vector-arrange-above":984404,"vector-arrange-below":984405,"vector-bezier":985832,"vector-circle":984406,"vector-circle-variant":984407,"vector-combine":984408,"vector-curve":984409,"vector-difference":984410,"vector-difference-ab":984411,"vector-difference-ba":984412,"vector-ellipse":985235,"vector-intersection":984413,"vector-line":984414,"vector-link":987112,"vector-point":984415,"vector-polygon":984416,"vector-polyline":984417,"vector-polyline-edit":987685,"vector-polyline-minus":987686,"vector-polyline-plus":987687,"vector-polyline-remove":987688,"vector-radius":984906,"vector-rectangle":984518,"vector-selection":984418,"vector-square":983041,"vector-triangle":984419,"vector-union":984420,vhs:985627,vibrate:984422,"vibrate-off":986329,video:984423,"video-3d":985085,"video-3d-off":988121,"video-3d-variant":986833,"video-4k-box":985150,"video-account":985369,"video-box":983293,"video-box-off":983294,"video-check":987241,"video-check-outline":987242,"video-image":985370,"video-input-antenna":985151,"video-input-component":985152,"video-input-hdmi":985153,"video-input-scart":987020,"video-input-svideo":985154,"video-minus":985522,"video-minus-outline":983738,"video-off":984424,"video-off-outline":986075,"video-outline":986076,"video-plus":985523,"video-plus-outline":983507,"video-stabilization":985371,"video-switch":984425,"video-switch-outline":984976,"video-vintage":985628,"video-wireless":986834,"video-wireless-outline":986835,"view-agenda":984426,"view-agenda-outline":987608,"view-array":984427,"view-array-outline":988293,"view-carousel":984428,"view-carousel-outline":988294,"view-column":984429,"view-column-outline":988295,"view-comfy":986730,"view-comfy-outline":988296,"view-compact":986731,"view-compact-outline":986732,"view-dashboard":984430,"view-dashboard-outline":985629,"view-dashboard-variant":985155,"view-dashboard-variant-outline":988297,"view-day":984431,"view-day-outline":988298,"view-grid":984432,"view-grid-outline":987609,"view-grid-plus":987021,"view-grid-plus-outline":987610,"view-headline":984433,"view-list":984434,"view-list-outline":988299,"view-module":984435,"view-module-outline":988300,"view-parallel":984872,"view-parallel-outline":988301,"view-quilt":984436,"view-quilt-outline":988302,"view-sequential":984873,"view-sequential-outline":988303,"view-split-horizontal":986059,"view-split-vertical":986060,"view-stream":984437,"view-stream-outline":988304,"view-week":984438,"view-week-outline":988305,vimeo:984439,violin:984591,"virtual-reality":985236,virus:988086,"virus-outline":988087,vk:984441,vlc:984444,"voice-off":986836,voicemail:984445,volleyball:985524,"volume-high":984446,"volume-low":984447,"volume-medium":984448,"volume-minus":984926,"volume-mute":984927,"volume-off":984449,"volume-plus":984925,"volume-source":987424,"volume-variant-off":986632,"volume-vibrate":987425,vote:985631,"vote-outline":985632,vpn:984450,vuejs:985156,vuetify:986733,walk:984451,wall:985086,"wall-sconce":985372,"wall-sconce-flat":985373,"wall-sconce-flat-variant":984092,"wall-sconce-round":984904,"wall-sconce-round-variant":985374,wallet:984452,"wallet-giftcard":984453,"wallet-membership":984454,"wallet-outline":986077,"wallet-plus":987022,"wallet-plus-outline":987023,"wallet-travel":984455,wallpaper:986633,wan:984456,wardrobe:987024,"wardrobe-outline":987025,warehouse:987009,"washing-machine":984874,"washing-machine-alert":987580,"washing-machine-off":987581,watch:984457,"watch-export":984458,"watch-export-variant":985237,"watch-import":984459,"watch-import-variant":985238,"watch-variant":985239,"watch-vibrate":984753,"watch-vibrate-off":986330,water:984460,"water-boiler":987026,"water-boiler-alert":987571,"water-boiler-off":987572,"water-off":984461,"water-outline":986634,"water-percent":984462,"water-polo":987808,"water-pump":984463,"water-pump-off":987027,"water-well":987243,"water-well-outline":987244,"watering-can":988289,"watering-can-outline":988290,watermark:984594,wave:986926,waveform:988285,waves:984973,waze:986078,"weather-cloudy":984464,"weather-cloudy-alert":986927,"weather-cloudy-arrow-right":986734,"weather-fog":984465,"weather-hail":984466,"weather-hazy":986928,"weather-hurricane":985240,"weather-lightning":984467,"weather-lightning-rainy":984702,"weather-night":984468,"weather-night-partly-cloudy":986929,"weather-partly-cloudy":984469,"weather-partly-lightning":986930,"weather-partly-rainy":986931,"weather-partly-snowy":986932,"weather-partly-snowy-rainy":986933,"weather-pouring":984470,"weather-rainy":984471,"weather-snowy":984472,"weather-snowy-heavy":986934,"weather-snowy-rainy":984703,"weather-sunny":984473,"weather-sunny-alert":986935,"weather-sunset":984474,"weather-sunset-down":984475,"weather-sunset-up":984476,"weather-tornado":986936,"weather-windy":984477,"weather-windy-variant":984478,web:984479,"web-box":987028,"web-clock":987722,webcam:984480,webhook:984623,webpack:984875,webrtc:987720,wechat:984593,weight:984481,"weight-gram":986431,"weight-kilogram":984482,"weight-lifter":987485,"weight-pound":985525,whatsapp:984483,"wheelchair-accessibility":984484,whistle:985526,"whistle-outline":987836,"white-balance-auto":984485,"white-balance-incandescent":984486,"white-balance-iridescent":984487,"white-balance-sunny":984488,widgets:984876,"widgets-outline":987989,wifi:984489,"wifi-off":984490,"wifi-star":986635,"wifi-strength-1":985375,"wifi-strength-1-alert":985376,"wifi-strength-1-lock":985377,"wifi-strength-2":985378,"wifi-strength-2-alert":985379,"wifi-strength-2-lock":985380,"wifi-strength-3":985381,"wifi-strength-3-alert":985382,"wifi-strength-3-lock":985383,"wifi-strength-4":985384,"wifi-strength-4-alert":985385,"wifi-strength-4-lock":985386,"wifi-strength-alert-outline":985387,"wifi-strength-lock-outline":985388,"wifi-strength-off":985389,"wifi-strength-off-outline":985390,"wifi-strength-outline":985391,wikipedia:984492,"wind-turbine":986533,"window-close":984493,"window-closed":984494,"window-closed-variant":987611,"window-maximize":984495,"window-minimize":984496,"window-open":984497,"window-open-variant":987612,"window-restore":984498,"window-shutter":987420,"window-shutter-alert":987421,"window-shutter-open":987422,wiper:985833,"wiper-wash":986534,"wizard-hat":988279,wordpress:984500,wrap:984502,"wrap-disabled":986079,wrench:984503,"wrench-outline":986080,xamarin:985157,"xamarin-outline":985158,xing:984510,xml:984512,xmpp:985087,"y-combinator":984612,yahoo:985935,yeast:984513,"yin-yang":984704,yoga:987516,youtube:984515,"youtube-gaming":985160,"youtube-studio":985159,"youtube-subscription":986432,"youtube-tv":984136,"z-wave":985834,zend:985835,zigbee:986433,"zip-box":984516,"zip-box-outline":987130,"zip-disk":985635,"zodiac-aquarius":985725,"zodiac-aries":985726,"zodiac-cancer":985727,"zodiac-capricorn":985728,"zodiac-gemini":985729,"zodiac-leo":985730,"zodiac-libra":985731,"zodiac-pisces":985732,"zodiac-sagittarius":985733,"zodiac-scorpio":985734,"zodiac-taurus":985735,"zodiac-virgo":985736,blank:63116}},530,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.PortalContext=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=y(n);if(u&&u.has(t))return u.get(t);var o={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(o,l,f):o[l]=t[l]}o.default=t,u&&u.set(t,o);return o})(r(d[6])),p=r(d[7]),s=t(r(d[8]));function y(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(y=function(t){return t?u:n})(t)}function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var v=f.createContext(null);e.PortalContext=v;var k=(function(t){(0,o.default)(O,t);var y,k,P=(y=O,k=h(),function(){var t,n=(0,l.default)(y);if(k){var u=(0,l.default)(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return(0,c.default)(this,t)});function O(){var t;(0,n.default)(this,O);for(var u=arguments.length,o=new Array(u),c=0;c-1?t.queue[c]=o:t.queue.push(o)}},t.unmount=function(n){t.manager?t.manager.unmount(n):t.queue.push({type:'unmount',key:n})},t.nextKey=0,t.queue=[],t}return(0,u.default)(O,[{key:"componentDidMount",value:function(){for(var t=this.manager,n=this.queue;n.length&&t;){var u=n.pop();if(u)switch(u.type){case'mount':t.mount(u.key,u.children);break;case'update':t.update(u.key,u.children);break;case'unmount':t.unmount(u.key)}}}},{key:"render",value:function(){return f.createElement(v.Provider,{value:{mount:this.mount,update:this.update,unmount:this.unmount}},f.createElement(p.View,{style:b.container,collapsable:!1,pointerEvents:"box-none"},this.props.children),f.createElement(s.default,{ref:this.setManager}))}}]),O})(f.Component);e.default=k,k.displayName='Portal.Host';var b=p.StyleSheet.create({container:{flex:1}})},531,[1,31,32,42,44,41,6,10,532]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4])),f=t(r(d[5])),l=t(r(d[6])),p=t(r(d[7])),s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=O(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var l=c?Object.getOwnPropertyDescriptor(t,f):null;l&&(l.get||l.set)?Object.defineProperty(u,f,l):u[f]=t[f]}u.default=t,o&&o.set(t,u);return u})(r(d[8])),y=r(d[9]);function O(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(O=function(t){return t?o:n})(t)}function b(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function v(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:0;if(t instanceof n.Animated.Value){var o=[0,1,2,3,8,24];return{shadowColor:u,shadowOffset:{width:new n.Animated.Value(0),height:t.interpolate({inputRange:o,outputRange:[0,.5,.75,2,7,23]})},shadowOpacity:new n.Animated.Value(f),shadowRadius:t.interpolate({inputRange:o,outputRange:[0,.75,1.5,3,8,24]})}}if(0===t)return{};var l,c;switch(t){case 1:l=.5,c=.75;break;case 2:l=.75,c=1.5;break;default:l=t-1,c=t}return{shadowColor:u,shadowOffset:{width:0,height:l},shadowOpacity:f,shadowRadius:c}};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var p=l?Object.getOwnPropertyDescriptor(t,c):null;p&&(p.get||p.set)?Object.defineProperty(f,c,p):f[c]=t[c]}f.default=t,u&&u.set(t,f);return f})(r(d[0])),n=r(d[1]);function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}var u=t.black,f=.24},534,[496,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.default.colors.surface;if(f(t)){var u=[0,1,2,3,8,24];return t.interpolate({inputRange:u,outputRange:u.map(function(t){return l(n,t)})})}return l(n,t)};var n=t(r(d[1])),u=r(d[2]),o=t(r(d[3])),f=function(t){return t instanceof u.Animated.Value};function l(t){var u,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return u=o>=1&&o<=24?c[o]:o>24?c[24]:c[1],(0,n.default)(t).mix((0,n.default)('white'),.01*u).hex()}var c={1:5,2:7,3:8,4:9,5:10,6:11,7:11.5,8:12,9:12.5,10:13,11:13.5,12:14,13:14.25,14:14.5,15:14.75,16:15,17:15.12,18:15.24,19:15.36,20:15.48,21:15.6,22:15.72,23:15.84,24:16}},535,[1,504,10,533]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Icon",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Image",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Text",{enumerable:!0,get:function(){return f.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3]))},536,[1,537,540,541]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=y(n);if(o&&o.has(t))return o.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=u?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(l,c,f):l[c]=t[c]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),u=r(d[4]),c=t(r(d[5])),f=r(d[6]),s=r(d[7]),p=t(r(d[8]));function y(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(y=function(t){return t?o:n})(t)}var v=function(t){var f,y=t.icon,v=t.size,h=void 0===v?64:v,w=t.style,O=t.theme,j=(0,o.default)(t,["icon","size","style","theme"]),k=u.StyleSheet.flatten(w)||{},P=k.backgroundColor,_=void 0===P?O.colors.primary:P,M=(0,o.default)(k,["backgroundColor"]),C=null!=(f=j.color)?f:(0,p.default)(_,s.white,'rgba(0, 0, 0, .54)');return l.createElement(u.View,(0,n.default)({style:[{width:h,height:h,borderRadius:h/2,backgroundColor:_},b.container,M]},j),l.createElement(c.default,{source:y,color:C,size:.6*h}))};v.displayName='Avatar.Icon';var b=u.StyleSheet.create({container:{justifyContent:'center',alignItems:'center'}}),h=(0,f.withTheme)(v);e.default=h},537,[1,9,60,6,10,538,497,496,539]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.isEqualIcon=e.isValidIcon=void 0;var o=t(r(d[1])),n=t(r(d[2])),u=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=p(o);if(n&&n.has(t))return n.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,n&&n.set(t,u);return u})(r(d[3])),c=r(d[4]),l=r(d[5]),f=r(d[6]),s=r(d[7]);function p(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(p=function(t){return t?n:o})(t)}var y=function(t){return'object'==typeof t&&null!==t&&Object.prototype.hasOwnProperty.call(t,'uri')&&'string'==typeof t.uri||'number'==typeof t||'web'===c.Platform.OS&&'string'==typeof t&&(t.startsWith('data:image')||/\.(bmp|jpg|jpeg|png|gif|svg)$/.test(t))},b=function(t){return'object'==typeof t&&null!==t&&Object.prototype.hasOwnProperty.call(t,'uri')&&'string'==typeof t.uri?t.uri:t};e.isValidIcon=function(t){return'string'==typeof t||'function'==typeof t||y(t)};e.isEqualIcon=function(t,o){return t===o||b(t)===b(o)};var j=(0,s.withTheme)(function(t){var s=t.source,p=t.color,b=t.size,j=t.theme,O=(0,n.default)(t,["source","color","size","theme"]),v='object'==typeof s&&s.direction&&s.source?'auto'===s.direction?c.I18nManager.isRTL?'rtl':'ltr':s.direction:null,h='object'==typeof s&&s.direction&&s.source?s.source:s,w=p||j.colors.text;return y(h)?u.createElement(c.Image,(0,o.default)({},O,{source:h,style:[{transform:[{scaleX:'rtl'===v?-1:1}]},{width:b,height:b,tintColor:p,resizeMode:'contain'}]},f.accessibilityProps)):'string'==typeof h?u.createElement(l.Consumer,null,function(t){return(0,t.icon)({name:h,color:w,size:b,direction:v})}):'function'==typeof h?h({color:w,size:b,direction:v}):null});e.default=j},538,[1,9,60,6,10,514,515,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,u,f){if('string'==typeof t)return(0,n.default)(t).isLight()?f:u;return u};var n=t(r(d[1]))},539,[1,504]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),n=t(r(d[2])),u=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=c(o);if(n&&n.has(t))return n.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var s=f?Object.getOwnPropertyDescriptor(t,l):null;s&&(s.get||s.set)?Object.defineProperty(u,l,s):u[l]=t[l]}u.default=t,n&&n.set(t,u);return u})(r(d[3])),f=r(d[4]),l=r(d[5]);function c(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(c=function(t){return t?n:o})(t)}var s=function(t){var l=t.size,c=void 0===l?64:l,s=t.source,p=t.style,y=t.theme,v=(0,n.default)(t,["size","source","style","theme"]),h=y.colors,b=(f.StyleSheet.flatten(p)||{}).backgroundColor,w=void 0===b?h.primary:b;return u.createElement(f.View,(0,o.default)({style:[{width:c,height:c,borderRadius:c/2,backgroundColor:w},p]},v),'function'==typeof s&&s({size:c}),'function'!=typeof s&&u.createElement(f.Image,{source:s,style:{width:c,height:c,borderRadius:c/2}}))};s.displayName='Avatar.Image';var p=(0,l.withTheme)(s);e.default=p},540,[1,9,60,6,10,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=p(n);if(l&&l.has(t))return l.get(t);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=u?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(o,c,f):o[c]=t[c]}o.default=t,l&&l.set(t,o);return o})(r(d[3])),u=r(d[4]),c=t(r(d[5])),f=r(d[6]),y=r(d[7]),s=t(r(d[8]));function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(p=function(t){return t?l:n})(t)}var b=function(t){var f=t.label,p=t.size,b=void 0===p?64:p,h=t.style,O=t.theme,w=t.labelStyle,j=t.color,S=(0,l.default)(t,["label","size","style","theme","labelStyle","color"]),k=u.StyleSheet.flatten(h)||{},P=k.backgroundColor,_=void 0===P?O.colors.primary:P,x=(0,l.default)(k,["backgroundColor"]),M=null!=j?j:(0,s.default)(_,y.white,'rgba(0, 0, 0, .54)');return o.createElement(u.View,(0,n.default)({style:[{width:b,height:b,borderRadius:b/2,backgroundColor:_},v.container,x]},S),o.createElement(c.default,{style:[v.text,{color:M,fontSize:b/2,lineHeight:b},w],numberOfLines:1},f))};b.displayName='Avatar.Text';var v=u.StyleSheet.create({container:{justifyContent:'center',alignItems:'center'},text:{textAlign:'center',textAlignVertical:'center'}}),h=(0,f.withTheme)(b);e.default=h},541,[1,9,60,6,10,542,497,496,539]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var l=f?Object.getOwnPropertyDescriptor(t,c):null;l&&(l.get||l.set)?Object.defineProperty(u,c,l):u[c]=t[c]}u.default=t,o&&o.set(t,u);return u})(r(d[4])),c=r(d[5]),l=r(d[6]);function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}function s(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function O(t){for(var n=1;n=28&&v;return t.supported?n.createElement(u.TouchableNativeFeedback,(0,l.default)({},j,{disabled:M,useForeground:S,background:null!=p?p:u.TouchableNativeFeedback.Ripple(H,v)}),n.createElement(u.View,{style:[v&&b.overflowHidden,s]},n.Children.only(P))):n.createElement(u.TouchableHighlight,(0,l.default)({},j,{disabled:M,style:[v&&b.overflowHidden,s],underlayColor:null!=O?O:(0,f.default)(H).fade(.5).rgb().string()}),n.Children.only(P))};p.supported='android'===u.Platform.OS&&u.Platform.Version>=21;var b=u.StyleSheet.create({overflowHidden:{overflow:'hidden'}}),y=(0,c.withTheme)(p);e.default=y},545,[1,9,60,6,10,504,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.ListAccordionGroupContext=void 0;var n=t(r(d[1])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var c={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=f?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(c,l,p):c[l]=t[l]}c.default=t,o&&o.set(t,c);return c})(r(d[2]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}var c=o.createContext(null);e.ListAccordionGroupContext=c;var f=function(t){var u=t.expandedId,f=t.onAccordionPress,l=t.children,p=o.useState(void 0),s=(0,n.default)(p,2),v=s[0],y=s[1];return o.createElement(c.Provider,{value:{expandedId:u||v,onAccordionPress:f||function(t){y(function(n){return n===t?void 0:t})}}},l)};f.displayName='List.AccordionGroup';var l=f;e.default=l},546,[1,19,6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=c(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=f?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[1])),o=r(d[2]),u=t(r(d[3]));function c(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(c=function(t){return t?o:n})(t)}var f=function(t){var c=t.icon,f=t.color,p=t.style;return n.createElement(o.View,{style:[l.item,p],pointerEvents:"box-none"},n.createElement(u.default,{source:c,size:24,color:f}))},l=o.StyleSheet.create({item:{margin:8,height:40,width:40,alignItems:'center',justifyContent:'center'}});f.displayName='List.Icon';var p=f;e.default=p},547,[1,6,10,538]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),c=t(r(d[4])),s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=b(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var f=c?Object.getOwnPropertyDescriptor(t,s):null;f&&(f.get||f.set)?Object.defineProperty(l,s,f):l[s]=t[s]}l.default=t,o&&o.set(t,l);return l})(r(d[5])),f=r(d[6]),u=t(r(d[7])),p=t(r(d[8])),y=r(d[9]);function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(b=function(t){return t?o:n})(t)}function O(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function h(t){for(var n=1;n1&&(l=2-l),150*(t?-1:1)*W(l)+c+"deg"}),l={width:k,height:k,transform:[{rotate:A.interpolate({inputRange:[0,1],outputRange:["45deg","765deg"]})}]},s={width:k,height:k,transform:[{translateY:t?-k/2:0},{rotate:A.interpolate({inputRange:n,outputRange:o})}]},f=t?{top:k/2}:null,p={width:k,height:k,borderColor:S,borderWidth:k/10,borderRadius:k/2};return c.createElement(u.Animated.View,{key:t,style:[b.layer]},c.createElement(u.Animated.View,{style:l},c.createElement(u.Animated.View,{style:[_,f],collapsable:!1},c.createElement(u.Animated.View,{style:s},c.createElement(u.Animated.View,{style:_,collapsable:!1},c.createElement(u.Animated.View,{style:p}))))))})))});e.default=h},556,[1,54,9,60,6,10,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=w(n);if(l&&l.has(t))return l.get(t);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var s=u?Object.getOwnPropertyDescriptor(t,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=t[c]}o.default=t,l&&l.set(t,o);return o})(r(d[4])),c=r(d[5]),s=t(r(d[6])),f=t(r(d[7])),y=t(r(d[8])),p=t(r(d[9])),h=r(d[10]),v=t(r(d[11]));function w(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(w=function(t){return t?l:n})(t)}var b=c.StyleSheet.create({container:{elevation:1},wrapper:{overflow:'hidden',alignSelf:'center',width:'100%',maxWidth:960},absolute:{position:'absolute',top:0,width:'100%'},content:{flexDirection:'row',justifyContent:'flex-start',marginHorizontal:8,marginTop:16,marginBottom:0},icon:{margin:8},message:{flex:1,margin:8},actions:{flexDirection:'row',justifyContent:'flex-end',margin:4},button:{margin:4}}),E=(0,h.withTheme)(function(t){var h=t.visible,w=t.icon,E=t.children,j=t.actions,O=t.contentStyle,V=t.style,A=t.theme,x=(0,o.default)(t,["visible","icon","children","actions","contentStyle","style","theme"]),D=u.useRef(new c.Animated.Value(h?1:0)).current,P=u.useState({height:0,measured:!1}),S=(0,l.default)(P,2),_=S[0],M=S[1],k=A.animation.scale;u.useEffect(function(){h?c.Animated.timing(D,{duration:250*k,toValue:1,useNativeDriver:!1}).start():c.Animated.timing(D,{duration:200*k,toValue:0,useNativeDriver:!1}).start()},[h,D,k]);var W=c.Animated.multiply(D,_.height),z=c.Animated.multiply(c.Animated.add(D,-1),_.height);return u.createElement(s.default,(0,n.default)({},x,{style:[b.container,(0,v.default)(1),V]}),u.createElement(c.View,{style:[b.wrapper,O]},u.createElement(c.Animated.View,{style:{height:W}}),u.createElement(c.Animated.View,{onLayout:function(t){var n=t.nativeEvent.layout.height;M({height:n,measured:!0})},style:[_.measured||!h?[b.absolute,{transform:[{translateY:z}]}]:null,_.measured||h?null:{opacity:0}]},u.createElement(c.View,{style:b.content},w?u.createElement(c.View,{style:b.icon},u.createElement(p.default,{source:w,size:40})):null,u.createElement(f.default,{style:b.message},E)),u.createElement(c.View,{style:b.actions},j.map(function(t,l){var c=t.label,s=(0,o.default)(t,["label"]);return u.createElement(y.default,(0,n.default)({key:l,compact:!0,mode:"text",style:b.button},s),c)})))))});e.default=E},557,[1,9,19,60,6,10,558,542,559,538,497,534]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=s(n);if(u&&u.has(t))return u.get(t);var o={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var c=f?Object.getOwnPropertyDescriptor(t,l):null;c&&(c.get||c.set)?Object.defineProperty(o,l,c):o[l]=t[l]}o.default=t,u&&u.set(t,o);return o})(r(d[3])),f=r(d[4]),l=t(r(d[5])),c=r(d[6]),p=t(r(d[7]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(s=function(t){return t?u:n})(t)}var v=(0,c.withTheme)(function(t){var c=t.style,s=t.theme,v=(0,u.default)(t,["style","theme"]),y=(f.StyleSheet.flatten(c)||{}).elevation,O=void 0===y?4:y,b=s.dark,h=s.mode,j=s.colors;return o.createElement(f.Animated.View,(0,n.default)({},v,{style:[{backgroundColor:b&&'adaptive'===h?(0,p.default)(O,j.surface):j.surface},O?(0,l.default)(O):null,c]}))});e.default=v},558,[1,9,60,6,10,534,497,535]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),c=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=P(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var u=c?Object.getOwnPropertyDescriptor(t,s):null;u&&(u.get||u.set)?Object.defineProperty(l,s,u):l[s]=t[s]}l.default=t,o&&o.set(t,l);return l})(r(d[4])),s=r(d[5]),u=t(r(d[6])),b=t(r(d[7])),f=t(r(d[8])),p=t(r(d[9])),y=t(r(d[10])),h=t(r(d[11])),v=r(d[12]),O=r(d[13]);function P(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(P=function(t){return t?o:n})(t)}function w(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function S(t){for(var n=1;n3:te,re=U.animation.scale,oe=n.routes[n.index].key,ae=(0,V.default)(1),ie=(0,C.default)(n.routes.map(function(t,o){return o===n.index?1:0})),le=(0,C.default)(n.routes.map(function(t,o){return o===n.index?0:1})),ue=(0,V.default)(n.index),ce=(0,V.default)(.001),de=(0,x.default)(),se=(0,l.default)(de,2),fe=se[0],pe=se[1],be=s.useState([oe]),me=(0,l.default)(be,2),ye=me[0],ge=me[1];ye.includes(oe)||ge(function(t){return[].concat((0,o.default)(t),[oe])});var ve=s.useState(!1),he=(0,l.default)(ve,2),we=he[0],Ee=he[1],ke=s.useCallback(function(){Ee(!0),f.Animated.timing(ae,{toValue:0,duration:150*re,useNativeDriver:!0}).start()},[re,ae]),Se=s.useCallback(function(){f.Animated.timing(ae,{toValue:1,duration:100*re,useNativeDriver:!0}).start(function(){Ee(!1)})},[re,ae]),Oe=s.useCallback(function(t){ce.setValue(.001),f.Animated.parallel([f.Animated.timing(ce,{toValue:1,duration:ne?400*re:0,useNativeDriver:!0})].concat((0,o.default)(n.routes.map(function(n,o){return f.Animated.timing(ie[o],{toValue:o===t?1:0,duration:ne?150*re:0,useNativeDriver:!0})})))).start(function(n){var o=n.finished;ie.map(function(n,o){return n.setValue(o===t?1:0)}),ue.setValue(t),ce.setValue(.001),o&&le.forEach(function(n,o){o===t?n.setValue(0):n.setValue(1)})})},[ue,ne,n.routes,le,ce,re,ie]);s.useEffect(function(){Oe(n.index)},[]),s.useEffect(function(){return'ios'===f.Platform.OS?(f.Keyboard.addListener('keyboardWillShow',ke),f.Keyboard.addListener('keyboardWillHide',Se)):(f.Keyboard.addListener('keyboardDidShow',ke),f.Keyboard.addListener('keyboardDidHide',Se)),function(){'ios'===f.Platform.OS?(f.Keyboard.removeListener('keyboardWillShow',ke),f.Keyboard.removeListener('keyboardWillHide',Se)):(f.Keyboard.removeListener('keyboardDidShow',ke),f.Keyboard.removeListener('keyboardDidHide',Se))}},[Se,ke]);var Ve=s.useRef();s.useEffect(function(){le.forEach(function(t,o){var l;o!==n.index&&o!==(null==(l=Ve.current)?void 0:l.index)||t.setValue(0)}),Oe(n.index)},[n.index,Oe,le]);var Ce=function(t){var o={route:n.routes[t],defaultPrevented:!1,preventDefault:function(){o.defaultPrevented=!0}};null==$||$(o),o.defaultPrevented||t!==n.index&&ee(t)},xe=s.useCallback(function(t){var o=n.routes.findIndex(function(n){return n.key===t});ee(o)},[n.routes,ee]),Pe=n.routes,je=U.colors,Ae=U.dark,De=U.mode,Re=f.StyleSheet.flatten(q)||{},Le=Re.backgroundColor,We=Re.elevation,Te=void 0===We?4:We,Ie=Le||(Ae&&'adaptive'===De?(0,y.default)(Te,je.surface):je.primary),Ke=ne?ue.interpolate({inputRange:Pe.map(function(t,n){return n}),outputRange:Pe.map(function(t){return I({route:t})||Ie})}):Ie,He='string'!=typeof Ie||!(0,b.default)(Ie).isLight()?S.white:S.black,Me=void 0!==B?B:He,ze=void 0!==F?F:(0,b.default)(He).alpha(.5).rgb().string(),_e=(0,b.default)(B||Me).alpha(.12).rgb().string(),Be=(Pe.length>3?96:168)*Pe.length,Fe=Math.min(fe.width,Be)/Pe.length,Ne=fe.width/4;return s.createElement(f.View,{style:[K.container,Q]},s.createElement(f.View,{style:[K.content,{backgroundColor:je.background}]},Pe.map(function(t,o){if(!ye.includes(t.key))return null;var l=n.index===o,c=Z?ie[o]:l?1:0,p=Z?le[o].interpolate({inputRange:[0,1],outputRange:[0,R]}):l?0:R;return s.createElement(f.Animated.View,{key:t.key,pointerEvents:l?'auto':'none',accessibilityElementsHidden:!l,importantForAccessibility:l?'auto':'no-hide-descendants',style:[f.StyleSheet.absoluteFill,{opacity:c}],collapsable:!1,removeClippedSubviews:'ios'!==f.Platform.OS||n.index!==o},s.createElement(f.Animated.View,{style:[K.content,{top:p}]},u({route:t,jumpTo:xe})))})),s.createElement(h.default,{style:[K.bar,Y?{transform:[{translateY:ae.interpolate({inputRange:[0,1],outputRange:[fe.height,0]})}],position:we?'absolute':null}:null,q],pointerEvents:fe.measured?Y&&we?'none':'auto':'none',onLayout:pe},s.createElement(f.Animated.View,{style:[K.barContent,{backgroundColor:Ke}]},s.createElement(f.View,{style:[K.items,{marginBottom:D,maxWidth:Be}]},ne?s.createElement(f.Animated.View,{pointerEvents:"none",style:[K.ripple,{top:(56-Ne)/2,left:Fe*(n.index+.5)-Ne/2,height:Ne,width:Ne,borderRadius:Ne/2,backgroundColor:I({route:Pe[n.index]}),transform:[{scale:ce.interpolate({inputRange:[0,1],outputRange:[0,8]})}],opacity:ce.interpolate({inputRange:[0,.001,.3,1],outputRange:[0,0,1,1]})}]}):null,Pe.map(function(t,o){var l=n.index===o,u=ie[o],b=J&&ne?u.interpolate({inputRange:[0,1],outputRange:[.5,1]}):1,y=J?ne?u.interpolate({inputRange:[0,1],outputRange:[7,0]}):0:7,h=u,E=u.interpolate({inputRange:[0,1],outputRange:[1,0]}),S=W({route:t});return O({key:t.key,route:t,borderless:!0,centered:!0,rippleColor:_e,onPress:function(){return Ce(o)},testID:_({route:t}),accessibilityLabel:M({route:t}),accessibilityTraits:l?['button','selected']:'button',accessibilityComponentType:'button',accessibilityRole:'button',accessibilityState:{selected:l},style:K.item,children:s.createElement(f.View,{pointerEvents:"none"},s.createElement(f.Animated.View,{style:[K.iconContainer,{transform:[{translateY:y}]}]},s.createElement(f.Animated.View,{style:[K.iconWrapper,{opacity:h}]},c?c({route:t,focused:!0,color:Me}):s.createElement(v.default,{source:t.icon,color:Me,size:24})),s.createElement(f.Animated.View,{style:[K.iconWrapper,{opacity:E}]},c?c({route:t,focused:!1,color:ze}):s.createElement(v.default,{source:t.icon,color:ze,size:24})),s.createElement(f.View,{style:[K.badgeContainer,{right:(null!=S&&'boolean'!=typeof S?-2*String(S).length:0)-2}]},'boolean'==typeof S?s.createElement(w.default,{visible:S,size:8}):s.createElement(w.default,{visible:null!=S,size:16},S))),J?s.createElement(f.Animated.View,{style:[K.labelContainer,{transform:[{scale:b}]}]},s.createElement(f.Animated.View,{style:[K.labelWrapper,{opacity:h}]},p?p({route:t,focused:!0,color:Me}):s.createElement(k.default,{style:[K.label,{color:Me}]},j({route:t}))),ne?null:s.createElement(f.Animated.View,{style:[K.labelWrapper,{opacity:E}]},p?p({route:t,focused:!1,color:ze}):s.createElement(k.default,{selectable:!1,style:[K.label,{color:ze}]},j({route:t})))):s.createElement(f.View,{style:K.labelContainer}))})})))))};T.SceneMap=function(t){return function(n){var o=n.route,l=n.jumpTo;return s.createElement(W,{key:o.key,component:t[o.key?o.key:''],route:o,jumpTo:l})}};var I=(0,O.withTheme)(T);e.default=I;var K=f.StyleSheet.create({container:{flex:1,overflow:'hidden'},content:{flex:1},bar:{left:0,right:0,bottom:0,elevation:4},barContent:{alignItems:'center',overflow:'hidden'},items:{flexDirection:'row',width:'100%'},item:{flex:1,paddingVertical:6},ripple:{position:'absolute'},iconContainer:{height:24,width:24,marginTop:2,marginHorizontal:12,alignSelf:'center'},iconWrapper:A(A({},f.StyleSheet.absoluteFillObject),{},{alignItems:'center'}),labelContainer:{height:16,paddingBottom:2},labelWrapper:A({},f.StyleSheet.absoluteFillObject),label:A({fontSize:12,textAlign:'center',backgroundColor:'transparent'},'web'===f.Platform.OS?{whiteSpace:'nowrap',alignSelf:'center'}:null),badgeContainer:{position:'absolute',left:0,top:-2}})},560,[1,54,27,19,9,60,6,10,561,504,535,538,558,555,545,542,496,497,562,564,565]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isIphoneX=n,e.ifIphoneX=o,e.getStatusBarHeight=function(n){return t.Platform.select({ios:o(n?44:30,20),android:t.StatusBar.currentHeight,default:0})},e.getBottomSpace=function(){return n()?34:0};var t=r(d[0]);function n(){var n=t.Dimensions.get('window');return!('ios'!==t.Platform.OS||t.Platform.isPad||t.Platform.isTVOS||780!==n.height&&780!==n.width&&812!==n.height&&812!==n.width&&844!==n.height&&844!==n.width&&896!==n.height&&896!==n.width&&926!==n.height&&926!==n.width)}function o(t,o){return n()?t:o}},561,[10]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return(0,u.default)(function(){return new t.Animated.Value(n)}).current};var t=r(d[1]),u=n(r(d[2]))},562,[1,10,563]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){var u=t.useRef();void 0===u.current&&(u.current=n());return u};var t=(function(t,u){if(!u&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=n(u);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var l=c?Object.getOwnPropertyDescriptor(t,p):null;l&&(l.get||l.set)?Object.defineProperty(f,p,l):f[p]=t[p]}f.default=t,o&&o.set(t,f);return f})(r(d[0]));function n(t){if("function"!=typeof WeakMap)return null;var u=new WeakMap,o=new WeakMap;return(n=function(t){return t?o:u})(t)}},563,[6]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(u){var f=t.useRef([]);return f.current.length=u.length,u.forEach(function(t,u){var o;f.current[u]=null!=(o=f.current[u])?o:new n.Animated.Value(t)}),f.current};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var f=u(n);if(f&&f.has(t))return f.get(t);var o={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(o,l,p):o[l]=t[l]}o.default=t,f&&f.set(t,o);return o})(r(d[0])),n=r(d[1]);function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,f=new WeakMap;return(u=function(t){return t?f:n})(t)}},564,[6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=u.useState({height:0,width:0,measured:!1}),o=(0,n.default)(t,2),f=o[0],c=o[1],l=u.useCallback(function(t){var n=t.nativeEvent.layout,u=n.height,o=n.width;u===f.height&&o===f.width||c({height:u,width:o,measured:!0})},[f.height,f.width]);return[f,l]};var n=t(r(d[1])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var h=c?Object.getOwnPropertyDescriptor(t,l):null;h&&(h.get||h.set)?Object.defineProperty(f,l,h):f[l]=t[l]}f.default=t,u&&u.set(t,f);return f})(r(d[2]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}},565,[1,19,6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=b(n);if(o&&o.has(t))return o.get(t);var l={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var c=s?Object.getOwnPropertyDescriptor(t,u):null;c&&(c.get||c.set)?Object.defineProperty(l,u,c):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),s=r(d[4]),u=t(r(d[5])),c=t(r(d[6])),f=t(r(d[7])),v=t(r(d[8])),p=t(r(d[9])),y=r(d[10]);function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(b=function(t){return t?o:n})(t)}var h=function(t){var u=t.elevation,c=void 0===u?1:u,f=t.onLongPress,v=t.onPress,y=t.children,b=t.style,h=t.theme,O=t.testID,w=t.accessible,j=(0,o.default)(t,["elevation","onLongPress","onPress","children","style","theme","testID","accessible"]),k=l.useRef(new s.Animated.Value(c)).current,C=h.roundness,D=l.Children.count(y),E=l.Children.map(y,function(t){return l.isValidElement(t)&&t.type?t.type.displayName:null});return l.createElement(p.default,(0,n.default)({style:[{borderRadius:C,elevation:k},b]},j),l.createElement(s.TouchableWithoutFeedback,{delayPressIn:0,disabled:!(v||f),onLongPress:f,onPress:v,onPressIn:v?function(){var t=h.dark,n=h.mode,o=h.animation.scale;s.Animated.timing(k,{toValue:8,duration:150*o,useNativeDriver:!t||'exact'===n}).start()}:void 0,onPressOut:v?function(){var t=h.dark,n=h.mode,o=h.animation.scale;s.Animated.timing(k,{toValue:c,duration:150*o,useNativeDriver:!t||'exact'===n}).start()}:void 0,testID:O,accessible:w},l.createElement(s.View,{style:P.innerContainer},l.Children.map(y,function(t,n){return l.isValidElement(t)?l.cloneElement(t,{index:n,total:D,siblings:E}):t}))))};h.Content=u.default,h.Actions=c.default,h.Cover=f.default,h.Title=v.default;var P=s.StyleSheet.create({innerContainer:{flexGrow:1,flexShrink:1}}),O=(0,y.withTheme)(h);e.default=O},566,[1,9,60,6,10,567,568,569,570,558,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var l={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in t)if("default"!==p&&Object.prototype.hasOwnProperty.call(t,p)){var c=f?Object.getOwnPropertyDescriptor(t,p):null;c&&(c.get||c.set)?Object.defineProperty(l,p,c):l[p]=t[p]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),f=r(d[4]);function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}var p=function(t){var u,p,s,y=t.index,v=t.total,b=t.siblings,O=t.style,w=(0,o.default)(t,["index","total","siblings","style"]),h='withTheme(CardCover)',j='withTheme(CardTitle)';return'number'==typeof y&&b&&(p=b[y-1],s=b[y+1]),p===h&&s===h||p===j&&s===j||1===v?u=c.only:0===y?u=s===h||s===j?c.only:c.first:'number'==typeof v&&y===v-1?u=p===h||p===j?c.only:c.last:p===h||p===j?u=c.first:s!==h&&s!==j||(u=c.last),l.createElement(f.View,(0,n.default)({},w,{style:[c.container,u,O]}))};p.displayName='Card.Content';var c=f.StyleSheet.create({container:{paddingHorizontal:16},first:{paddingTop:16},last:{paddingBottom:16},only:{paddingVertical:16}}),s=p;e.default=s},567,[1,9,60,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=l(n);if(o&&o.has(t))return o.get(t);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var p=u?Object.getOwnPropertyDescriptor(t,f):null;p&&(p.get||p.set)?Object.defineProperty(c,f,p):c[f]=t[f]}c.default=t,o&&o.set(t,c);return c})(r(d[2])),c=r(d[3]);function l(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(l=function(t){return t?o:n})(t)}var u=function(t){return o.createElement(c.View,(0,n.default)({},t,{style:[f.container,t.style]}),o.Children.map(t.children,function(t){return o.isValidElement(t)?o.cloneElement(t,{compact:!1!==t.props.compact}):t}))};u.displayName='Card.Actions';var f=c.StyleSheet.create({container:{flexDirection:'row',alignItems:'center',justifyContent:'flex-start',padding:8}}),p=u;e.default=p},568,[1,9,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.CardCover=e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var c=f?Object.getOwnPropertyDescriptor(t,l):null;c&&(c.get||c.set)?Object.defineProperty(u,l,c):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[3])),f=r(d[4]),l=r(d[5]),c=r(d[6]);function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}var s=function(t){var l,c=t.index,p=t.total,s=t.style,v=t.theme,h=(0,o.default)(t,["index","total","style","theme"]),b=v.roundness;return 0===c?l=1===p?{borderRadius:b}:{borderTopLeftRadius:b,borderTopRightRadius:b}:'number'==typeof p&&c===p-1&&(l={borderBottomLeftRadius:b}),u.createElement(f.View,{style:[y.container,l,s]},u.createElement(f.Image,(0,n.default)({},h,{style:[y.image,l]})))};e.CardCover=s,s.displayName='Card.Cover';var y=f.StyleSheet.create({container:{height:195,backgroundColor:c.grey200,overflow:'hidden'},image:{flex:1,height:void 0,width:void 0,padding:16,justifyContent:'flex-end'}}),v=(0,l.withTheme)(s);e.default=v},569,[1,9,60,6,10,497,496]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.CardTitle=e.default=void 0;var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=c(n);if(l&&l.has(t))return l.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if("default"!==o&&Object.prototype.hasOwnProperty.call(t,o)){var s=f?Object.getOwnPropertyDescriptor(t,o):null;s&&(s.get||s.set)?Object.defineProperty(u,o,s):u[o]=t[o]}u.default=t,l&&l.set(t,u);return u})(r(d[1])),l=r(d[2]),u=r(d[3]),f=t(r(d[4])),o=t(r(d[5]));function c(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(c=function(t){return t?l:n})(t)}var s=function(t){var u=t.title,c=t.titleStyle,s=t.titleNumberOfLines,p=void 0===s?1:s,b=t.subtitle,h=t.subtitleStyle,v=t.subtitleNumberOfLines,w=void 0===v?1:v,O=t.left,j=t.leftStyle,C=t.right,E=t.rightStyle,P=t.style;return n.createElement(l.View,{style:[y.container,{minHeight:b||O||C?72:50},P]},O?n.createElement(l.View,{style:[y.left,j]},O({size:40})):null,n.createElement(l.View,{style:[y.titles]},u?n.createElement(o.default,{style:[y.title,{marginBottom:b?0:2},c],numberOfLines:p},u):null,b?n.createElement(f.default,{style:[y.subtitle,h],numberOfLines:w},b):null),n.createElement(l.View,{style:E},C?C({size:24}):null))};e.CardTitle=s,s.displayName='Card.Title';var y=l.StyleSheet.create({container:{flexDirection:'row',alignItems:'center',justifyContent:'space-between',paddingLeft:16},left:{justifyContent:'center',marginRight:16,height:40,width:40},titles:{flex:1,flexDirection:'column',justifyContent:'center'},title:{minHeight:30},subtitle:{minHeight:20,marginVertical:0}}),p=(0,u.withTheme)(s);e.default=p},570,[1,6,10,497,571,573]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var p=l?Object.getOwnPropertyDescriptor(t,c):null;p&&(p.get||p.set)?Object.defineProperty(f,c,p):f[c]=t[c]}f.default=t,u&&u.set(t,f);return f})(r(d[2])),f=r(d[3]),l=t(r(d[4]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}var c=function(t){return u.createElement(l.default,(0,n.default)({},t,{alpha:.54,family:"regular",style:[p.text,t.style]}))};e.default=c;var p=f.StyleSheet.create({text:{fontSize:12,lineHeight:20,marginVertical:2,letterSpacing:.4}})},571,[1,9,6,10,572]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),c=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var f={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var u=l?Object.getOwnPropertyDescriptor(t,c):null;u&&(u.get||u.set)?Object.defineProperty(f,c,u):f[c]=t[c]}f.default=t,o&&o.set(t,f);return f})(r(d[5])),u=r(d[6]),p=t(r(d[7])),y=r(d[8]);function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function O(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(t);n&&(f=f.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,f)}return o}function b(t){for(var n=1;nC.width-8&&(V=C.width-8-L.width));var _=0;(S>=C.height-L.height-8-M&&S<=C.height-S?_=C.height-S-8-M:S>=C.height-L.height-8-M&&S>=C.height-S&&S<=L.height-E.height+8-M&&(_=S+E.height-8+M),_=_>C.height-16?C.height-16:_,S<=C.height-L.height-8-M||S>=C.height-L.height-8-M&&S<=C.height-S)?(F.push({translateY:R.y.interpolate({inputRange:[0,L.height],outputRange:[-(_||L.height)/2,0]})}),S<8&&(S=8)):(F.push({translateY:R.y.interpolate({inputRange:[0,L.height],outputRange:[(_||L.height)/2,0]})}),(S+=E.height-(_||L.height))+(_||L.height)+M>C.height-8&&(S=_===C.height-16?-16:C.height-L.height-8-M));var H=A({opacity:x,transform:B,borderRadius:c.roundness},_?{height:_}:{}),N=A({top:this.isCoordinate(s)?S:S+M},y.I18nManager.isRTL?{right:V}:{left:V});return f.createElement(y.View,{ref:function(n){t.anchor=n},collapsable:!1},this.isCoordinate(s)?null:s,D?f.createElement(v.default,null,f.createElement(y.TouchableWithoutFeedback,{accessibilityLabel:O,accessibilityRole:"button",onPress:w},f.createElement(y.View,{style:y.StyleSheet.absoluteFill})),f.createElement(y.View,{ref:function(n){t.menu=n},collapsable:!1,accessibilityViewIsModal:o,style:[k.wrapper,N,l],pointerEvents:o?'box-none':'none',onAccessibilityEscape:w},f.createElement(y.Animated.View,{style:{transform:F}},f.createElement(b.default,{style:[k.shadowMenuContainer,H,u]},_&&f.createElement(y.ScrollView,null,h)||f.createElement(f.Fragment,null,h))))):null)}}],[{key:"getDerivedStateFromProps",value:function(t,n){return t.visible&&!n.rendered?{rendered:!0}:null}}]),P})(f.Component);j.Item=O.default,j.defaultProps={statusBarHeight:P.APPROX_STATUSBAR_HEIGHT,overlayAccessibilityLabel:'Close menu'};var k=y.StyleSheet.create({wrapper:{position:'absolute'},shadowMenuContainer:{opacity:0,paddingVertical:8,elevation:8}}),V=(0,w.withTheme)(j);e.default=V},599,[1,106,54,19,31,32,42,44,41,6,10,497,600,558,602,603]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),c=O(r(d[6])),p=t(r(d[7])),s=O(r(d[8])),v=r(d[9]),y=r(d[10]);function h(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(h=function(t){return t?u:n})(t)}function O(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=h(n);if(u&&u.has(t))return u.get(t);var o={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var c=f?Object.getOwnPropertyDescriptor(t,l):null;c&&(c.get||c.set)?Object.defineProperty(o,l,c):o[l]=t[l]}return o.default=t,u&&u.set(t,o),o}function P(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var b=(function(t){(0,o.default)(j,t);var h,O,b=(h=j,O=P(),function(){var t,n=(0,l.default)(h);if(O){var u=(0,l.default)(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return(0,f.default)(this,t)});function j(){return(0,n.default)(this,j),b.apply(this,arguments)}return(0,u.default)(j,[{key:"render",value:function(){var t=this.props,n=t.children,u=t.theme;return c.createElement(v.Consumer,null,function(t){return c.createElement(s.PortalContext.Consumer,null,function(o){return c.createElement(p.default,{manager:o},c.createElement(v.Provider,{value:t},c.createElement(y.ThemeProvider,{theme:u},n)))})})}}]),j})(c.Component);b.Host=s.default;var j=(0,y.withTheme)(b);e.default=j},600,[1,31,32,42,44,41,6,601,531,514,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function p(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var h=(function(t){(0,c.default)(v,t);var s,h,y=(s=v,h=p(),function(){var t,n=(0,f.default)(s);if(h){var o=(0,f.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,l.default)(this,t)});function v(){return(0,o.default)(this,v),y.apply(this,arguments)}return(0,u.default)(v,[{key:"componentDidMount",value:function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return this.checkManager(),t.next=3,n.default.awrap(Promise.resolve());case 3:this.key=this.props.manager.mount(this.props.children);case 4:case"end":return t.stop()}},null,this,null,Promise)}},{key:"componentDidUpdate",value:function(){this.checkManager(),this.props.manager.update(this.key,this.props.children)}},{key:"componentWillUnmount",value:function(){this.checkManager(),this.props.manager.unmount(this.key)}},{key:"checkManager",value:function(){if(!this.props.manager)throw new Error("Looks like you forgot to wrap your root component with `Provider` component from `react-native-paper`.\n\nPlease read our getting-started guide and make sure you've followed all the required steps.\n\nhttps://callstack.github.io/react-native-paper/getting-started.html")}},{key:"render",value:function(){return null}}]),v})((function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[7])).Component);e.default=h},601,[1,106,31,32,42,44,41,6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.MenuItem=p,e.default=void 0;var n=t(r(d[1])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=b(n);if(l&&l.has(t))return l.get(t);var o={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var u=c?Object.getOwnPropertyDescriptor(t,s):null;u&&(u.get||u.set)?Object.defineProperty(o,s,u):o[s]=t[s]}o.default=t,l&&l.set(t,o);return o})(r(d[2])),o=r(d[3]),c=t(r(d[4])),s=t(r(d[5])),u=t(r(d[6])),f=r(d[7]),y=r(d[8]);function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(b=function(t){return t?l:n})(t)}function p(t){var b=t.icon,p=t.title,w=t.disabled,v=t.onPress,O=t.style,W=t.contentStyle,j=t.testID,E=t.titleStyle,P=t.accessibilityLabel,x=(0,y.useTheme)(),M=(0,n.default)(x.dark?f.white:f.black).alpha(.32).rgb().string(),I=w?M:(0,n.default)(x.colors.text).alpha(.87).rgb().string(),S=w?M:(0,n.default)(x.colors.text).alpha(.54).rgb().string();return l.createElement(s.default,{style:[h.container,O],onPress:v,disabled:w,testID:j,accessibilityLabel:P,accessibilityRole:"menuitem",accessibilityState:{disabled:w}},l.createElement(o.View,{style:h.row},b?l.createElement(o.View,{style:[h.item,h.icon],pointerEvents:"box-none"},l.createElement(c.default,{source:b,size:24,color:S})):null,l.createElement(o.View,{style:[h.item,h.content,b?h.widthWithIcon:null,W],pointerEvents:"none"},l.createElement(u.default,{selectable:!1,numberOfLines:1,style:[h.title,{color:I},E]},p))))}p.displayName='Menu.Item';var h=o.StyleSheet.create({container:{paddingHorizontal:8,minWidth:112,maxWidth:280,height:48,justifyContent:'center'},row:{flexDirection:'row'},icon:{width:40},title:{fontSize:16},item:{marginHorizontal:8},content:{justifyContent:'center',minWidth:96,maxWidth:264},widthWithIcon:{maxWidth:192}}),w=p;e.default=w},602,[1,504,6,10,538,545,542,496,497]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APPROX_STATUSBAR_HEIGHT=void 0;var o,l,n,t,s=r(d[0]),u=null!=(o=null==(l=s.NativeModules.NativeUnimoduleProxy)?void 0:null==(n=l.modulesConstants)?void 0:null==(t=n.ExponentConstants)?void 0:t.statusBarHeight)?o:0,v=s.Platform.select({android:u,ios:s.Platform.Version<11?u:0});e.APPROX_STATUSBAR_HEIGHT=v},603,[10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=p(n);if(u&&u.has(t))return u.get(t);var o={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var c=l?Object.getOwnPropertyDescriptor(t,s):null;c&&(c.get||c.set)?Object.defineProperty(o,s,c):o[s]=t[s]}o.default=t,u&&u.set(t,o);return o})(r(d[4])),s=r(d[5]),c=t(r(d[6])),f=r(d[7]);function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(p=function(t){return t?u:n})(t)}var v=s.I18nManager.isRTL,y=s.StyleSheet.create({container:{height:4,overflow:'hidden'},progressBar:{flex:1}}),b=(0,f.withTheme)(function(t){var f=t.color,p=t.indeterminate,b=t.style,w=t.progress,h=void 0===w?0:w,R=t.visible,O=void 0===R||R,V=t.theme,A=(0,o.default)(t,["color","indeterminate","style","progress","visible","theme"]),j=l.useRef(new s.Animated.Value(0)).current,k=l.useRef(new s.Animated.Value(0)).current,P=l.useState(0),D=(0,u.default)(P,2),E=D[0],M=D[1],_=l.useState(0),I=(0,u.default)(_,2),S=I[0],C=I[1],N=l.useRef(null),W=V.animation.scale,B=l.useCallback(function(){s.Animated.timing(k,{duration:200*W,toValue:1,useNativeDriver:!0,isInteraction:!1}).start(),p?(N.current||(N.current=s.Animated.timing(j,{duration:2e3,toValue:1,useNativeDriver:'web'!==s.Platform.OS,isInteraction:!1})),j.setValue(0),s.Animated.loop(N.current).start()):s.Animated.timing(j,{duration:200*W,toValue:h||0,useNativeDriver:!0,isInteraction:!1}).start()},[W,j,h,p,k]),L=l.useCallback(function(){N.current&&N.current.stop(),s.Animated.timing(k,{duration:200*W,toValue:0,useNativeDriver:!0,isInteraction:!1}).start()},[k,W]);l.useEffect(function(){O?B():L()},[O,B,L]),l.useEffect(function(){O&&0===S&&B()},[S,B,O]);var T=f||V.colors.primary,X=(0,c.default)(T).alpha(.38).rgb().string();return l.createElement(s.View,(0,n.default)({onLayout:function(t){C(E),M(t.nativeEvent.layout.width)}},A,{accessible:!0,accessibilityRole:"progressbar"}),l.createElement(s.Animated.View,{style:[y.container,{backgroundColor:X,opacity:k},b]},l.createElement(s.Animated.View,{style:[y.progressBar,{backgroundColor:T,width:E,transform:[{translateX:j.interpolate(p?{inputRange:[0,.5,1],outputRange:[.5*(v?1:-1)*E,.5*(v?1:-1)*.6*E,.7*(v?-1:1)*E]}:{inputRange:[0,1],outputRange:[.5*(v?1:-1)*E,0]})},{scaleX:j.interpolate(p?{inputRange:[0,.5,1],outputRange:[1e-4,.6,1e-4]}:{inputRange:[0,1],outputRange:[1e-4,1]})}]}]})))});e.default=b},604,[1,9,19,60,6,10,504,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),n=t(r(d[5])),v=t(r(d[6])),_=(0,u.default)(f.default,{Group:l.default,Android:o.default,IOS:n.default,Item:v.default});e.default=_},605,[1,9,606,608,607,610,611]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RadioButton=e.default=void 0;var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=c(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=f?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(u,l,p):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[1])),o=r(d[2]),u=t(r(d[3])),f=t(r(d[4])),l=r(d[5]);function c(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(c=function(t){return t?o:n})(t)}var p=function(t){var l=o.Platform.select({default:u.default,ios:f.default});return n.createElement(l,t)},v=(0,l.withTheme)(p);e.default=v;var s=(0,l.withTheme)(p);e.RadioButton=s},606,[1,6,10,607,610,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RadioButtonAndroid=e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=v(n);if(o&&o.has(t))return o.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var c=u?Object.getOwnPropertyDescriptor(t,s):null;c&&(c.get||c.set)?Object.defineProperty(l,s,c):l[s]=t[s]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),u=r(d[4]),s=t(r(d[5])),c=r(d[6]),f=r(d[7]),b=t(r(d[8])),h=r(d[9]);function v(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(v=function(t){return t?o:n})(t)}var p=function(t){var h=t.disabled,v=t.onPress,p=t.theme,w=t.value,C=t.status,k=t.testID,R=(0,o.default)(t,["disabled","onPress","theme","value","status","testID"]),V=l.useRef(new u.Animated.Value(2)).current,P=l.useRef(new u.Animated.Value(1)).current,A=l.useRef(!0),O=p.animation.scale;l.useEffect(function(){A.current?A.current=!1:'checked'===C?(P.setValue(1.2),u.Animated.timing(P,{toValue:1,duration:150*O,useNativeDriver:!0}).start()):(V.setValue(10),u.Animated.timing(V,{toValue:2,duration:150*O,useNativeDriver:!1}).start())},[C,V,P,O]);var j,_,D=R.color||p.colors.accent,E=R.uncheckedColor||(0,s.default)(p.colors.text).alpha(p.dark?.7:.54).rgb().string();return l.createElement(c.RadioButtonContext.Consumer,null,function(t){var o='checked'===(0,f.isChecked)({contextValue:null==t?void 0:t.value,status:C,value:w});return h?(j=(0,s.default)(p.colors.text).alpha(.16).rgb().string(),_=p.colors.disabled):(j=(0,s.default)(D).fade(.32).rgb().string(),_=o?D:E),l.createElement(b.default,(0,n.default)({},R,{borderless:!0,rippleColor:j,onPress:h?void 0:function(){(0,f.handlePress)({onPress:v,onValueChange:null==t?void 0:t.onValueChange,value:w})},accessibilityTraits:h?['button','disabled']:'button',accessibilityComponentType:o?'radiobutton_checked':'radiobutton_unchecked',accessibilityRole:"radio",accessibilityState:{disabled:h,checked:o},accessibilityLiveRegion:"polite",style:y.container,testID:k}),l.createElement(u.Animated.View,{style:[y.radio,{borderColor:_,borderWidth:V}]},o?l.createElement(u.View,{style:[u.StyleSheet.absoluteFill,y.radioContainer]},l.createElement(u.Animated.View,{style:[y.dot,{backgroundColor:_,transform:[{scale:P}]}]})):null))})};p.displayName='RadioButton.Android';var y=u.StyleSheet.create({container:{borderRadius:18},radioContainer:{alignItems:'center',justifyContent:'center'},radio:{height:20,width:20,borderRadius:10,margin:8},dot:{height:10,width:10,borderRadius:5}}),w=(0,h.withTheme)(p);e.default=w;var C=(0,h.withTheme)(p);e.RadioButtonAndroid=C},607,[1,9,60,6,10,504,608,609,545,497]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.RadioButtonGroup=e.default=e.RadioButtonContext=void 0;var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var p=c?Object.getOwnPropertyDescriptor(t,f):null;p&&(p.get||p.set)?Object.defineProperty(l,f,p):l[f]=t[f]}l.default=t,u&&u.set(t,l);return l})(r(d[0])),n=r(d[1]);function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}var u=t.createContext(null);e.RadioButtonContext=u;var l=function(o){var l=o.value,c=o.onValueChange,f=o.children;return t.createElement(u.Provider,{value:{value:l,onValueChange:c}},t.createElement(n.View,{accessible:!0,accessibilityRole:"radiogroup"},f))};e.RadioButtonGroup=l,l.displayName='RadioButton.Group';var c=l;e.default=c},608,[6,10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isChecked=e.handlePress=void 0;e.handlePress=function(n){var u=n.onPress,l=n.value,c=n.onValueChange;c?c(l):null==u||u()};e.isChecked=function(n){var u=n.value,l=n.status,c=n.contextValue;return void 0!==c&&null!==c?c===u?'checked':'unchecked':l}},609,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RadioButtonIOS=e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=y(n);if(o&&o.has(t))return o.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var s=u?Object.getOwnPropertyDescriptor(t,c):null;s&&(s.get||s.set)?Object.defineProperty(l,c,s):l[c]=t[c]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),u=r(d[4]),c=t(r(d[5])),s=r(d[6]),f=r(d[7]),b=t(r(d[8])),p=t(r(d[9])),v=r(d[10]);function y(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(y=function(t){return t?o:n})(t)}var h=function(t){var v,y=t.disabled,h=t.onPress,P=t.theme,k=t.status,w=t.value,_=t.testID,j=(0,o.default)(t,["disabled","onPress","theme","status","value","testID"]),C=y?P.colors.disabled:j.color||P.colors.accent;return v=y?(0,c.default)(P.colors.text).alpha(.16).rgb().string():(0,c.default)(C).fade(.32).rgb().string(),l.createElement(s.RadioButtonContext.Consumer,null,function(t){var o='checked'===(0,f.isChecked)({contextValue:null==t?void 0:t.value,status:k,value:w});return l.createElement(p.default,(0,n.default)({},j,{borderless:!0,rippleColor:v,onPress:y?void 0:function(){(0,f.handlePress)({onPress:h,value:w,onValueChange:null==t?void 0:t.onValueChange})},accessibilityTraits:y?['button','disabled']:'button',accessibilityComponentType:o?'radiobutton_checked':'radiobutton_unchecked',accessibilityRole:"radio",accessibilityState:{disabled:y,checked:o},accessibilityLiveRegion:"polite",style:O.container,testID:_}),l.createElement(u.View,{style:{opacity:o?1:0}},l.createElement(b.default,{allowFontScaling:!1,name:"check",size:24,color:C,direction:"ltr"})))})};h.displayName='RadioButton.IOS';var O=u.StyleSheet.create({container:{borderRadius:18,padding:6}}),P=(0,v.withTheme)(h);e.default=P;var k=(0,v.withTheme)(h);e.RadioButtonIOS=k},610,[1,9,60,6,10,504,608,609,515,545,497]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RadioButtonItem=e.default=void 0;var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=b(n);if(l&&l.has(t))return l.get(t);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var s=u?Object.getOwnPropertyDescriptor(t,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=t[c]}o.default=t,l&&l.set(t,o);return o})(r(d[1])),l=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),s=t(r(d[6])),f=t(r(d[7])),p=t(r(d[8])),v=t(r(d[9])),y=t(r(d[10]));function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(b=function(t){return t?l:n})(t)}var h=function(t){var o,b=t.value,h=t.label,w=t.style,P=t.labelStyle,j=t.onPress,E=t.disabled,C=t.color,I=t.uncheckedColor,_=t.status,k=t.theme.colors,D=t.accessibilityLabel,M=t.testID,x=t.mode,B={value:b,disabled:E,status:_,color:C,uncheckedColor:I};return o='android'===x?n.createElement(v.default,B):'ios'===x?n.createElement(y.default,B):n.createElement(f.default,B),n.createElement(u.RadioButtonContext.Consumer,null,function(t){return n.createElement(s.default,{onPress:E?void 0:function(){return(0,c.handlePress)({onPress:j,onValueChange:null==t?void 0:t.onValueChange,value:b})},accessibilityLabel:D,testID:M},n.createElement(l.View,{style:[O.container,w],pointerEvents:"none"},n.createElement(p.default,{style:[O.label,{color:k.text},P]},h),o))})};h.displayName='RadioButton.Item';var w=(0,o.withTheme)(h);e.default=w;var P=(0,o.withTheme)(h);e.RadioButtonItem=P;var O=l.StyleSheet.create({container:{flexDirection:'row',alignItems:'center',justifyContent:'space-between',paddingVertical:8,paddingHorizontal:16},label:{fontSize:16,flex:1}})},611,[1,6,10,497,608,609,545,606,542,607,610]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),c=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=v(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var u=c?Object.getOwnPropertyDescriptor(t,s):null;u&&(u.get||u.set)?Object.defineProperty(l,s,u):l[s]=t[s]}l.default=t,o&&o.set(t,l);return l})(r(d[4])),s=r(d[5]),u=t(r(d[6])),f=t(r(d[7])),p=t(r(d[8])),b=r(d[9]),y=t(r(d[10]));function v(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(v=function(t){return t?o:n})(t)}function h(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function O(t){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,l=n>0?n:0;return Math.floor((l-t)/2+o)};e.calculateInputHeight=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2?arguments[2]:void 0,l=n>0?n:t;return n>0?n:lR.height,y=h?0:10,v=f.top,x=R.height/R.width,S=u(p.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),s?s.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0),w=l(S.interpolate({inputRange:[0,1,2],outputRange:[R.height,0===n?0:y,(0===n?v:0)-y*x]}),c),A=S.interpolate({inputRange:[0,1,1.0001,2],outputRange:[0,.3,1,1]}),Y=h?1:S.interpolate({inputRange:[0,1,2],outputRange:[1,1,R.width?1-2*y/R.width:1]}),O=h?0:0===n?S.interpolate({inputRange:[0,1,1.0001,2],outputRange:[0,0,(0,o.isIphoneX)()?38:0,10]}):10;return{cardStyle:{overflow:'hidden',borderTopLeftRadius:O,borderTopRightRadius:O,marginTop:0===n?0:v,marginBottom:0===n?0:y,transform:[{translateY:w},{scale:Y}]},overlayStyle:{opacity:A}}},e.forFadeFromBottomAndroid=function(t){var n=t.current,o=t.inverted,u=t.layouts.screen,s=t.closing,c=l(n.progress.interpolate({inputRange:[0,1],outputRange:[.08*u.height,0],extrapolate:'clamp'}),o);return{cardStyle:{opacity:(0,p.default)(s,n.progress,n.progress.interpolate({inputRange:[0,.5,.9,1],outputRange:[0,.25,.7,1]})),transform:[{translateY:c}]}}},e.forRevealFromBottomAndroid=function(t){var n=t.current,o=t.next,p=t.inverted,u=t.layouts.screen,s=l(n.progress.interpolate({inputRange:[0,1],outputRange:[u.height,0],extrapolate:'clamp'}),p),c=l(n.progress.interpolate({inputRange:[0,1],outputRange:[.9590000000000001*u.height*-1,0],extrapolate:'clamp'}),p),R=o?l(o.progress.interpolate({inputRange:[0,1],outputRange:[0,.02*u.height*-1],extrapolate:'clamp'}),p):0,f=n.progress.interpolate({inputRange:[0,.36,1],outputRange:[0,.1,.1],extrapolate:'clamp'});return{containerStyle:{overflow:'hidden',transform:[{translateY:s}]},cardStyle:{transform:[{translateY:c},{translateY:R}]},overlayStyle:{opacity:f}}},e.forScaleFromCenterAndroid=function(t){var n=t.current,o=t.next,l=t.closing,s=u(n.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),o?o.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0),c=s.interpolate({inputRange:[0,.75,.875,1,1.0825,1.2075,2],outputRange:[0,0,1,1,1,1,0]}),R=(0,p.default)(l,n.progress.interpolate({inputRange:[0,1],outputRange:[.9,1],extrapolate:'clamp'}),s.interpolate({inputRange:[0,1,2],outputRange:[.85,1,1.1]}));return{containerStyle:{opacity:c,transform:[{scale:R}]}}},e.forNoAnimation=function(){return{}};var n=r(d[1]),o=r(d[2]),p=t(r(d[3])),u=n.Animated.add,l=n.Animated.multiply},643,[1,10,561,644]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,l,o){return n(u(t,l),u(t.interpolate({inputRange:[0,1],outputRange:[1,0]}),o))};var t=r(d[0]),n=t.Animated.add,u=t.Animated.multiply},644,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.forUIKit=function(o){var p=o.current,u=o.next,l=o.layouts,s=l.leftLabel?(l.screen.width-l.leftLabel.width)/2-27:100,R=l.title?(l.screen.width-l.title.width)/2-27:100,c=l.screen.width/4,f=n(p.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),u?u.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0);return{leftButtonStyle:{opacity:f.interpolate({inputRange:[.3,1,1.5],outputRange:[0,1,0]})},leftLabelStyle:{transform:[{translateX:f.interpolate({inputRange:[0,1,2],outputRange:t.I18nManager.isRTL?[-c,0,s]:[s,0,-c]})}]},rightButtonStyle:{opacity:f.interpolate({inputRange:[.3,1,1.5],outputRange:[0,1,0]})},titleStyle:{opacity:f.interpolate({inputRange:[0,.4,1,1.5],outputRange:[0,.1,1,0]}),transform:[{translateX:f.interpolate({inputRange:[.5,1,2],outputRange:t.I18nManager.isRTL?[-R,0,c]:[c,0,-R]})}]},backgroundStyle:{transform:[{translateX:f.interpolate({inputRange:[0,1,2],outputRange:t.I18nManager.isRTL?[-l.screen.width,0,l.screen.width]:[l.screen.width,0,-l.screen.width]})}]}}},e.forFade=function(t){var o=t.current,p=t.next,u=n(o.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),p?p.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0),l=u.interpolate({inputRange:[0,1,2],outputRange:[0,1,0]});return{leftButtonStyle:{opacity:l},rightButtonStyle:{opacity:l},titleStyle:{opacity:l},backgroundStyle:{opacity:u.interpolate({inputRange:[0,1,1.9,2],outputRange:[0,1,1,0]})}}},e.forSlideLeft=function(o){var p=o.current,u=o.next,l=o.layouts.screen,s=[{translateX:n(p.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),u?u.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0).interpolate({inputRange:[0,1,2],outputRange:t.I18nManager.isRTL?[-l.width,0,l.width]:[l.width,0,-l.width]})}];return{leftButtonStyle:{transform:s},rightButtonStyle:{transform:s},titleStyle:{transform:s},backgroundStyle:{transform:s}}},e.forSlideRight=function(o){var p=o.current,u=o.next,l=o.layouts.screen,s=[{translateX:n(p.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),u?u.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0).interpolate({inputRange:[0,1,2],outputRange:t.I18nManager.isRTL?[l.width,0,-l.width]:[-l.width,0,l.width]})}];return{leftButtonStyle:{transform:s},rightButtonStyle:{transform:s},titleStyle:{transform:s},backgroundStyle:{transform:s}}},e.forSlideUp=function(t){var o=t.current,p=t.next,u=t.layouts.header,l=[{translateY:n(o.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}),p?p.progress.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:'clamp'}):0).interpolate({inputRange:[0,1,2],outputRange:[-u.height,0,-u.height]})}];return{leftButtonStyle:{transform:l},rightButtonStyle:{transform:l},titleStyle:{transform:l},backgroundStyle:{transform:l}}},e.forNoAnimation=function(){return{}};var t=r(d[0]),n=t.Animated.add},645,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ScaleFromCenterAndroidSpec=e.RevealFromBottomAndroidSpec=e.FadeOutToBottomAndroidSpec=e.FadeInFromBottomAndroidSpec=e.TransitionIOSSpec=void 0;var n=r(d[0]);e.TransitionIOSSpec={animation:'spring',config:{stiffness:1e3,damping:500,mass:3,overshootClamping:!0,restDisplacementThreshold:10,restSpeedThreshold:10}};var o={animation:'timing',config:{duration:350,easing:n.Easing.out(n.Easing.poly(5))}};e.FadeInFromBottomAndroidSpec=o;var t={animation:'timing',config:{duration:150,easing:n.Easing.in(n.Easing.linear)}};e.FadeOutToBottomAndroidSpec=t;var s={animation:'timing',config:{duration:425,easing:n.Easing.bezier(.35,.45,0,1)}};e.RevealFromBottomAndroidSpec=s;var c={animation:'timing',config:{duration:400,easing:n.Easing.bezier(.35,.45,0,1)}};e.ScaleFromCenterAndroidSpec=c},646,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ModalTransition=e.DefaultTransition=e.ScaleFromCenterAndroid=e.RevealFromBottomAndroid=e.FadeFromBottomAndroid=e.ModalPresentationIOS=e.ModalSlideFromBottomIOS=e.SlideFromRightIOS=void 0;var o=r(d[0]),t=r(d[1]),n=r(d[2]),l=r(d[3]),S={gestureDirection:'horizontal',transitionSpec:{open:l.TransitionIOSSpec,close:l.TransitionIOSSpec},cardStyleInterpolator:t.forHorizontalIOS,headerStyleInterpolator:n.forFade};e.SlideFromRightIOS=S;var c={gestureDirection:'vertical',transitionSpec:{open:l.TransitionIOSSpec,close:l.TransitionIOSSpec},cardStyleInterpolator:t.forVerticalIOS,headerStyleInterpolator:n.forFade};e.ModalSlideFromBottomIOS=c;var s={gestureDirection:'vertical',transitionSpec:{open:l.TransitionIOSSpec,close:l.TransitionIOSSpec},cardStyleInterpolator:t.forModalPresentationIOS,headerStyleInterpolator:n.forFade};e.ModalPresentationIOS=s;var p={gestureDirection:'vertical',transitionSpec:{open:l.FadeInFromBottomAndroidSpec,close:l.FadeOutToBottomAndroidSpec},cardStyleInterpolator:t.forFadeFromBottomAndroid,headerStyleInterpolator:n.forFade};e.FadeFromBottomAndroid=p;var F={gestureDirection:'vertical',transitionSpec:{open:l.RevealFromBottomAndroidSpec,close:l.RevealFromBottomAndroidSpec},cardStyleInterpolator:t.forRevealFromBottomAndroid,headerStyleInterpolator:n.forFade};e.RevealFromBottomAndroid=F;var I={gestureDirection:'horizontal',transitionSpec:{open:l.ScaleFromCenterAndroidSpec,close:l.ScaleFromCenterAndroidSpec},cardStyleInterpolator:t.forScaleFromCenterAndroid,headerStyleInterpolator:n.forFade};e.ScaleFromCenterAndroid=I;var f=o.Platform.select({ios:S,android:o.Platform.Version>=29?I:o.Platform.Version>=28?F:p,default:I});e.DefaultTransition=f;var v=o.Platform.select({ios:c,default:f});e.ModalTransition=v},647,[10,643,645,646]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var l=u?Object.getOwnPropertyDescriptor(t,f):null;l&&(l.get||l.set)?Object.defineProperty(c,f,l):c[f]=t[f]}c.default=t,o&&o.set(t,c);return c})(r(d[4])),f=r(d[5]),l=r(d[6]),s=t(r(d[7]));function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}function O(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function y(t){for(var n=1;n0&&n&&!t.defaultPrevented&&h.dispatch(y(y({},l.StackActions.popToTop()),{},{target:j.key}))})})},[h,j.index,j.key]),u.createElement(s.default,(0,n.default)({},b,{state:j,descriptors:w,navigation:h}))});e.default=b},648,[1,9,54,60,6,10,649,730]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={NavigationContainer:!0,useBackButton:!0,useScrollToTop:!0,DefaultTheme:!0,DarkTheme:!0,ThemeProvider:!0,useTheme:!0,Link:!0,useLinking:!0,useLinkTo:!0,useLinkProps:!0,useLinkBuilder:!0,ServerContainer:!0};Object.defineProperty(e,"NavigationContainer",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"useBackButton",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"useScrollToTop",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"DefaultTheme",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"DarkTheme",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"ThemeProvider",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"useTheme",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"Link",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"useLinking",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(e,"useLinkTo",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(e,"useLinkProps",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"useLinkBuilder",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(e,"ServerContainer",{enumerable:!0,get:function(){return T.default}});var u=r(d[1]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===u[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var o=t(r(d[2])),f=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),b=t(r(d[6])),p=t(r(d[7])),s=t(r(d[8])),y=t(r(d[9])),O=t(r(d[10])),P=t(r(d[11])),j=t(r(d[12])),k=t(r(d[13])),T=t(r(d[14])),h=r(d[15]);Object.keys(h).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===h[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}}))})},649,[1,650,710,719,720,713,721,711,722,723,716,725,724,726,727,729]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={BaseNavigationContainer:!0,createNavigatorFactory:!0,NavigationHelpersContext:!0,NavigationContext:!0,NavigationRouteContext:!0,CurrentRenderContext:!0,useNavigationBuilder:!0,useNavigation:!0,useRoute:!0,useFocusEffect:!0,useIsFocused:!0,useNavigationState:!0,getStateFromPath:!0,getPathFromState:!0,getActionFromState:!0,getFocusedRouteNameFromRoute:!0};Object.defineProperty(e,"BaseNavigationContainer",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"createNavigatorFactory",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"NavigationHelpersContext",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"NavigationContext",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"NavigationRouteContext",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"CurrentRenderContext",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"useNavigationBuilder",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"useRoute",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(e,"useFocusEffect",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(e,"useIsFocused",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"useNavigationState",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"getStateFromPath",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(e,"getPathFromState",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(e,"getActionFromState",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(e,"getFocusedRouteNameFromRoute",{enumerable:!0,get:function(){return R.default}});var u=r(d[1]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===u[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var o=t(r(d[2])),f=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),b=t(r(d[6])),s=t(r(d[7])),p=t(r(d[8])),y=t(r(d[9])),O=t(r(d[10])),P=t(r(d[11])),j=t(r(d[12])),v=t(r(d[13])),N=t(r(d[14])),F=t(r(d[15])),C=t(r(d[16])),R=t(r(d[17])),h=r(d[18]);Object.keys(h).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===h[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}}))})},650,[1,651,659,673,675,665,664,676,677,694,695,696,697,698,699,707,708,709,685]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={CommonActions:!0,BaseRouter:!0,StackRouter:!0,StackActions:!0,TabRouter:!0,TabActions:!0,DrawerRouter:!0,DrawerActions:!0};Object.defineProperty(e,"BaseRouter",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"StackRouter",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"StackActions",{enumerable:!0,get:function(){return c.StackActions}}),Object.defineProperty(e,"TabRouter",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"TabActions",{enumerable:!0,get:function(){return f.TabActions}}),Object.defineProperty(e,"DrawerRouter",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"DrawerActions",{enumerable:!0,get:function(){return b.DrawerActions}}),e.CommonActions=void 0;var o=s(r(d[1]));e.CommonActions=o;var u=t(r(d[2])),c=s(r(d[3])),f=s(r(d[4])),b=s(r(d[5])),l=r(d[6]);function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}function s(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var b=c?Object.getOwnPropertyDescriptor(t,f):null;b&&(b.get||b.set)?Object.defineProperty(u,f,b):u[f]=t[f]}return u.default=t,o&&o.set(t,u),u}Object.keys(l).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===l[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}}))})},651,[1,652,653,655,656,657,658]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.goBack=function(){return{type:'GO_BACK'}},e.navigate=function(){if('string'==typeof(arguments.length<=0?void 0:arguments[0]))return{type:'NAVIGATE',payload:{name:arguments.length<=0?void 0:arguments[0],params:arguments.length<=1?void 0:arguments[1]}};var t=(arguments.length<=0?void 0:arguments[0])||{};if(!t.hasOwnProperty('key')&&!t.hasOwnProperty('name'))throw new Error('You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');return{type:'NAVIGATE',payload:t}},e.reset=function(t){return{type:'RESET',payload:t}},e.setParams=function(t){return{type:'SET_PARAMS',payload:{params:t}}}},652,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]);function u(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function c(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:21;t--;)n+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return n}},654,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var o=p(p({},s.default),{},{type:'stack',getInitialState:function(n){var o=n.routeNames,s=n.routeParamList,l=void 0!==t.initialRouteName&&o.includes(t.initialRouteName)?t.initialRouteName:o[0];return{stale:!1,type:'stack',key:"stack-"+(0,u.nanoid)(),index:0,routeNames:o,routes:[{key:l+"-"+(0,u.nanoid)(),name:l,params:s[l]}]}},getRehydratedState:function(n,o){var s=o.routeNames,l=o.routeParamList,y=n;if(!1===y.stale)return y;var c=y.routes.filter(function(t){return s.includes(t.name)}).map(function(t){return p(p({},t),{},{key:t.key||t.name+"-"+(0,u.nanoid)(),params:void 0!==l[t.name]?p(p({},l[t.name]),t.params):t.params})});if(0===c.length){var f=void 0!==t.initialRouteName?t.initialRouteName:s[0];c.push({key:f+"-"+(0,u.nanoid)(),name:f,params:l[f]})}return{stale:!1,type:'stack',key:"stack-"+(0,u.nanoid)(),index:c.length-1,routeNames:s,routes:c}},getStateForRouteNamesChange:function(n,o){var s=o.routeNames,l=o.routeParamList,y=n.routes.filter(function(t){return s.includes(t.name)});if(0===y.length){var c=void 0!==t.initialRouteName&&s.includes(t.initialRouteName)?t.initialRouteName:s[0];y.push({key:c+"-"+(0,u.nanoid)(),name:c,params:l[c]})}return p(p({},n),{},{routeNames:s,routes:y,index:Math.min(n.index,y.length-1)})},getStateForRouteFocus:function(t,n){var o=t.routes.findIndex(function(t){return t.key===n});return-1===o||o===t.index?t:p(p({},t),{},{index:o,routes:t.routes.slice(0,o+1)})},getStateForAction:function(t,l,y){var c=y.routeParamList;switch(l.type){case'REPLACE':var f=l.target===t.key&&l.source?t.routes.findIndex(function(t){return t.key===l.source}):t.index;if(-1===f)return null;var v=l.payload,k=v.name,P=v.key,O=v.params;return t.routeNames.includes(k)?p(p({},t),{},{routes:t.routes.map(function(t,n){return n===f?{key:void 0!==P?P:k+"-"+(0,u.nanoid)(),name:k,params:void 0!==c[k]?p(p({},c[k]),O):O}:t})}):null;case'PUSH':if(t.routeNames.includes(l.payload.name)){var h,x,N=y.routeGetIdList[l.payload.name],b=null==N?void 0:N({params:l.payload.params}),S=l.payload.name&&l.payload.key?t.routes.find(function(t){return t.name===l.payload.name&&t.key===l.payload.key}):b?t.routes.find(function(t){return t.name===l.payload.name&&b===(null==N?void 0:N({params:t.params}))}):void 0;if(S)(h=t.routes.filter(function(t){return t.key!==S.key})).push(p(p({},S),{},{params:void 0!==l.payload.params?p(p({},S.params),l.payload.params):S.params}));else h=[].concat((0,n.default)(t.routes),[{key:null!=(x=l.payload.key)?x:l.payload.name+"-"+(0,u.nanoid)(),name:l.payload.name,params:void 0!==c[l.payload.name]?p(p({},c[l.payload.name]),l.payload.params):l.payload.params}]);return p(p({},t),{},{index:h.length-1,routes:h})}return null;case'POP':var R=l.target===t.key&&l.source?t.routes.findIndex(function(t){return t.key===l.source}):t.index;if(R>0){var j=Math.max(R-l.payload.count+1,1),A=t.routes.slice(0,j).concat(t.routes.slice(R+1));return p(p({},t),{},{index:A.length-1,routes:A})}return null;case'POP_TO_TOP':return o.getStateForAction(t,{type:'POP',payload:{count:t.routes.length-1}},y);case'NAVIGATE':if(void 0!==l.payload.name&&!t.routeNames.includes(l.payload.name))return null;if(l.payload.key||l.payload.name){var _=-1,I=void 0===l.payload.key&&void 0!==l.payload.name?y.routeGetIdList[l.payload.name]:void 0,L=null==I?void 0:I({params:l.payload.params});if(L)_=t.routes.findIndex(function(t){return t.name===l.payload.name&&L===(null==I?void 0:I({params:t.params}))});else if(t.routes[t.index].name===l.payload.name&&void 0===l.payload.key||t.routes[t.index].key===l.payload.key)_=t.index;else for(var w=t.routes.length-1;w>=0;w--)if(t.routes[w].name===l.payload.name&&void 0===l.payload.key||t.routes[w].key===l.payload.key){_=w;break}if(-1===_&&l.payload.key&&void 0===l.payload.name)return null;if(-1===_&&void 0!==l.payload.name){var E,F=[].concat((0,n.default)(t.routes),[{key:null!=(E=l.payload.key)?E:l.payload.name+"-"+(0,u.nanoid)(),name:l.payload.name,params:void 0!==c[l.payload.name]?p(p({},c[l.payload.name]),l.payload.params):l.payload.params}]);return p(p({},t),{},{routes:F,index:F.length-1})}var T,C=t.routes[_];return T=!1===l.payload.merge?void 0!==c[C.name]?p(p({},c[C.name]),l.payload.params):l.payload.params:l.payload.params?p(p({},C.params),l.payload.params):C.params,p(p({},t),{},{index:_,routes:[].concat((0,n.default)(t.routes.slice(0,_)),[T!==C.params?p(p({},C),{},{params:T}):t.routes[_]])})}return null;case'GO_BACK':return t.index>0?o.getStateForAction(t,{type:'POP',payload:{count:1},target:l.target,source:l.source},y):null;default:return s.default.getStateForAction(t,l)}},actionCreators:y});return o},e.StackActions=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),s=t(r(d[4]));function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function p(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:1}}},popToTop:function(){return{type:'POP_TO_TOP'}}};e.StackActions=y},655,[1,27,54,654,653]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var n=t.initialRouteName,s=t.backBehavior,l=void 0===s?'history':s;return y(y({},u.default),{},{type:'tab',getInitialState:function(t){var u=t.routeNames,s=t.routeParamList,y=void 0!==n&&u.includes(n)?u.indexOf(n):0,c=u.map(function(t){return{name:t,key:t+"-"+(0,o.nanoid)(),params:s[t]}}),p=f(c,y,l,n);return{stale:!1,type:'tab',key:"tab-"+(0,o.nanoid)(),index:y,routeNames:u,history:p,routes:c}},getRehydratedState:function(t,u){var s,c,f,v,h=u.routeNames,k=u.routeParamList,b=t;if(!1===b.stale)return b;var O=h.map(function(t){var n=b.routes.find(function(n){return n.name===t});return y(y({},n),{},{name:t,key:n&&n.name===t&&n.key?n.key:t+"-"+(0,o.nanoid)(),params:void 0!==k[t]?y(y({},k[t]),n?n.params:void 0):n?n.params:void 0})}),x=Math.min(Math.max(h.indexOf(null==(s=b.routes[null!=(c=null==b?void 0:b.index)?c:0])?void 0:s.name),0),O.length-1),P=null!=(f=null==(v=b.history)?void 0:v.filter(function(t){return O.find(function(n){return n.key===t.key})}))?f:[];return p({stale:!1,type:'tab',key:"tab-"+(0,o.nanoid)(),index:x,routeNames:h,history:P,routes:O},x,l,n)},getStateForRouteNamesChange:function(t,u){var s=u.routeNames,c=u.routeParamList,p=s.map(function(n){return t.routes.find(function(t){return t.name===n})||{name:n,key:n+"-"+(0,o.nanoid)(),params:c[n]}}),v=Math.max(0,s.indexOf(t.routes[t.index].name)),h=t.history.filter(function(t){return'route'!==t.type||p.find(function(n){return n.key===t.key})});return h.length||(h=f(p,v,l,n)),y(y({},t),{},{history:h,routeNames:s,routes:p,index:v})},getStateForRouteFocus:function(t,o){var u=t.routes.findIndex(function(t){return t.key===o});return-1===u||u===t.index?t:p(t,u,l,n)},getStateForAction:function(t,o,s){var c=s.routeParamList;switch(o.type){case'JUMP_TO':case'NAVIGATE':var f=-1;return-1===(f='NAVIGATE'===o.type&&o.payload.key?t.routes.findIndex(function(t){return t.key===o.payload.key}):t.routes.findIndex(function(t){return t.name===o.payload.name}))?null:p(y(y({},t),{},{routes:void 0!==o.payload.params?t.routes.map(function(t,n){return n!==f?t:(u='NAVIGATE'===o.type&&!1===o.payload.merge?void 0!==c[t.name]?y(y({},c[t.name]),o.payload.params):o.payload.params:o.payload.params?y(y({},t.params),o.payload.params):t.params)!==t.params?y(y({},t),{},{params:u}):t;var u}):t.routes}),f,l,n);case'GO_BACK':if(1===t.history.length)return null;var v=t.history[t.history.length-2].key,h=t.routes.findIndex(function(t){return t.key===v});return-1===h?null:y(y({},t),{},{history:t.history.slice(0,-1),index:h});default:return u.default.getStateForAction(t,o)}},shouldActionChangeFocus:function(t){return'NAVIGATE'===t.type},actionCreators:c})},e.TabActions=void 0;var n=t(r(d[1])),o=r(d[2]),u=t(r(d[3]));function s(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function y(t){for(var o=1;o0;c--)y.unshift({type:"route",key:t[c-1].key});break;case'firstRoute':0!==n&&y.unshift({type:"route",key:t[0].key});break;case'initialRoute':n!==(s=-1===(s=t.findIndex(function(t){return t.name===u}))?0:s)&&y.unshift({type:"route",key:t[s].key})}return y},p=function(t,n,o,u){var s;if('history'===o){var c=t.routes[n].key;s=t.history.filter(function(t){return'route'===t.type&&t.key!==c}).concat({type:"route",key:c})}else s=f(t.routes,n,o,u);return y(y({},t),{},{index:n,history:s})}},656,[1,54,654,653]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var o=t.openByDefault,u=(0,n.default)(t,["openByDefault"]),s=(0,f.default)(u);return y(y({},s),{},{type:'drawer',getInitialState:function(t){var n=t.routeNames,u=t.routeParamList,f=t.routeGetIdList,p=s.getInitialState({routeNames:n,routeParamList:u,routeGetIdList:f});return o&&(p=w(p)),y(y({},p),{},{stale:!1,type:'drawer',key:"drawer-"+(0,c.nanoid)()})},getRehydratedState:function(t,n){var u=n.routeNames,f=n.routeParamList,p=n.routeGetIdList;if(!1===t.stale)return t;var l=s.getRehydratedState(t,{routeNames:u,routeParamList:f,routeGetIdList:p});return(t.history?O(t):o)&&(l=w(l)),y(y({},l),{},{type:'drawer',key:"drawer-"+(0,c.nanoid)()})},getStateForRouteFocus:function(t,n){var u=s.getStateForRouteFocus(t,n);return o?w(u):b(u)},getStateForAction:function(t,n,u){switch(n.type){case'OPEN_DRAWER':return w(t);case'CLOSE_DRAWER':return b(t);case'TOGGLE_DRAWER':return O(t)?b(t):w(t);case'GO_BACK':if(o){if(!O(t))return w(t)}else if(O(t))return b(t);return s.getStateForAction(t,n,u);default:return s.getStateForAction(t,n,u)}},actionCreators:l})},e.DrawerActions=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),c=r(d[4]),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var p=c?Object.getOwnPropertyDescriptor(t,f):null;p&&(p.get||p.set)?Object.defineProperty(u,f,p):u[f]=t[f]}u.default=t,o&&o.set(t,u);return u})(r(d[5]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function p(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function y(t){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:new Set,o=c();if(n.has(o.key))return!1;if(n.add(o.key),'string'!=typeof t.target||t.target===o.key){var y=f.getStateForAction(o,t,w.current);if(null!==(y=null===y&&t.target===o.key?o:y)){if(P(t,o===y),o!==y){var O=(0,u.shouldPreventRemove)(b,p,o.routes,y.routes,t);if(O)return!0;s(y)}if(void 0!==k){var j=f.shouldActionChangeFocus(t);j&&void 0!==l&&k(l)}return!0}}if(void 0!==h&&h(t,n))return!0;for(var _=v.length-1;_>=0;_--){var M=v[_];if(M(t,n))return!0}return!1},[v,p,b,c,l,h,P,k,f,s]);return(0,u.default)({getState:c,emitter:b,beforeRemoveListeners:p}),n.useEffect(function(){return null==j?void 0:j('action',_)},[j,_]),_};var n=c(r(d[1])),o=t(r(d[2])),u=c(r(d[3]));function f(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(f=function(t){return t?o:n})(t)}function c(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=f(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var l=c?Object.getOwnPropertyDescriptor(t,s):null;l&&(l.get||l.set)?Object.defineProperty(u,s,l):u[s]=t[s]}return u.default=t,o&&o.set(t,u),u}},686,[1,6,662,687]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var n=t.getState,c=t.emitter,l=t.beforeRemoveListeners,y=o.useContext(u.default).addKeyedListener,p=o.useContext(f.default),s=null==p?void 0:p.key;o.useEffect(function(){if(s)return null==y?void 0:y('beforeRemove',s,function(t){var o=n();return O(c,l,o.routes,[],t)})},[y,l,c,n,s])},e.shouldPreventRemove=void 0;var n=t(r(d[1])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=c(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var y=f?Object.getOwnPropertyDescriptor(t,l):null;y&&(y.get||y.set)?Object.defineProperty(u,l,y):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[2])),u=t(r(d[3])),f=t(r(d[4]));function c(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(c=function(t){return t?o:n})(t)}function l(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=y(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var u=0;return function(){return u>=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(t,n){if(t){if("string"==typeof t)return p(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?p(t,n):void 0}}function p(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);o=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(t,n){if(t){if("string"==typeof t)return c(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(t,n):void 0}}function c(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);o {\n // Your code here\n }, [depA, depB])\n);\n\nSee usage guide: https://reactnavigation.org/docs/use-focus-effect")}n.useEffect(function(){var n,o=!1,c=function(){var n=t();if(void 0===n||'function'==typeof n)return n};u.isFocused()&&(n=c(),o=!0);var f=u.addListener('focus',function(){o||(void 0!==n&&n(),n=c(),o=!0)}),s=u.addListener('blur',function(){void 0!==n&&n(),n=void 0,o=!1});return function(){void 0!==n&&n(),f(),s()}},[t,u])};var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var c={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var p=f?Object.getOwnPropertyDescriptor(t,s):null;p&&(p.get||p.set)?Object.defineProperty(c,s,p):c[s]=t[s]}c.default=t,o&&o.set(t,c);return c})(r(d[1])),o=t(r(d[2]));function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}},696,[1,6,694]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=(0,f.default)(),o=(0,u.useState)(t.isFocused),c=(0,n.default)(o,2),l=c[0],s=c[1],p=t.isFocused();l!==p&&s(p);return u.useEffect(function(){var n=t.addListener('focus',function(){return s(!0)}),u=t.addListener('blur',function(){return s(!1)});return function(){n(),u()}},[t]),u.useDebugValue(p),p};var n=t(r(d[1])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var s=c?Object.getOwnPropertyDescriptor(t,l):null;s&&(s.get||s.set)?Object.defineProperty(f,l,s):f[l]=t[l]}f.default=t,u&&u.set(t,f);return f})(r(d[2])),f=t(r(d[3]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}},697,[1,19,6,694]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var o=(0,f.default)(),c=u.useState(function(){return t(o.dangerouslyGetState())}),l=(0,n.default)(c,2)[1],s=u.useRef(t);return u.useEffect(function(){s.current=t}),u.useEffect(function(){return o.addListener('state',function(t){l(s.current(t.data.state))})},[o]),t(o.dangerouslyGetState())};var n=t(r(d[1])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var s=c?Object.getOwnPropertyDescriptor(t,l):null;s&&(s.get||s.set)?Object.defineProperty(f,l,s):f[l]=t[l]}f.default=t,u&&u.set(t,f);return f})(r(d[2])),f=t(r(d[3]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}},698,[1,19,6,694]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,l){var f,p=(0,c.default)(l),v=(0,s.default)(p,2),h=v[0],y=v[1],b=[];null!=y&&y.initialRouteName&&b.push({initialRouteName:y.initialRouteName,parentScreens:[]});var O=null==y?void 0:y.screens,P=t.replace(/\/+/g,'/').replace(/^\//,'').replace(/\?.*$/,'');if(P=P.endsWith('/')?P:P+"/",void 0===O){var k=P.split('/').filter(Boolean).map(function(n,o,u){var s=decodeURIComponent(n);return o===u.length-1?{name:s,params:W(t)}:{name:s}});return k.length?S(k,b):void 0}var R,A,D=(f=[]).concat.apply(f,(0,u.default)(Object.keys(O).map(function(t){return x(h,t,O,[],b,[])}))).sort(function(t,n){if(t.pattern===n.pattern)return n.routeNames.join('>').localeCompare(t.routeNames.join('>'));if(t.pattern.startsWith(n.pattern))return-1;if(n.pattern.startsWith(t.pattern))return 1;var o=t.pattern.split('/'),u=n.pattern.split('/'),s=o.indexOf('*'),l=u.indexOf('*');return-1===s&&-1!==l?-1:-1!==s&&-1===l?1:s===l?u.length-o.length:l-s});if(D.reduce(function(t,u){if(t[u.pattern]){var s=t[u.pattern].routeNames,l=u.routeNames;if(!(s.length>l.length?l.every(function(t,n){return s[n]===t}):s.every(function(t,n){return l[n]===t})))throw new Error("Found conflicting screens with the same pattern. The pattern '"+u.pattern+"' resolves to both '"+s.join(' > ')+"' and '"+l.join(' > ')+"'. Patterns must be unique and cannot resolve to more than one screen.")}return(0,o.default)(t,(0,n.default)({},u.pattern,u))},{}),'/'===P){var I=D.find(function(t){return''===t.path&&t.routeNames.every(function(t){var n;return!(null!=(n=D.find(function(n){return n.screen===t}))&&n.path)})});return I?S(I.routeNames.map(function(n,o,u){return o===u.length-1?{name:n,params:W(t,I.parse)}:{name:n}}),b):void 0}if(!1===h){var M=w(P,D.map(function(t){return j(j({},t),{},{regex:t.regex?new RegExp(t.regex.source+'$'):void 0})})),_=M.routes,C=M.remainingPath;void 0!==_&&(A=S(_,b),P=C,R=A)}else for(;P;){var U=w(P,D),$=U.routes,B=U.remainingPath;if(P=B,void 0===$){var T=P.split('/');$=[{name:decodeURIComponent(T[0])}],T.shift(),P=T.join('/')}var q=S($,b);if(A){for(var F;null!=(L=A)&&L.routes[A.index||0].state;){var L;A=A.routes[A.index||0].state}A.routes[(null==(F=A)?void 0:F.index)||0].state=q}else R=q;A=q}if(null==A||null==R)return;var z=E(A),G=W(t,N(z.name,D));G&&(z.params=j(j({},z.params),G));return R};var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),l=t(r(d[5])),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var u={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=s?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[6])),c=t(r(d[7]));function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}function v(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=h(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var u=0;return function(){return u>=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(t,n){if(t){if("string"==typeof t)return y(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?y(t,n):void 0}}function y(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);o3&&void 0!==arguments[3]?arguments[3]:[],f=arguments.length>4?arguments[4]:void 0,c=arguments.length>5?arguments[5]:void 0,p=arguments.length>6?arguments[6]:void 0,v=[];l.push(o),c.push(o);var h=s[o];if('string'==typeof h){var y=p?O(p,h):h;v.push(P(n,o,l,y,h))}else if('object'==typeof h){var b;if('string'==typeof h.path){if(n)b=!0!==h.exact&&p?O(p,h.path):h.path;else{if(h.exact&&void 0===h.path)throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");b=!0!==h.exact?O(p||'',h.path||''):h.path||''}v.push(P(n,o,l,b,h.path,h.parse))}h.screens&&(h.initialRouteName&&f.push({initialRouteName:h.initialRouteName,parentScreens:c}),Object.keys(h.screens).forEach(function(o){var s,y=t(n,o,h.screens,l,f,(0,u.default)(c),null!=(s=b)?s:p);v.push.apply(v,(0,u.default)(y))}))}return l.pop(),v},P=function(t,n,o,s,f,c){return{screen:n,regex:(s=s.split('/').filter(Boolean).join('/'))?new RegExp("^("+s.split('/').map(function(n){if(t&&'*'===n)throw new Error("Please update your config to the new format to use wildcard pattern ('*'). https://reactnavigation.org/docs/configuring-links/#updating-config");return n.startsWith(':')?"(([^/]+\\/)"+(n.endsWith('?')?'?':'')+")":('*'===n?'.*':(0,l.default)(n))+"\\/"}).join('')+")"):void 0,pattern:s,path:f,routeNames:(0,u.default)(o),parse:c}},N=function(t,n){for(var o,u=v(n);!(o=u()).done;){var s=o.value;if(t===s.routeNames[s.routeNames.length-1])return s.parse}},k=function(t,n,o){for(var u,s=v(o);!(u=s()).done;){var l=u.value;if(n.length===l.parentScreens.length){for(var f=!0,c=0;c0)for(var f=o;u=t.shift();){l=k(u.name,s,n);var c=f.index||f.routes.length-1;f.routes[c].state=R(l,u,0===t.length),t.length>0&&(f=f.routes[c].state),s.push(u.name)}return o},E=function(t){for(var n,o=t;null!=(u=o)&&u.routes[o.index||0].state;){var u;o=o.routes[o.index||0].state}return o.routes[(null==(n=o)?void 0:n.index)||0]},W=function(t,n){var o=t.split('?')[1],u=f.parse(o);return n&&Object.keys(u).forEach(function(t){n[t]&&'string'==typeof u[t]&&(u[t]=n[t](u[t]))}),Object.keys(u).length?u:void 0}},699,[1,54,9,27,19,700,701,706]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){if('string'!=typeof t)throw new TypeError('Expected a string');return t.replace(/[|\\{}()[\]^$+*?.]/g,'\\$&').replace(/-/g,'\\x2d')}},700,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]);function u(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=c(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var u=0;return function(){return u>=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(t,n){if(t){if("string"==typeof t)return s(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?s(t,n):void 0}}function s(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,u=new Array(n);o0}).join('&')},e.parseUrl=function(o,u){u=n({decode:!0},u);var c=p(o,'#'),s=t(c,2),l=s[0],f=s[1];return n({url:l.split('?')[0]||'',query:x(O(o),u)},u&&u.parseFragmentIdentifier&&f?{fragmentIdentifier:k(f,u)}:{})},e.stringifyUrl=function(t,o){o=n({encode:!0,strict:!0},o);var u=F(t.url).split('?')[0]||'',c=e.extract(t.url),s=e.parse(c,{sort:!1}),l=n(s,t.query),f=e.stringify(l,o);f&&(f="?"+f);var p=A(t.url);return t.fragmentIdentifier&&(p="#"+h(t.fragmentIdentifier,o)),""+u+f+p},e.pick=function(t,o,u){u=n({parseFragmentIdentifier:!0},u);var c=e.parseUrl(t,u),s=c.url,l=c.query,f=c.fragmentIdentifier;return e.stringifyUrl({url:s,query:y(l,o),fragmentIdentifier:f},u)},e.exclude=function(t,n,o){var u=Array.isArray(n)?function(t){return!n.includes(t)}:function(t,o){return!n(t,o)};return e.pick(t,u,o)}},701,[19,9,27,702,703,704,705]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){return encodeURIComponent(t).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}},702,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=new RegExp('%[a-f0-9]{2}','gi'),n=new RegExp("(%[a-f0-9]{2})+",'gi');function o(t,n){try{return decodeURIComponent(t.join(''))}catch(t){}if(1===t.length)return t;n=n||1;var c=t.slice(0,n),p=t.slice(n);return Array.prototype.concat.call([],o(c),o(p))}function c(n){try{return decodeURIComponent(n)}catch(f){for(var c=n.match(t),p=1;p1?P.replace(/\/$/,''):P};var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),f=t(r(d[4])),s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var c=f?Object.getOwnPropertyDescriptor(t,s):null;c&&(c.get||c.set)?Object.defineProperty(u,s,c):u[s]=t[s]}u.default=t,o&&o.set(t,u);return u})(r(d[5])),c=t(r(d[6]));function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function v(t){for(var n=1;n' section of the 'AndroidManifest.xml' file to avoid launching multiple instances":''].join('\n').trim());return s=!1!==v,function(){s=!1}});var j=t.useRef(v),M=t.useRef(h),S=t.useRef(p),E=t.useRef(y),_=t.useRef(L),T=t.useRef(O);t.useEffect(function(){j.current=v,M.current=h,S.current=p,E.current=y,_.current=L,T.current=O});var A=t.useCallback(function(){var n;if(j.current){var t=E.current();if(null!=t&&'string'!=typeof t)return t.then(function(n){var t=n?(0,c.default)(M.current,n):null;return t?_.current(t,S.current):void 0});var o=t?(0,c.default)(M.current,t):null;n=o?_.current(o,S.current):void 0}var u={then:function(t){return Promise.resolve(t?t(n):n)},catch:function(){return u}};return u},[]);return t.useEffect(function(){return w(function(t){if(v){var o=(0,c.default)(M.current,t),u=n.current;if(u&&o){var f=_.current(o,S.current);if(f){var s=u.getRootState();if(f.routes.some(function(n){return!(null!=s&&s.routeNames.includes(n.name))}))return void console.warn("The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.");var l=T.current(f,S.current);if(void 0!==l)try{u.dispatch(l)}catch(n){console.warn("An error occurred when trying to handle the link '"+o+"': "+n.message)}else u.resetRoot(f)}}}})},[v,n,w]),{getInitialState:A}};var t=(function(n,t){if(!t&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var o=f(t);if(o&&o.has(n))return o.get(n);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if("default"!==s&&Object.prototype.hasOwnProperty.call(n,s)){var l=c?Object.getOwnPropertyDescriptor(n,s):null;l&&(l.get||l.set)?Object.defineProperty(u,s,l):u[s]=n[s]}u.default=n,o&&o.set(n,u);return u})(r(d[1])),o=r(d[2]),u=r(d[3]),c=n(r(d[4]));function f(n){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(f=function(n){return n?o:t})(n)}var s=!1},716,[1,6,10,650,717]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,l){for(var u,c=o(t);!(u=c()).done;){var f,p,v=u.value,y=null!=(f=null==(p=v.match(/^[^:]+:/))?void 0:p[0])?f:'',s=v.replace(new RegExp("^"+(0,n.default)(y)),'').replace(/\/+/g,'/').replace(/^\//,''),b=new RegExp("^"+(0,n.default)(y)+"(/)*"+s.split('.').map(function(t){return'*'===t?'[^/]+':(0,n.default)(t)}).join('\\.')),h=l.replace(/\/+/g,'/');if(b.test(h))return h.replace(b,'')}return};var n=t(r(d[1]));function o(t,n){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=l(t))||n&&t&&"number"==typeof t.length){o&&(t=o);var u=0;return function(){return u>=t.length?{done:!0}:{done:!1,value:t[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(t,n){if(t){if("string"==typeof t)return u(t,n);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?u(t,n):void 0}}function u(t,n){(null==n||n>t.length)&&(n=t.length);for(var o=0,l=new Array(n);o0?o.interpolate({inputRange:[0,u],outputRange:[1,0]}):o.interpolate({inputRange:[u,0],outputRange:[0,1]})},A=(function(t){(0,u.default)(D,t);var S,w,I=(S=D,w=R(),function(){var t,o=(0,c.default)(S);if(w){var n=(0,c.default)(this).constructor;t=Reflect.construct(o,arguments,n)}else t=o.apply(this,arguments);return(0,l.default)(this,t)});function D(t){var o;(0,n.default)(this,D),(o=I.call(this,t)).handleLayout=function(t){var n=t.nativeEvent.layout,s=n.height,u=n.width,l={width:u,height:s};o.setState(function(t,o){return s===t.layout.height&&u===t.layout.width?null:{layout:l,headerHeights:j(o.routes,o.insets,o.isParentHeaderShown,t.descriptors,l,t.headerHeights)}})},o.handleHeaderLayout=function(t){var n=t.route,s=t.height;o.setState(function(t){var o=t.headerHeights;return o[n.key]===s?null:{headerHeights:H(H({},o),{},(0,p.default)({},n.key,s))}})},o.getFocusedRoute=function(){var t=o.props.state;return t.routes[t.index]},o.getPreviousScene=function(t){var n=t.route,s=o.props.getPreviousRoute,u=o.state.scenes,l=s({route:n});if(l)return u.find(function(t){return t.route.key===l.key})};var s=f.Dimensions.get('window'),u=s.height,l=void 0===u?0:u,c=s.width,h=void 0===c?0:c;return o.state={routes:[],scenes:[],gestures:{},layout:{height:l,width:h},descriptors:o.props.descriptors,headerHeights:{}},o}return(0,s.default)(D,[{key:"render",value:function(){var t=this,n=this.props,s=n.mode,u=n.insets,l=n.descriptors,c=n.state,p=n.routes,S=n.closingRouteKeys,w=n.onOpenRoute,I=n.onCloseRoute,R=n.getGesturesEnabled,D=n.renderHeader,E=n.renderScene,j=n.headerMode,C=n.isParentHeaderShown,x=n.onTransitionStart,A=n.onTransitionEnd,_=n.onPageChangeStart,T=n.onPageChangeConfirm,F=n.onPageChangeCancel,G=n.onGestureStart,L=n.onGestureEnd,B=n.onGestureCancel,N=n.detachInactiveScreens,V=void 0===N?'web'===f.Platform.OS||v.shouldUseActivityState:N,W=this.state,z=W.scenes,K=W.layout,U=W.gestures,q=W.headerHeights,J=c.routes[c.index],Q=l[J.key],X=Q?Q.options:{},Y=q[J.key],Z='modal'===s?k.ModalTransition:k.DefaultTransition;'screen'===j&&(Z=H(H({},Z),{},{headerStyleInterpolator:O.forNoAnimation}));for(var $=X.safeAreaInsets||{},ee=$.top,te=void 0===ee?u.top:ee,re=$.right,oe=void 0===re?u.right:re,ne=$.bottom,ae=void 0===ne?u.bottom:ne,ie=$.left,se=void 0===ie?u.left:ie,ue=1,le=z.length-1;le>=0;le--){var de=z[le].descriptor.options.detachPreviousScreen;if(!1!==(void 0===de?'modal'!==s||le!==z.length-1:de))break;ue++}var ce='float'===j&&this.state.scenes.slice(-2).some(function(t){var o=t.descriptor,n=o?o.options:{},s=n.headerTransparent,u=n.headerShown;return!(!s&&!1!==(void 0===u||u))}),pe='float'===j?h.createElement(h.Fragment,{key:"header"},D({mode:'float',layout:K,insets:{top:te,right:oe,bottom:ae,left:se},scenes:z,getPreviousScene:this.getPreviousScene,getFocusedRoute:this.getFocusedRoute,onContentHeightChange:this.handleHeaderLayout,gestureDirection:void 0!==X.gestureDirection?X.gestureDirection:Z.gestureDirection,styleInterpolator:void 0!==X.headerStyleInterpolator?X.headerStyleInterpolator:Z.headerStyleInterpolator,style:[M.floating,ce&&[{height:Y},M.absolute]]})):null,he=(null==y.screensEnabled?void 0:(0,y.screensEnabled)())&&V;return h.createElement(h.Fragment,null,ce?null:pe,h.createElement(v.MaybeScreenContainer,{enabled:he,style:M.container,onLayout:this.handleLayout},p.map(function(n,l,c){var p=J.key===n.key,y=U[n.key],k=z[l],O=1;if(v.shouldUseActivityState||'web'===f.Platform.OS)if(l=c.length-ue?1:0;O=H?H.progress.current.interpolate({inputRange:[0,.99,1],outputRange:[1,1,M],extrapolate:'clamp'}):1}else O=k.progress.next?k.progress.next.interpolate({inputRange:[0,.99,1],outputRange:[1,1,0],extrapolate:'clamp'}):1;var N=k.descriptor?k.descriptor.options:{},V=N.safeAreaInsets,W=N.headerShown,Q=void 0===W||W,X=N.headerTransparent,Y=N.cardShadowEnabled,$=N.cardOverlayEnabled,ee=N.cardOverlay,te=N.cardStyle,re=N.animationEnabled,oe=N.gestureResponseDistance,ne=N.gestureVelocityImpact,ae=N.gestureDirection,ie=void 0===ae?Z.gestureDirection:ae,se=N.transitionSpec,le=void 0===se?Z.transitionSpec:se,de=N.cardStyleInterpolator,pe=void 0===de?!1===re?P.forNoAnimation:Z.cardStyleInterpolator:de,fe=N.headerStyleInterpolator,ge={gestureDirection:ie,transitionSpec:le,cardStyleInterpolator:pe,headerStyleInterpolator:void 0===fe?Z.headerStyleInterpolator:fe};if(l!==c.length-1){var ye=z[l+1];if(ye){var ve=ye.descriptor?ye.descriptor.options:{},Se=ve.animationEnabled,me=ve.gestureDirection,be=void 0===me?Z.gestureDirection:me,ke=ve.transitionSpec,Oe=void 0===ke?Z.transitionSpec:ke,Pe=ve.cardStyleInterpolator,we=void 0===Pe?!1===Se?P.forNoAnimation:Z.cardStyleInterpolator:Pe,Ie=ve.headerStyleInterpolator;ge={gestureDirection:be,transitionSpec:Oe,cardStyleInterpolator:we,headerStyleInterpolator:void 0===Ie?Z.headerStyleInterpolator:Ie}}}var Re=V||{},De=Re.top,He=void 0===De?u.top:De,Ee=Re.right,je=void 0===Ee?u.right:Ee,Ce=Re.bottom,xe=void 0===Ce?u.bottom:Ce,Ae=Re.left,Me=void 0===Ae?u.left:Ae,_e='none'!==j&&!1!==Q?q[n.key]:0;return h.createElement(v.MaybeScreen,{key:n.key,style:f.StyleSheet.absoluteFill,enabled:he,active:O,pointerEvents:"box-none"},h.createElement(b.default,(0,o.default)({index:l,active:l===c.length-1,focused:p,closing:S.includes(n.key),layout:K,gesture:y,scene:k,safeAreaInsetTop:He,safeAreaInsetRight:je,safeAreaInsetBottom:xe,safeAreaInsetLeft:Me,cardOverlay:ee,cardOverlayEnabled:$,cardShadowEnabled:Y,cardStyle:te,onPageChangeStart:_,onPageChangeConfirm:T,onPageChangeCancel:F,onGestureStart:G,onGestureCancel:B,onGestureEnd:L,gestureResponseDistance:oe,headerHeight:_e,isParentHeaderShown:C,onHeaderHeightChange:t.handleHeaderLayout,getPreviousScene:t.getPreviousScene,getFocusedRoute:t.getFocusedRoute,mode:s,headerMode:j,headerShown:Q,hasAbsoluteHeader:ce&&!X,renderHeader:D,renderScene:E,onOpenRoute:w,onCloseRoute:I,onTransitionStart:x,onTransitionEnd:A,gestureEnabled:0!==l&&R({route:n}),gestureVelocityImpact:ne},ge)))})),ce?pe:null)}}],[{key:"getDerivedStateFromProps",value:function(t,o){if(t.routes===o.routes&&t.descriptors===o.descriptors)return null;var n=t.routes.reduce(function(n,s){var u=t.descriptors[s.key],l=((null==u?void 0:u.options)||{}).animationEnabled;return n[s.key]=o.gestures[s.key]||new f.Animated.Value(t.openingRouteKeys.includes(s.key)&&!1!==l?C(t.mode,o.layout,u):0),n},{});return{routes:t.routes,scenes:t.routes.map(function(s,u,l){var c=l[u-1],p=l[u+1],h=o.scenes[u],f=n[s.key],y=c?n[c.key]:void 0,v=p?n[p.key]:void 0,S=t.descriptors[s.key]||o.descriptors[s.key]||(h?h.descriptor:E),b=t.descriptors[null==p?void 0:p.key]||o.descriptors[null==p?void 0:p.key],k=t.descriptors[null==c?void 0:c.key]||o.descriptors[null==c?void 0:c.key],O={route:s,descriptor:S,progress:{current:x(t.mode,f,o.layout,S),next:v?x(t.mode,v,o.layout,b):void 0,previous:y?x(t.mode,y,o.layout,k):void 0},__memo:[s,o.layout,S,b,k,f,v,y]};return h&&O.__memo.every(function(t,o){return h.__memo[o]===t})?h:O}),gestures:n,descriptors:t.descriptors,headerHeights:j(t.routes,t.insets,t.isParentHeaderShown,o.descriptors,o.layout,o.headerHeights)}}}]),D})(h.Component);e.default=A;var M=f.StyleSheet.create({container:{flex:1},absolute:{position:'absolute',top:0,left:0,right:0},floating:{zIndex:1}})},734,[1,9,31,32,42,44,41,54,6,10,735,736,737,749,647,645,643,753]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),c=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),v=t(r(d[7])),S=t(r(d[8])),s=r(d[9]);function p(t){var n=h();return function(){var c,o=(0,v.default)(t);if(n){var u=(0,v.default)(this).constructor;c=Reflect.construct(o,arguments,u)}else c=o.apply(this,arguments);return(0,f.default)(this,c)}}function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var N=!0;var b,k,y,C,w,R;var H={get NativeScreen(){return b=b||(0,s.requireNativeComponent)('RNSScreen')},get NativeScreenContainer(){return k=k||(0,s.requireNativeComponent)('RNSScreenContainer')},get NativeScreenStack(){return y=y||(0,s.requireNativeComponent)('RNSScreenStack')},get NativeScreenStackHeaderConfig(){return C=C||(0,s.requireNativeComponent)('RNSScreenStackHeaderConfig')},get NativeScreenStackHeaderSubview(){return w=w||(0,s.requireNativeComponent)('RNSScreenStackHeaderSubview')}},E=(function(t){(0,l.default)(v,t);var f=p(v);function v(){var t;(0,o.default)(this,v);for(var n=arguments.length,c=new Array(n),u=0;u0&&void 0!==arguments[0])||arguments[0];(N=t)&&!s.UIManager.getViewManagerConfig('RNSScreen')&&console.error("Screen native module hasn't been linked. Please check the react-native-screens README for more details")},screensEnabled:function(){return N},shouldUseActivityState:!0}},735,[1,9,60,31,32,42,44,41,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.MaybeScreen=e.MaybeScreenContainer=e.shouldUseActivityState=void 0;var n,l,c=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),s=t(r(d[5])),y=t(r(d[6])),p=t(r(d[7])),v=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=h(n);if(l&&l.has(t))return l.get(t);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in t)if("default"!==o&&Object.prototype.hasOwnProperty.call(t,o)){var f=u?Object.getOwnPropertyDescriptor(t,o):null;f&&(f.get||f.set)?Object.defineProperty(c,o,f):c[o]=t[o]}c.default=t,l&&l.set(t,c);return c})(r(d[8])),b=r(d[9]);function h(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(h=function(t){return t?l:n})(t)}function S(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}try{l=r(d[10])}catch(t){}var O=(function(t){(0,s.default)(O,t);var n,l,h=(n=O,l=S(),function(){var t,c=(0,p.default)(n);if(l){var u=(0,p.default)(this).constructor;t=Reflect.construct(c,arguments,u)}else t=c.apply(this,arguments);return(0,y.default)(this,t)});function O(){return(0,o.default)(this,O),h.apply(this,arguments)}return(0,f.default)(O,[{key:"render",value:function(){var t=this.props,n=t.active,l=t.style,o=(0,u.default)(t,["active","style"]);return v.createElement(b.View,(0,c.default)({hidden:!n,style:[l,{display:n?'flex':'none'}]},o))}}]),O})(v.Component),w=b.Animated.createAnimatedComponent(O),E=null==(n=l)?void 0:n.shouldUseActivityState;e.shouldUseActivityState=E;e.MaybeScreenContainer=function(t){var n,o=t.enabled,f=(0,u.default)(t,["enabled"]);return o&&'web'!==b.Platform.OS&&null!=(n=l)&&n.screensEnabled()?v.createElement(l.ScreenContainer,(0,c.default)({enabled:o},f)):v.createElement(b.View,f)};e.MaybeScreen=function(t){var n,o=t.enabled,f=t.active,s=(0,u.default)(t,["enabled","active"]);return o&&'web'===b.Platform.OS?v.createElement(w,(0,c.default)({active:f},s)):o&&null!=(n=l)&&n.screensEnabled()?E?v.createElement(l.Screen,(0,c.default)({enabled:o,activityState:f},s)):v.createElement(l.Screen,(0,c.default)({enabled:o,active:f},s)):v.createElement(b.View,s)}},736,[1,9,60,31,32,42,44,41,6,10,735]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var c=l.useState(void 0),S=(0,n.default)(c,2),R=S[0],v=S[1],w=l.useState(void 0),C=(0,n.default)(w,2),B=C[0],E=C[1],T=l.useContext(u.default),L=(0,f.default)(function(t,o,n,l,h,s,b){return t({current:{progress:n},next:l&&{progress:l},layouts:{header:{height:b,width:o.width},screen:o,title:h,leftLabel:s}})}),W=t.scene,x=t.layout,k=t.insets,O=t.title,P=t.leftLabel,H=t.onGoBack,A=t.headerTitle,j=t.headerTitleAlign,V=void 0===j?h.Platform.select({ios:'center',default:'left'}):j,I=t.headerLeft,F=void 0===I?H?function(t){return l.createElement(s.default,t)}:void 0:I,M=t.headerTransparent,_=t.headerTintColor,D=t.headerBackground,z=t.headerRight,G=t.headerBackImage,q=t.headerBackTitle,J=t.headerBackTitleVisible,K=t.headerTruncatedBackTitle,N=t.headerPressColorAndroid,Q=t.headerBackAccessibilityLabel,U=t.headerBackAllowFontScaling,X=t.headerTitleAllowFontScaling,Y=t.headerTitleStyle,Z=t.headerBackTitleStyle,$=t.headerLeftContainerStyle,ee=t.headerRightContainerStyle,te=t.headerTitleContainerStyle,re=t.headerStyle,oe=t.headerStatusBarHeight,de=void 0===oe?T?0:k.top:oe,ie=t.styleInterpolator,ae=p(x,de),ne=h.StyleSheet.flatten(re||{}),le=ne.height,he=void 0===le?ae:le,se=ne.minHeight,be=ne.maxHeight,ue=ne.backgroundColor,fe=ne.borderBottomColor,ce=ne.borderBottomEndRadius,ge=ne.borderBottomLeftRadius,pe=ne.borderBottomRightRadius,ye=ne.borderBottomStartRadius,me=ne.borderBottomWidth,Se=ne.borderColor,Re=ne.borderEndColor,ve=ne.borderEndWidth,we=ne.borderLeftColor,Ce=ne.borderLeftWidth,Be=ne.borderRadius,Ee=ne.borderRightColor,Te=ne.borderRightWidth,Le=ne.borderStartColor,We=ne.borderStartWidth,xe=ne.borderStyle,ke=ne.borderTopColor,Oe=ne.borderTopEndRadius,Pe=ne.borderTopLeftRadius,He=ne.borderTopRightRadius,Ae=ne.borderTopStartRadius,je=ne.borderTopWidth,Ve=ne.borderWidth,Ie=ne.boxShadow,Fe=ne.elevation,Me=ne.shadowColor,_e=ne.shadowOffset,De=ne.shadowOpacity,ze=ne.shadowRadius,Ge=ne.opacity,qe=ne.transform,Je=((0,o.default)(ne,["height","minHeight","maxHeight","backgroundColor","borderBottomColor","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderBottomWidth","borderColor","borderEndColor","borderEndWidth","borderLeftColor","borderLeftWidth","borderRadius","borderRightColor","borderRightWidth","borderStartColor","borderStartWidth","borderStyle","borderTopColor","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","borderTopWidth","borderWidth","boxShadow","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","opacity","transform"]),{backgroundColor:ue,borderBottomColor:fe,borderBottomEndRadius:ce,borderBottomLeftRadius:ge,borderBottomRightRadius:pe,borderBottomStartRadius:ye,borderBottomWidth:me,borderColor:Se,borderEndColor:Re,borderEndWidth:ve,borderLeftColor:we,borderLeftWidth:Ce,borderRadius:Be,borderRightColor:Ee,borderRightWidth:Te,borderStartColor:Le,borderStartWidth:We,borderStyle:xe,borderTopColor:ke,borderTopEndRadius:Oe,borderTopLeftRadius:Pe,borderTopRightRadius:He,borderTopStartRadius:Ae,borderTopWidth:je,borderWidth:Ve,boxShadow:Ie,elevation:Fe,shadowColor:Me,shadowOffset:_e,shadowOpacity:De,shadowRadius:ze,opacity:Ge,transform:qe});for(var Ke in Je)void 0===Je[Ke]&&delete Je[Ke];var Ne=L(ie,x,W.progress.current,W.progress.next,B,P?R:void 0,'number'==typeof he?he:ae),Qe=Ne.titleStyle,Ue=Ne.leftButtonStyle,Xe=Ne.leftLabelStyle,Ye=Ne.rightButtonStyle,Ze=Ne.backgroundStyle,$e=F?F({backImage:G,pressColorAndroid:N,accessibilityLabel:Q,allowFontScaling:U,onPress:H,labelVisible:J,label:void 0!==q?q:P,truncatedLabel:K,labelStyle:[Xe,Z],onLabelLayout:function(t){var o=t.nativeEvent.layout,n=o.height,l=o.width;if(R&&n===R.height&&l===R.width)return;v({height:n,width:l})},screenLayout:x,titleLayout:B,tintColor:_,canGoBack:Boolean(H)}):null,et=z?z({tintColor:_}):null;return l.createElement(l.Fragment,null,l.createElement(h.Animated.View,{pointerEvents:"box-none",style:[h.StyleSheet.absoluteFill,{zIndex:0},Ze]},D?D({style:Je}):M?null:l.createElement(b.default,{style:Je})),l.createElement(h.Animated.View,{pointerEvents:"box-none",style:[{height:he,minHeight:se,maxHeight:be,opacity:Ge,transform:qe}]},l.createElement(h.View,{pointerEvents:"none",style:{height:de}}),l.createElement(h.View,{pointerEvents:"box-none",style:y.content},$e?l.createElement(h.Animated.View,{pointerEvents:"box-none",style:[y.left,{left:k.left},Ue,$]},$e):null,l.createElement(h.Animated.View,{pointerEvents:"box-none",style:['left'===V?{position:'absolute',left:($e?72:16)+k.left,right:(et?72:16)+k.right}:{marginHorizontal:($e?32:16)+($e&&!1!==J?40:0)+Math.max(k.left,k.right)},Qe,te]},A({children:O,onLayout:function(t){var o=t.nativeEvent.layout,n=o.height,l=o.width;E(function(t){return t&&n===t.height&&l===t.width?t:{height:n,width:l}})},allowFontScaling:X,tintColor:_,style:Y})),et?l.createElement(h.Animated.View,{pointerEvents:"box-none",style:[y.right,{right:k.right},Ye,ee]},et):null)))},e.getDefaultHeaderHeight=void 0;var o=t(r(d[1])),n=t(r(d[2])),l=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=c(o);if(n&&n.has(t))return n.get(t);var l={},h=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var b=h?Object.getOwnPropertyDescriptor(t,s):null;b&&(b.get||b.set)?Object.defineProperty(l,s,b):l[s]=t[s]}l.default=t,n&&n.set(t,l);return l})(r(d[3])),h=r(d[4]),s=t(r(d[5])),b=t(r(d[6])),u=t(r(d[7])),f=t(r(d[8]));function c(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(c=function(t){return t?n:o})(t)}var p=function(t,o){var n=t.width>t.height;return('ios'===h.Platform.OS?n&&!h.Platform.isPad?32:44:'android'===h.Platform.OS?56:64)+o};e.getDefaultHeaderHeight=p;var y=h.StyleSheet.create({content:{flex:1,flexDirection:'row',alignItems:'center',justifyContent:'center'},left:{position:'absolute',left:0,top:0,bottom:0,justifyContent:'center',alignItems:'flex-start'},right:{position:'absolute',right:0,top:0,bottom:0,justifyContent:'center',alignItems:'flex-end'}})},737,[1,60,19,6,10,738,746,747,748]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var n=t.disabled,b=t.allowFontScaling,y=t.backImage,v=t.label,O=t.labelStyle,h=t.labelVisible,w=void 0===h?'ios'===c.Platform.OS:h,P=t.onLabelLayout,j=t.onPress,k=t.pressColorAndroid,M=t.screenLayout,L=t.tintColor,S=t.titleLayout,E=t.truncatedLabel,D=void 0===E?'Back':E,C=t.accessibilityLabel,I=void 0===C?v&&'Back'!==v?v+", back":'Go back':C,x=t.style,R=(0,s.useTheme)(),W=R.dark,T=R.colors,V=l.useState(void 0),F=(0,o.default)(V,2),_=F[0],z=F[1],B=void 0!==L?L:c.Platform.select({ios:T.primary,default:T.text}),A=void 0!==k?k:W?'rgba(255, 255, 255, .32)':'rgba(0, 0, 0, .32)',X=function(t){null==P||P(t),z(t.nativeEvent.layout.x+t.nativeEvent.layout.width)},q=function(){return!v||_&&S&&M&&(M.width-S.width)/2<_+26};return l.createElement(f.default,{disabled:n,accessible:!0,accessibilityRole:"button",accessibilityComponentType:"button",accessibilityLabel:I,accessibilityTraits:"button",testID:"header-back",delayPressIn:0,onPress:n?void 0:function(){return j&&requestAnimationFrame(j)},pressColor:A,style:[p.container,n&&p.disabled,x],hitSlop:c.Platform.select({ios:void 0,default:{top:16,right:16,bottom:16,left:16}}),borderless:!0},l.createElement(l.Fragment,null,y?y({tintColor:B}):l.createElement(c.Image,{style:[p.icon,Boolean(w)&&p.iconWithLabel,Boolean(B)&&{tintColor:B}],source:r(d[8]),fadeDuration:0}),(function(){var t=q()?D:v;if(!w||void 0===t)return null;var n=l.createElement(c.View,{style:M?[p.labelWrapper,{minWidth:M.width/2-27}]:null},l.createElement(c.Animated.Text,{accessible:!1,onLayout:t===v?X:void 0,style:[p.label,B?{color:B}:null,O],numberOfLines:1,allowFontScaling:!!b},t));if(y||'ios'!==c.Platform.OS)return n;return l.createElement(u.default,{maskElement:l.createElement(c.View,{style:p.iconMaskContainer},l.createElement(c.Image,{source:r(d[9]),style:p.iconMask}),l.createElement(c.View,{style:p.iconMaskFillerRect}))},n)})()))};var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=b(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var u=c?Object.getOwnPropertyDescriptor(t,s):null;u&&(u.get||u.set)?Object.defineProperty(l,s,u):l[s]=t[s]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),c=r(d[4]),s=r(d[5]),u=t(r(d[6])),f=t(r(d[7]));function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(b=function(t){return t?o:n})(t)}function y(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}var p=c.StyleSheet.create({container:(function(t){for(var o=1;o=f?l.createElement(u.TouchableNativeFeedback,(0,n.default)({},O,{useForeground:u.TouchableNativeFeedback.canUseNativeForeground(),background:u.TouchableNativeFeedback.Ripple(b,s)}),l.createElement(u.View,{style:v},l.Children.only(y))):l.createElement(u.TouchableOpacity,(0,n.default)({style:v},O),y)};var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=c(n);if(o&&o.has(t))return o.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var s=u?Object.getOwnPropertyDescriptor(t,f):null;s&&(s.get||s.set)?Object.defineProperty(l,f,s):l[f]=t[f]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),u=r(d[4]);function c(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(c=function(t){return t?o:n})(t)}var f=21},743,[1,9,60,6,10]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@react-navigation/stack/src/views/assets",width:24,height:24,scales:[1,1.5,2,3,4],hash:"a364dc7a784101f7c8f6791c7b4514ce",name:"back-icon",type:"png",fileHashes:["778ffc9fe8773a878e9c30a6304784de","376d6a4c7f622917c39feb23671ef71d","c79c3606a1cf168006ad3979763c7e0c","02bc1fa7c0313217bde2d65ccbff40c9","35ba0eaec5a4f5ed12ca16fabeae451d"]})},744,[188]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@react-navigation/stack/src/views/assets",width:50,height:85,scales:[1],hash:"5223c8d9b0d08b82a5670fb5f71faf78",name:"back-icon-mask",type:"png",fileHashes:["5223c8d9b0d08b82a5670fb5f71faf78"]})},745,[188]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var o=t.style,p=(0,c.default)(t,["style"]),s=(0,u.useTheme)().colors;return l.createElement(f.Animated.View,(0,n.default)({style:[y.container,{backgroundColor:s.card,borderBottomColor:s.border,shadowColor:s.border},o]},p))};var o=t(r(d[1])),n=t(r(d[2])),c=t(r(d[3])),l=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=p(o);if(n&&n.has(t))return n.get(t);var c={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var u=l?Object.getOwnPropertyDescriptor(t,f):null;u&&(u.get||u.set)?Object.defineProperty(c,f,u):c[f]=t[f]}c.default=t,n&&n.set(t,c);return c})(r(d[4])),f=r(d[5]),u=r(d[6]);function p(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(p=function(t){return t?n:o})(t)}function s(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);o&&(c=c.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,c)}return n}var y=f.StyleSheet.create({container:(function(t){for(var n=1;nw/2?0!==S||0!==E:t.props.closing;t.animate({closing:C,velocity:S}),C&&(t.pendingGestureCallback=setTimeout(function(){c(),t.forceUpdate()},32)),null==h||h()}},t.getInterpolatedStyle=(0,C.default)(function(n,o,l,s,c,u,f,h,p){return n({index:o,current:{progress:l},next:s&&{progress:s},closing:t.isClosing,swiping:t.isSwiping,inverted:t.inverted,layouts:{screen:c},insets:{top:u,right:f,bottom:h,left:p}})}),t.getCardAnimationContext=(0,C.default)(function(n,o,l,s,c,u,f,h){return{index:n,current:{progress:o},next:l&&{progress:l},closing:t.isClosing,swiping:t.isSwiping,inverted:t.inverted,layouts:{screen:s},insets:{top:c,right:u,bottom:f,left:h}}}),t.contentRef=p.createRef(),t}return(0,c.default)(k,[{key:"componentDidMount",value:function(){this.animate({closing:this.props.closing}),this.isCurrentlyMounted=!0}},{key:"componentDidUpdate",value:function(t){var n=this.props,o=n.layout,l=n.gestureDirection,s=n.closing,c=o.width,u=o.height;c!==t.layout.width&&this.layout.width.setValue(c),u!==t.layout.height&&this.layout.height.setValue(u),l!==t.gestureDirection&&this.inverted.setValue((0,O.default)(l));var f=this.getAnimateToValue(this.props);this.getAnimateToValue(t)===f&&this.lastToValue===f||this.animate({closing:s})}},{key:"componentWillUnmount",value:function(){this.isCurrentlyMounted=!1,this.handleEndInteraction()}},{key:"gestureActivationCriteria",value:function(){var t=this.props,n=t.layout,o=t.gestureDirection,l=t.gestureResponseDistance,s='vertical'===o||'vertical-inverted'===o?void 0!==(null==l?void 0:l.vertical)?l.vertical:135:void 0!==(null==l?void 0:l.horizontal)?l.horizontal:50;if('vertical'===o)return{maxDeltaX:15,minOffsetY:5,hitSlop:{bottom:-n.height+s}};if('vertical-inverted'===o)return{maxDeltaX:15,minOffsetY:-5,hitSlop:{top:-n.height+s}};var c=-n.width+s;return 1===(0,O.default)(o)?{minOffsetX:5,maxDeltaY:20,hitSlop:{right:c}}:{minOffsetX:-5,maxDeltaY:20,hitSlop:{left:c}}}},{key:"render",value:function(){var t,l=this.props,s=l.styleInterpolator,c=l.index,u=l.current,f=l.gesture,h=l.next,S=l.layout,O=l.insets,C=l.overlay,V=l.overlayEnabled,A=l.shadowEnabled,D=l.gestureEnabled,P=l.gestureDirection,x=l.pageOverflowEnabled,j=l.children,k=l.containerStyle,R=l.contentStyle,H=(0,o.default)(l,["styleInterpolator","index","current","gesture","next","layout","insets","overlay","overlayEnabled","shadowEnabled","gestureEnabled","gestureDirection","pageOverflowEnabled","children","containerStyle","contentStyle"]),M=this.getInterpolatedStyle(s,c,u,h,S,O.top,O.right,O.bottom,O.left),T=this.getCardAnimationContext(c,u,h,S,O.top,O.right,O.bottom,O.left),X=M.containerStyle,Y=M.cardStyle,z=M.overlayStyle,B=M.shadowStyle,N=D?v.Animated.event([{nativeEvent:'vertical'===P||'vertical-inverted'===P?{translationY:f}:{translationX:f}}],{useNativeDriver:I}):void 0,_=v.StyleSheet.flatten(R||{}).backgroundColor,L='string'==typeof _&&0===(0,y.default)(_).alpha();return p.createElement(E.default.Provider,{value:T},p.createElement(v.Animated.View,{style:{opacity:u},collapsable:!1}),p.createElement(v.View,(0,n.default)({pointerEvents:"box-none"},H),V?p.createElement(v.View,{pointerEvents:"box-none",style:v.StyleSheet.absoluteFill},C({style:z})):null,p.createElement(v.Animated.View,{needsOffscreenAlphaCompositing:(t=X,!!t&&null!=v.StyleSheet.flatten(t).opacity),style:[G.container,X,k],pointerEvents:"box-none"},p.createElement(b.PanGestureHandler,(0,n.default)({enabled:0!==S.width&&D,onGestureEvent:N,onHandlerStateChange:this.handleGestureStateChange},this.gestureActivationCriteria()),p.createElement(v.Animated.View,{style:[G.container,Y]},A&&B&&!L?p.createElement(v.Animated.View,{style:[G.shadow,'horizontal'===P?[G.shadowHorizontal,G.shadowLeft]:'horizontal-inverted'===P?[G.shadowHorizontal,G.shadowRight]:'vertical'===P?[G.shadowVertical,G.shadowTop]:[G.shadowVertical,G.shadowBottom],{backgroundColor:_},B],pointerEvents:"none"}):null,p.createElement(w.default,{ref:this.contentRef,enabled:x,layout:S,style:R},j))))))}}]),k})(p.Component);e.default=k,k.defaultProps={overlayEnabled:'ios'!==v.Platform.OS,shadowEnabled:!0,gestureEnabled:!0,gestureVelocityImpact:.3,overlay:function(t){var n=t.style;return n?p.createElement(v.Animated.View,{pointerEvents:"none",style:[G.overlay,n]}):null}};var G=v.StyleSheet.create({container:{flex:1},overlay:{flex:1,backgroundColor:'#000'},shadow:{position:'absolute',shadowRadius:5,shadowColor:'#000',shadowOpacity:.3},shadowHorizontal:{top:0,bottom:0,width:3,shadowOffset:{width:-1,height:1}},shadowLeft:{left:0},shadowRight:{right:0},shadowVertical:{left:0,right:0,height:3,shadowOffset:{width:1,height:-1}},shadowTop:{top:0},shadowBottom:{bottom:0}})},750,[1,9,60,54,31,32,42,44,41,6,10,504,751,731,752,753,754,748]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=c(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var y=f?Object.getOwnPropertyDescriptor(t,l):null;y&&(y.get||y.set)?Object.defineProperty(u,l,y):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[4])),l=r(d[5]);function c(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(c=function(t){return t?o:n})(t)}var y=f.forwardRef(function(t,c){var y=t.enabled,v=t.layout,h=t.style,s=(0,u.default)(t,["enabled","layout","style"]),b=f.useState(!1),w=(0,o.default)(b,2),O=w[0],j=w[1];return f.useEffect(function(){if('undefined'!=typeof document&&document.body){var t=document.body.clientWidth,n=document.body.clientHeight;j(t===v.width&&n===v.height)}},[v.height,v.width]),f.createElement(l.View,(0,n.default)({},s,{ref:c,style:[y&&O?p.page:p.card,h]}))});e.default=y;var p=l.StyleSheet.create({page:{minHeight:'100%'},card:{flex:1,overflow:'hidden'}})},751,[1,9,19,60,6,10]); +__d(function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n},752,[6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,c){var l=(0,n.default)(c);switch(c){case'vertical':case'vertical-inverted':return t.height*l;case'horizontal':case'horizontal-inverted':return t.width*l}};var n=t(r(d[1]))},753,[1,754]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){switch(t){case'vertical':return 1;case'vertical-inverted':return-1;case'horizontal':return n.I18nManager.isRTL?-1:1;case'horizontal-inverted':return n.I18nManager.isRTL?1:-1}};var n=r(d[0])},754,[10]); +__d(function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n},755,[6]); +__d(function(g,r,i,a,m,e,d){function t(n){if("function"!=typeof WeakMap)return null;var o=new WeakMap,u=new WeakMap;return(t=function(t){return t?u:o})(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=(function(n,o){if(!o&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var u=t(o);if(u&&u.has(n))return u.get(n);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if("default"!==l&&Object.prototype.hasOwnProperty.call(n,l)){var p=c?Object.getOwnPropertyDescriptor(n,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=n[l]}f.default=n,u&&u.set(n,f);return f})(r(d[0])).createContext(void 0);e.default=n},756,[6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[6])),p=r(d[7]);function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function y(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var v=(function(t){(0,u.default)(T,t);var f,s,v=(f=T,s=y(),function(){var t,n=(0,l.default)(f);if(s){var o=(0,l.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,c.default)(this,t)});function T(){var t;(0,n.default)(this,T);for(var o=arguments.length,u=new Array(o),c=0;c=0;u--){var p=o[u](t);if(p)return p}return function(o,u){throw new Error("Invalid value of type "+typeof t+" for "+n+" argument when connecting component "+u.wrappedComponentName+".")}}function P(t,o){return t===o}function E(t){var E=void 0===t?{}:t,q=E.connectHOC,S=void 0===q?u.default:q,h=E.mapStateToPropsFactories,w=void 0===h?l.default:h,M=E.mapDispatchToPropsFactories,T=void 0===M?s.default:M,C=E.mergePropsFactories,y=void 0===C?c.default:C,D=E.selectorFactory,F=void 0===D?f.default:D;return function(t,u,s,l){void 0===l&&(l={});var c=l,f=c.pure,E=void 0===f||f,q=c.areStatesEqual,h=void 0===q?P:q,M=c.areOwnPropsEqual,C=void 0===M?p.default:M,D=c.areStatePropsEqual,O=void 0===D?p.default:D,_=c.areMergedPropsEqual,N=void 0===_?p.default:_,H=(0,n.default)(c,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),B=v(t,w,'mapStateToProps'),I=v(u,T,'mapDispatchToProps'),b=v(s,y,'mergeProps');return S(F,(0,o.default)({methodName:'connect',getDisplayName:function(t){return"Connect("+t+")"},shouldHandleStateChanges:Boolean(t),initMapStateToProps:B,initMapDispatchToProps:I,initMergeProps:b,pure:E,areStatesEqual:h,areOwnPropsEqual:C,areStatePropsEqual:O,areMergedPropsEqual:N},H))}}var q=E();e.default=q},779,[1,9,61,778,780,781,787,788,789]); +__d(function(g,r,i,a,m,e,d){"use strict";function t(t,n){return t===n?0!==t||0!==n||1/t==1/n:t!=t&&n!=n}e.__esModule=!0,e.default=function(n,u){if(t(n,u))return!0;if('object'!=typeof n||null===n||'object'!=typeof u||null===u)return!1;var o=Object.keys(n),f=Object.keys(u);if(o.length!==f.length)return!1;for(var l=0;l "+u+" Novel Id "+l)},function(t,n){return console.log("Error ",n)})},function(t,n){return console.log("Error ",n)})})});case 6:case"end":return s.stop()}},null,null,null,Promise)};var h=function(t,o,l){var c;return n.default.async(function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,n.default.awrap((0,u.fetchChapters)(t,o));case 2:c=s.sent,f.transaction(function(t){c.map(function(n){return t.executeSql("INSERT OR IGNORE INTO chapters (chapterUrl, chapterName, releaseDate, novelId) values (?, ?, ?, ?)",[n.chapterUrl,n.chapterName,n.releaseDate,l],function(o,u){var c=u.insertId;-1!==c&&(console.log("Inserted Chapter "+n.chapterUrl+" Chapter Name "+n.chapterName+" Novel Id "+l),t.executeSql("INSERT OR IGNORE INTO updates (chapterId, novelId, updateTime) values (?, ?, (datetime('now','localtime')))",[c,l],function(t,n){},function(t,n){return console.log("Error ",n)}))},function(t,n){return console.log("Error ",n)})})});case 4:case"end":return s.stop()}},null,null,null,Promise)};e.updateNovelChapters=h;e.updateAllNovels=function(){var t;return n.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,n.default.awrap((0,l.getLibrary)());case 2:t=o.sent,c.scheduleNotificationAsync({identifier:"updatingNotif",content:{title:"Updating library"},trigger:null}),t.map(function(o,l){return setTimeout(function(){return n.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.default.awrap(h(o.sourceId,o.novelUrl,o.novelId));case 2:console.log(o.novelName+" Updated"),l+1===t.length&&c.scheduleNotificationAsync({content:{title:"Library Updated",body:t.length+" novels updated"},trigger:null});case 4:case"end":return u.stop()}},null,null,null,Promise)},3e3*l)});case 5:case"end":return o.stop()}},null,null,null,Promise)};e.parseChapterNumber=function(t){var n=(t=(t=t.toLowerCase()).replace(/volume (\d+)/,"")).match(/ch (\d+)/),o=t.match(/\d+/);return n?n[0]:o?o[0]:0}},800,[1,106,801,840,841,843]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var n=r(d[0]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))});var t=r(d[1]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===t[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}}))})},801,[802,839]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.openDatabase=function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'1.0',o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,c=arguments.length>4?arguments[4]:void 0;if(void 0===n)throw new TypeError("The database name must not be undefined");return x(b(n,t,o,u,c))};var t=n(r(d[1])),o=n(r(d[2])),u=n(r(d[3]));r(d[4]);var c=n(r(d[5])),l=r(d[6]),f=n(r(d[7])),s=r(d[8]),h=l.NativeModulesProxy.ExponentSQLite,v=(function(){function n(t){(0,o.default)(this,n),this._closed=!1,this._name=t}return(0,u.default)(n,[{key:"exec",value:function(n,t,o){if(this._closed)throw new Error("The SQLite database is closed");h.exec(this._name,n.map(p),t).then(function(n){o(null,n.map(_))},function(n){o(n instanceof Error?n:new Error(n))})}},{key:"close",value:function(){this._closed=!0,h.close(this._name)}}]),n})();function p(n){return[n.sql,'android'===s.Platform.OS?n.args.map(w):n.args]}function _(n){var o=(0,t.default)(n,5),u=o[0],c=o[1],l=o[2],s=o[3],h=o[4];return null!==u?{error:new Error(u)}:{insertId:c,rowsAffected:l,rows:h.map(function(n){return(0,f.default)(s,n)})}}function w(n){return'string'==typeof n?n.replace(/\u0002/g,"\x02\x02").replace(/\u0001/g,"\x01\x02").replace(/\u0000/g,"\x01\x01"):n}var b=(0,c.default)(v);function x(n){return n.exec=function(t,o,u){n._db.exec(t,o,u)},n}},802,[1,19,31,32,803,804,429,819,10]); +__d(function(g,r,i,a,m,e,d){process.nextTick||(process.nextTick=function(n){for(var t=arguments.length,o=new Array(t>1?t-1:0),c=1;c1)for(var s=1;st&&h.push(o.item);return h},m.exports=t},815,[]); +__d(function(g,r,i,a,m,e,d){m.exports=function(){}},816,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),s=r(d[2]),o=r(d[3]);function u(){return!0}function l(n,t,s,o){this.sql=n,this.args=t,this.sqlCallback=s,this.sqlErrorCallback=o}function _(n,t){function s(){n._running=!1,c(n)}var u=n._websqlDatabase._currentTask.readOnly;n._websqlDatabase._db.exec(t,u,function(u,l){if(u)return n._error=u,s();for(var _=0;_0&&void 0!==M[0]?M[0]:{},V.t0=O.devicePushToken,V.t0){V.next=6;break}return V.next=5,n.default.awrap((0,f.default)());case 5:V.t0=V.sent;case 6:if(b=V.t0,V.t1=O.deviceId,V.t1){V.next=12;break}return V.next=11,n.default.awrap(n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,p.default.getInstallationIdAsync){t.next=3;break}throw new o.UnavailabilityError('ExpoServerRegistrationModule','getInstallationIdAsync');case 3:return t.next=5,n.default.awrap(p.default.getInstallationIdAsync());case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),new o.CodedError('ERR_NOTIF_DEVICE_ID',"Could not have fetched installation ID of the application: "+t.t0+".");case 11:case"end":return t.stop()}},null,null,[[0,8]],Promise));case 11:V.t1=V.sent;case 12:if(k=V.t1,_=O.experienceId||(null==(t=c.default.manifest)?void 0:t.currentFullName)||(null==(l=c.default.manifest)?void 0:l.id)){V.next=16;break}throw new o.CodedError('ERR_NOTIFICATIONS_NO_EXPERIENCE_ID',"No experienceId found. If it can't be inferred from the manifest (eg. in bare workflow), you have to pass it in yourself.");case 16:if(N=O.applicationId||s.applicationId){V.next=19;break}throw new o.CodedError('ERR_NOTIFICATIONS_NO_APPLICATION_ID',"No applicationId found. If it can't be inferred from native configuration by expo-application, you have to pass it in yourself.");case 19:if(T=O.type||I(b),V.t2=O.development,V.t2){V.next=25;break}return V.next=24,n.default.awrap(w());case 24:V.t2=V.sent;case 25:return S=V.t2,P=null!=(y=O.baseUrl)?y:h,C=null!=(R=O.url)?R:P+"push/getExpoPushToken",A={type:T,deviceId:k,development:S,experienceId:_,appId:N,deviceToken:E(b)},V.next=31,n.default.awrap(fetch(C,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(A)}).catch(function(t){throw new o.CodedError('ERR_NOTIFICATIONS_NETWORK_ERROR',"Error encountered while fetching Expo token: "+t+".")}));case 31:if((j=V.sent).ok){V.next=44;break}return F=j.statusText||j.status,D=void 0,V.prev=35,V.next=38,n.default.awrap(j.text());case 38:D=V.sent,V.next=43;break;case 41:V.prev=41,V.t3=V.catch(35);case 43:throw new o.CodedError('ERR_NOTIFICATIONS_SERVER_ERROR',"Error encountered while fetching Expo token, expected an OK response, received: "+F+" (body: \""+D+"\").");case 44:return V.t4=x,V.next=47,n.default.awrap(v(j));case 47:if(V.t5=V.sent,J=(0,V.t4)(V.t5),V.prev=49,!O.url&&!O.baseUrl){V.next=54;break}console.debug("[expo-notifications] Since the URL endpoint to register in has been customized in the options, expo-notifications won't try to auto-update the device push token on the server."),V.next=56;break;case 54:return V.next=56,n.default.awrap((0,u.setAutoServerRegistrationEnabledAsync)(!0));case 56:V.next=61;break;case 58:V.prev=58,V.t6=V.catch(49),console.warn('[expo-notifications] Could not enable automatically registering new device tokens with the Expo notification service',V.t6);case 61:return V.abrupt("return",{type:'expo',data:J});case 62:case"end":return V.stop()}},null,null,[[35,41],[49,58]],Promise)};var n=t(r(d[1])),o=r(d[2]),s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=l(n);if(o&&o.has(t))return o.get(t);var s={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var p=c?Object.getOwnPropertyDescriptor(t,u):null;p&&(p.get||p.set)?Object.defineProperty(s,u,p):s[u]=t[u]}s.default=t,o&&o.set(t,s);return s})(r(d[3])),c=t(r(d[4])),u=r(d[5]),p=t(r(d[6])),f=t(r(d[7]));function l(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(l=function(t){return t?o:n})(t)}var h='https://exp.host/--/api/v2/';function v(t){return n.default.async(function(s){for(;;)switch(s.prev=s.next){case 0:return s.prev=0,s.next=3,n.default.awrap(t.json());case 3:return s.abrupt("return",s.sent);case 6:return s.prev=6,s.t0=s.catch(0),s.prev=8,s.t1=o.CodedError,s.t2=JSON,s.next=13,n.default.awrap(t.text());case 13:throw s.t3=s.sent,s.t4=s.t2.stringify.call(s.t2,s.t3),s.t5="Expected a JSON response from server when fetching Expo token, received body: "+s.t4,s.t6=s.t5+".",new s.t1('ERR_NOTIFICATIONS_SERVER_ERROR',s.t6);case 20:throw s.prev=20,s.t7=s.catch(8),new o.CodedError('ERR_NOTIFICATIONS_SERVER_ERROR',"Expected a JSON response from server when fetching Expo token, received response: "+JSON.stringify(t)+".");case 23:case"end":return s.stop()}},null,null,[[0,6],[8,20]],Promise)}function x(t){if(!t||'object'!=typeof t||!t.data||'object'!=typeof t.data||!t.data.expoPushToken||'string'!=typeof t.data.expoPushToken)throw new o.CodedError('ERR_NOTIFICATIONS_SERVER_ERROR',"Malformed response from server, expected \"{ data: { expoPushToken: string } }\", received: "+JSON.stringify(t,null,2)+".");return t.data.expoPushToken}function E(t){return'string'==typeof t.data?t.data:JSON.stringify(t.data)}function w(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if('ios'!==o.Platform.OS){t.next=11;break}return t.prev=1,t.next=4,n.default.awrap(s.getIosPushNotificationServiceEnvironmentAsync());case 4:if('development'!==t.sent){t.next=7;break}return t.abrupt("return",!0);case 7:t.next=11;break;case 9:t.prev=9,t.t0=t.catch(1);case 11:return t.abrupt("return",!1);case 12:case"end":return t.stop()}},null,null,[[1,9]],Promise)}function I(t){switch(t.type){case'ios':return'apns';case'android':return'fcm';default:return t.type}}},846,[1,106,429,847,428,849,851,844]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getInstallReferrerAsync=function(){return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(s.default.getInstallReferrerAsync){n.next=2;break}throw new l.UnavailabilityError('expo-application','getInstallReferrerAsync');case 2:return n.next=4,t.default.awrap(s.default.getInstallReferrerAsync());case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)},e.getIosIdForVendorAsync=function(){var n;return t.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(s.default.getIosIdForVendorAsync){u.next=2;break}throw new l.UnavailabilityError('expo-application','getIosIdForVendorAsync');case 2:return u.next=4,t.default.awrap(s.default.getIosIdForVendorAsync());case 4:if(u.t0=n=u.sent,null==u.t0){u.next=9;break}u.t1=n,u.next=10;break;case 9:u.t1=null;case 10:return u.abrupt("return",u.t1);case 11:case"end":return u.stop()}},null,null,null,Promise)},e.getIosApplicationReleaseTypeAsync=function(){return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(s.default.getApplicationReleaseTypeAsync){n.next=2;break}throw new l.UnavailabilityError('expo-application','getApplicationReleaseTypeAsync');case 2:return n.next=4,t.default.awrap(s.default.getApplicationReleaseTypeAsync());case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)},e.getIosPushNotificationServiceEnvironmentAsync=function(){return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(s.default.getPushNotificationServiceEnvironmentAsync){n.next=2;break}throw new l.UnavailabilityError('expo-application','getPushNotificationServiceEnvironmentAsync');case 2:return n.next=4,t.default.awrap(s.default.getPushNotificationServiceEnvironmentAsync());case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)},e.getInstallationTimeAsync=function(){var n;return t.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(s.default.getInstallationTimeAsync){u.next=2;break}throw new l.UnavailabilityError('expo-application','getInstallationTimeAsync');case 2:return u.next=4,t.default.awrap(s.default.getInstallationTimeAsync());case 4:return n=u.sent,u.abrupt("return",new Date(n));case 6:case"end":return u.stop()}},null,null,null,Promise)},e.getLastUpdateTimeAsync=function(){var n;return t.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:if(s.default.getLastUpdateTimeAsync){u.next=2;break}throw new l.UnavailabilityError('expo-application','getLastUpdateTimeAsync');case 2:return u.next=4,t.default.awrap(s.default.getLastUpdateTimeAsync());case 4:return n=u.sent,u.abrupt("return",new Date(n));case 6:case"end":return u.stop()}},null,null,null,Promise)},e.ApplicationReleaseType=e.androidId=e.applicationId=e.applicationName=e.nativeBuildVersion=e.nativeApplicationVersion=void 0;var t=n(r(d[1])),l=r(d[2]),s=n(r(d[3])),u=s.default&&s.default.nativeApplicationVersion||null;e.nativeApplicationVersion=u;var o=s.default&&s.default.nativeBuildVersion||null;e.nativeBuildVersion=o;var c=s.default&&s.default.applicationName||null;e.applicationName=c;var p=s.default&&s.default.applicationId||null;e.applicationId=p;var f,y=s.default&&s.default.androidId||null;e.androidId=y,e.ApplicationReleaseType=f,(function(n){n[n.UNKNOWN=0]="UNKNOWN",n[n.SIMULATOR=1]="SIMULATOR",n[n.ENTERPRISE=2]="ENTERPRISE",n[n.DEVELOPMENT=3]="DEVELOPMENT",n[n.AD_HOC=4]="AD_HOC",n[n.APP_STORE=5]="APP_STORE"})(f||(e.ApplicationReleaseType=f={}))},847,[1,106,429,848]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoApplication;e.default=o},848,[429]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setAutoServerRegistrationEnabledAsync=function(t){var u;return n.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(null==(u=f)||u.abort(),o.default.setRegistrationInfoAsync){l.next=3;break}throw new s.UnavailabilityError('ServerRegistrationModule','setRegistrationInfoAsync');case 3:return l.next=5,n.default.awrap(o.default.setRegistrationInfoAsync(t?JSON.stringify({isEnabled:t}):null));case 5:case"end":return l.stop()}},null,null,null,Promise)},e.__handlePersistedRegistrationInfoAsync=v;var n=t(r(d[1]));r(d[2]);var s=r(d[3]),o=t(r(d[4])),u=r(d[5]),l=t(r(d[6])),c=r(d[7]),f=null;function p(t){var s;return n.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return null==(s=f)||s.abort(),f=new AbortController,o.next=4,n.default.awrap((0,c.updateDevicePushTokenAsync)(f.signal,t));case 4:return o.abrupt("return",o.sent);case 5:case"end":return o.stop()}},null,null,null,Promise)}function v(t){var s,o,u;return n.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if(t){c.next=2;break}return c.abrupt("return");case 2:o=null;try{o=JSON.parse(t)}catch(t){console.warn('[expo-notifications] Error encountered while fetching registration information for auto token updates.',t)}if(null!=(s=o)&&s.isEnabled){c.next=6;break}return c.abrupt("return");case 6:return c.prev=6,c.next=9,n.default.awrap((0,l.default)());case 9:return u=c.sent,c.next=12,n.default.awrap(p(u));case 12:c.next=17;break;case 14:c.prev=14,c.t0=c.catch(6),console.warn('[expo-notifications] Error encountered while updating server registration with latest device push token.',c.t0);case 17:case"end":return c.stop()}},null,null,[[6,14]],Promise)}o.default.getRegistrationInfoAsync?((0,u.addPushTokenListener)(function(t){var s,u;return n.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:return l.prev=0,l.next=3,n.default.awrap(o.default.getRegistrationInfoAsync());case 3:if(s=l.sent){l.next=6;break}return l.abrupt("return");case 6:if(null==(u=JSON.parse(s))||!u.isEnabled){l.next=10;break}return l.next=10,n.default.awrap(p(t));case 10:l.next=15;break;case 12:l.prev=12,l.t0=l.catch(0),console.warn('[expo-notifications] Error encountered while updating server registration with latest device push token.',l.t0);case 15:case"end":return l.stop()}},null,null,[[0,12]],Promise)}),o.default.getRegistrationInfoAsync().then(v)):console.warn("[expo-notifications] Error encountered while fetching auto-registration state, new tokens will not be automatically registered on server.",new s.UnavailabilityError('ServerRegistrationModule','getRegistrationInfoAsync'))},849,[1,106,850,429,851,852,844,853]); +__d(function(g,r,i,a,m,e,d){"use strict";var o=r(d[0]),n="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==g?g:void 0;n&&(void 0===n.AbortController&&(n.AbortController=o.AbortController),void 0===n.AbortSignal&&(n.AbortSignal=o.AbortSignal))},850,[157]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.NotificationsServerRegistrationModule;e.default=o},851,[429]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.addPushTokenListener=function(n){return u.addListener(c,function(o){var u=o.devicePushToken;return n({data:u,type:t.Platform.OS})})},e.removePushTokenSubscription=function(n){u.removeSubscription(n)};var t=r(d[1]),o=n(r(d[2])),u=new t.EventEmitter(o.default),c='onDevicePushToken'},852,[1,429,845]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.updateDevicePushTokenAsync=function(t,f){var x,w,b,y,k,I,P;return n.default.async(function(O){for(;;)switch(O.prev=O.next){case 0:x=function(c){var x,w,b,y,k,I;return n.default.async(function(P){for(;;)switch(P.prev=P.next){case 0:return P.next=2,n.default.awrap(Promise.all([h(),n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,l.default.getInstallationIdAsync){t.next=3;break}throw new u.UnavailabilityError('ExpoServerRegistrationModule','getInstallationIdAsync');case 3:return t.next=5,n.default.awrap(l.default.getInstallationIdAsync());case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),new u.CodedError('ERR_NOTIFICATIONS_DEVICE_ID',"Could not fetch the installation ID of the application: "+t.t0+".");case 11:case"end":return t.stop()}},null,null,[[0,8]],Promise)]));case 2:return x=P.sent,w=(0,o.default)(x,2),b=w[0],y=w[1],k={deviceId:y,development:b,deviceToken:f.data,appId:s.applicationId,type:v(f)},P.prev=7,P.next=10,n.default.awrap(fetch(p,{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify(k),signal:t}));case 10:if((I=P.sent).ok){P.next=17;break}return P.t0=console,P.next=15,n.default.awrap(I.text());case 15:P.t1=P.sent,P.t0.debug.call(P.t0,'[expo-notifications] Error encountered while updating the device push token with the server:',P.t1);case 17:I.ok||c(),P.next=26;break;case 20:if(P.prev=20,P.t2=P.catch(7),'AbortError'!==P.t2.name){P.next=24;break}return P.abrupt("return");case 24:console.warn('[expo-notifications] Error thrown while updating the device push token with the server:',P.t2),c();case 26:case"end":return P.stop()}},null,null,[[7,20]],Promise)},w=!0,b=function(){w=!0},y=0,k=500,I={maxBackoff:12e4},P=(0,c.computeNextBackoffInterval)(k,y,I);case 7:if(!w||t.aborted){O.next=18;break}return w=!1,O.next=11,n.default.awrap(x(b));case 11:if(!w||t.aborted){O.next=16;break}return P=(0,c.computeNextBackoffInterval)(k,y,I),y+=1,O.next=16,n.default.awrap(new Promise(function(t){return setTimeout(t,P)}));case 16:O.next=7;break;case 18:case"end":return O.stop()}},null,null,null,Promise)};var n=t(r(d[1])),o=t(r(d[2])),c=r(d[3]),u=r(d[4]),s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=f(n);if(o&&o.has(t))return o.get(t);var c={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var l=u?Object.getOwnPropertyDescriptor(t,s):null;l&&(l.get||l.set)?Object.defineProperty(c,s,l):c[s]=t[s]}c.default=t,o&&o.set(t,c);return c})(r(d[5])),l=t(r(d[6]));function f(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(f=function(t){return t?o:n})(t)}var p='https://exp.host/--/api/v2/push/updateDeviceToken';function v(t){switch(t.type){case'ios':return'apns';case'android':return'fcm';default:return t.type}}function h(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if('ios'!==u.Platform.OS){t.next=11;break}return t.prev=1,t.next=4,n.default.awrap(s.getIosPushNotificationServiceEnvironmentAsync());case 4:if('development'!==t.sent){t.next=7;break}return t.abrupt("return",!0);case 7:t.next=11;break;case 9:t.prev=9,t.t0=t.catch(1);case 11:return t.abrupt("return",!1);case 12:case"end":return t.stop()}},null,null,[[1,9]],Promise)}},853,[1,106,19,854,429,847,851]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var o=t(r(d[0]));e.computeNextBackoffInterval=function(t,n){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},f=u.multiplier,l=void 0===f?1.5:f,v=u.randomizationFactor,c=void 0===v?.25:v,s=u.minBackoff,h=void 0===s?t:s,b=u.maxBackoff,p=void 0===b?1/0:b;o.default(t>0,"The initial backoff interval must be positive"),o.default(n>=0,"The previous retry count must not be negative"),o.default(l>=1,"The backoff multiplier must be greater than or equal to 1"),o.default(0<=c&&c<=1,"The randomization factor must be between 0 and 1, inclusive"),o.default(h>=0,"The minimum backoff interval must be positive");var _=t*Math.pow(l,n),k=1-c+2*c*Math.random();return Math.min(Math.max(_*k,h),p)}},854,[855]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(n){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(n)}function n(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}var o,c,s=r(d[0]).codes,u=s.ERR_AMBIGUOUS_ARGUMENT,f=s.ERR_INVALID_ARG_TYPE,l=s.ERR_INVALID_ARG_VALUE,p=s.ERR_INVALID_RETURN_VALUE,h=s.ERR_MISSING_ARGS,w=r(d[1]),E=r(d[2]).inspect,v=r(d[2]).types,y=v.isPromise,S=v.isRegExp,x=Object.assign?Object.assign:r(d[3]).assign,q=Object.is?Object.is:r(d[4]);new Map;function F(){var t=r(d[5]);o=t.isDeepEqual,c=t.isDeepStrictEqual}var b=!1,k=m.exports=_,R={};function j(t){if(t.message instanceof Error)throw t.message;throw new w(t)}function A(t,n,o,c){if(!o){var s=!1;if(0===n)s=!0,c='No value argument passed to `assert.ok()`';else if(c instanceof Error)throw c;var u=new w({actual:o,expected:!0,message:c,operator:'==',stackStartFn:t});throw u.generatedMessage=s,u}}function _(){for(var t=arguments.length,n=new Array(t),o=0;o1?o-1:0),s=1;s1?o-1:0),s=1;s1?o-1:0),s=1;s1?o-1:0),s=1;s2?"one of ".concat(n," ").concat(t.slice(0,o-1).join(', '),", or ")+t[o-1]:2===o?"one of ".concat(n," ").concat(t[0]," or ").concat(t[1]):"of ".concat(n," ").concat(t[0])}return"of ".concat(n," ").concat(String(t))}function h(t,n,o){return(void 0===o||o>t.length)&&(o=t.length),t.substring(o-n.length,o)===n}function _(t,n,o){return'number'!=typeof o&&(o=0),!(o+n.length>t.length)&&-1!==t.indexOf(n,o)}y('ERR_AMBIGUOUS_ARGUMENT','The "%s" argument is ambiguous. %s',TypeError),y('ERR_INVALID_ARG_TYPE',function(n,o,c){var u,f,p,l;if(void 0===s&&(s=r(d[0])),s('string'==typeof n,"'name' must be a string"),'string'==typeof o&&(f='not ',o.substr(!p||p<0?0:+p,f.length)===f)?(u='must not be',o=o.replace(/^not /,'')):u='must be',h(n,' argument'))l="The ".concat(n," ").concat(u," ").concat(b(o,'type'));else{var y=_(n,'.')?'property':'argument';l="The \"".concat(n,"\" ").concat(y," ").concat(u," ").concat(b(o,'type'))}return l+=". Received type ".concat(t(c))},TypeError),y('ERR_INVALID_ARG_VALUE',function(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:'is invalid';void 0===p&&(p=r(d[1]));var c=p.inspect(n);return c.length>128&&(c="".concat(c.slice(0,128),"...")),"The argument '".concat(t,"' ").concat(o,". Received ").concat(c)},TypeError,RangeError),y('ERR_INVALID_RETURN_VALUE',function(n,o,c){var u;return u=c&&c.constructor&&c.constructor.name?"instance of ".concat(c.constructor.name):"type ".concat(t(c)),"Expected ".concat(n," to be returned from the \"").concat(o,"\"")+" function but got ".concat(u,".")},TypeError),y('ERR_MISSING_ARGS',function(){for(var t=arguments.length,n=new Array(t),o=0;o0,'At least one arg needs to be specified');var c='The ',u=n.length;switch(n=n.map(function(t){return"\"".concat(t,"\"")}),u){case 1:c+="".concat(n[0]," argument");break;case 2:c+="".concat(n[0]," and ").concat(n[1]," arguments");break;default:c+=n.slice(0,u-1).join(', '),c+=", and ".concat(n[u-1]," arguments")}return"".concat(c," must be specified")},TypeError),m.exports.codes=l},856,[855,857]); +__d(function(g,r,i,a,m,e,d){var t=Object.getOwnPropertyDescriptors||function(t){for(var n=Object.keys(t),o={},u=0;u=l)return t;switch(t){case'%s':return String(c[u++]);case'%d':return Number(c[u++]);case'%j':try{return JSON.stringify(c[u++])}catch(t){return'[Circular]'}default:return t}}),f=c[u];u=3&&(o.depth=arguments[2]),arguments.length>=4&&(o.colors=arguments[3]),E(n)?o.showHidden=n:n&&e._extend(o,n),D(o.showHidden)&&(o.showHidden=!1),D(o.depth)&&(o.depth=2),D(o.colors)&&(o.colors=!1),D(o.customInspect)&&(o.customInspect=!0),o.colors&&(o.stylize=l),y(o,t,o.depth)}function l(t,n){var o=s.styles[n];return o?"\x1b["+s.colors[o][0]+'m'+t+"\x1b["+s.colors[o][1]+'m':t}function p(t,n){return t}function f(t){var n={};return t.forEach(function(t,o){n[t]=!0}),n}function y(t,n,o){if(t.customInspect&&n&&F(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var u=n.inspect(o,t);return x(u)||(u=y(t,u,o)),u}var c=b(t,n);if(c)return c;var s=Object.keys(n),l=f(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),$(n)&&(s.indexOf('message')>=0||s.indexOf('description')>=0))return h(n);if(0===s.length){if(F(n)){var p=n.name?': '+n.name:'';return t.stylize('[Function'+p+']','special')}if(P(n))return t.stylize(RegExp.prototype.toString.call(n),'regexp');if(T(n))return t.stylize(Date.prototype.toString.call(n),'date');if($(n))return h(n)}var E,S='',z=!1,D=['{','}'];(w(n)&&(z=!0,D=['[',']']),F(n))&&(S=' [Function'+(n.name?': '+n.name:'')+']');return P(n)&&(S=' '+RegExp.prototype.toString.call(n)),T(n)&&(S=' '+Date.prototype.toUTCString.call(n)),$(n)&&(S=' '+h(n)),0!==s.length||z&&0!=n.length?o<0?P(n)?t.stylize(RegExp.prototype.toString.call(n),'regexp'):t.stylize('[Object]','special'):(t.seen.push(n),E=z?v(t,n,o,l,s):s.map(function(u){return O(t,n,o,l,u,z)}),t.seen.pop(),j(E,S,D)):D[0]+S+D[1]}function b(t,n){if(D(n))return t.stylize('undefined','undefined');if(x(n)){var o='\''+JSON.stringify(n).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+'\'';return t.stylize(o,'string')}return z(n)?t.stylize(''+n,'number'):E(n)?t.stylize(''+n,'boolean'):S(n)?t.stylize('null','null'):void 0}function h(t){return'['+Error.prototype.toString.call(t)+']'}function v(t,n,o,u,c){for(var s=[],l=0,p=n.length;l-1&&(p=s?p.split('\n').map(function(t){return' '+t}).join('\n').substr(2):'\n'+p.split('\n').map(function(t){return' '+t}).join('\n')):p=t.stylize('[Circular]','special')),D(l)){if(s&&c.match(/^\d+$/))return p;(l=JSON.stringify(''+c)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=t.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=t.stylize(l,'string'))}return l+': '+p}function j(t,n,o){return t.reduce(function(t,n){return 0,n.indexOf('\n')>=0&&0,t+n.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?o[0]+(''===n?'':n+'\n ')+' '+t.join(',\n ')+' '+o[1]:o[0]+n+' '+t.join(', ')+' '+o[1]}function w(t){return Array.isArray(t)}function E(t){return'boolean'==typeof t}function S(t){return null===t}function z(t){return'number'==typeof t}function x(t){return'string'==typeof t}function D(t){return void 0===t}function P(t){return N(t)&&'[object RegExp]'===_(t)}function N(t){return'object'==typeof t&&null!==t}function T(t){return N(t)&&'[object Date]'===_(t)}function $(t){return N(t)&&('[object Error]'===_(t)||t instanceof Error)}function F(t){return'function'==typeof t}function _(t){return Object.prototype.toString.call(t)}function k(t){return t<10?'0'+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!o[t])if(u.test(t)){var n=process.pid;o[t]=function(){var o=e.format.apply(e,arguments);console.error('%s %d: %s',t,n,o)}}else o[t]=function(){};return o[t]},e.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:'cyan',number:'yellow',boolean:'yellow',undefined:'grey',null:'bold',string:'green',date:'magenta',regexp:'red'},e.types=r(d[0]),e.isArray=w,e.isBoolean=E,e.isNull=S,e.isNullOrUndefined=function(t){return null==t},e.isNumber=z,e.isString=x,e.isSymbol=function(t){return'symbol'==typeof t},e.isUndefined=D,e.isRegExp=P,e.types.isRegExp=P,e.isObject=N,e.isDate=T,e.types.isDate=T,e.isError=$,e.types.isNativeError=$,e.isFunction=F,e.isPrimitive=function(t){return null===t||'boolean'==typeof t||'number'==typeof t||'string'==typeof t||'symbol'==typeof t||void 0===t},e.isBuffer=r(d[1]);var A=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];function R(t,n){return Object.prototype.hasOwnProperty.call(t,n)}e.log=function(){var t,n;console.log('%s - %s',(t=new Date,n=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(':'),[t.getDate(),A[t.getMonth()],n].join(' ')),e.format.apply(e,arguments))},e.inherits=r(d[2]),e._extend=function(t,n){if(!n||!N(n))return t;for(var o=Object.keys(n),u=o.length;u--;)t[o[u]]=n[o[u]];return t};var U='undefined'!=typeof Symbol?Symbol('util.promisify.custom'):void 0;function J(t,n){if(!t){var o=new Error('Promise was rejected with a falsy value');o.reason=t,t=o}return n(t)}e.promisify=function(n){if('function'!=typeof n)throw new TypeError('The "original" argument must be of type Function');if(U&&n[U]){var o;if('function'!=typeof(o=n[U]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(o,U,{value:o,enumerable:!1,writable:!1,configurable:!0}),o}function o(){for(var t,o,u=new Promise(function(n,u){t=n,o=u}),c=[],s=0;s=0&&'[object Array]'!==o(t)&&'[object Function]'===o(t.callee)},u=(function(){return n(arguments)})();n.isLegacyArguments=c,m.exports=u?n:c},859,[860]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=n(t('String.prototype.indexOf'));m.exports=function(p,f){var u=t(p,!!f);return'function'==typeof u&&o(p,'.prototype.')>-1?n(u):u}},860,[861,867]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=SyntaxError,o=Function,n=TypeError,y=function(t){try{return o('"use strict"; return ('+t+').constructor;')()}catch(t){}},p=Object.getOwnPropertyDescriptor;if(p)try{p({},'')}catch(t){p=null}var f=function(){throw new n},c=p?(function(){try{return arguments.callee,f}catch(t){try{return p(arguments,'callee').get}catch(t){return f}}})():f,l=r(d[0])(),u=Object.getPrototypeOf||function(t){return t.__proto__},s={},A='undefined'==typeof Uint8Array?void 0:u(Uint8Array),P={'%AggregateError%':'undefined'==typeof AggregateError?void 0:AggregateError,'%Array%':Array,'%ArrayBuffer%':'undefined'==typeof ArrayBuffer?void 0:ArrayBuffer,'%ArrayIteratorPrototype%':l?u([][Symbol.iterator]()):void 0,'%AsyncFromSyncIteratorPrototype%':void 0,'%AsyncFunction%':s,'%AsyncGenerator%':s,'%AsyncGeneratorFunction%':s,'%AsyncIteratorPrototype%':s,'%Atomics%':'undefined'==typeof Atomics?void 0:Atomics,'%BigInt%':'undefined'==typeof BigInt?void 0:BigInt,'%Boolean%':Boolean,'%DataView%':'undefined'==typeof DataView?void 0:DataView,'%Date%':Date,'%decodeURI%':decodeURI,'%decodeURIComponent%':decodeURIComponent,'%encodeURI%':encodeURI,'%encodeURIComponent%':encodeURIComponent,'%Error%':Error,'%eval%':eval,'%EvalError%':EvalError,'%Float32Array%':'undefined'==typeof Float32Array?void 0:Float32Array,'%Float64Array%':'undefined'==typeof Float64Array?void 0:Float64Array,'%FinalizationRegistry%':'undefined'==typeof FinalizationRegistry?void 0:FinalizationRegistry,'%Function%':o,'%GeneratorFunction%':s,'%Int8Array%':'undefined'==typeof Int8Array?void 0:Int8Array,'%Int16Array%':'undefined'==typeof Int16Array?void 0:Int16Array,'%Int32Array%':'undefined'==typeof Int32Array?void 0:Int32Array,'%isFinite%':isFinite,'%isNaN%':isNaN,'%IteratorPrototype%':l?u(u([][Symbol.iterator]())):void 0,'%JSON%':'object'==typeof JSON?JSON:void 0,'%Map%':'undefined'==typeof Map?void 0:Map,'%MapIteratorPrototype%':'undefined'!=typeof Map&&l?u((new Map)[Symbol.iterator]()):void 0,'%Math%':Math,'%Number%':Number,'%Object%':Object,'%parseFloat%':parseFloat,'%parseInt%':parseInt,'%Promise%':'undefined'==typeof Promise?void 0:Promise,'%Proxy%':'undefined'==typeof Proxy?void 0:Proxy,'%RangeError%':RangeError,'%ReferenceError%':ReferenceError,'%Reflect%':'undefined'==typeof Reflect?void 0:Reflect,'%RegExp%':RegExp,'%Set%':'undefined'==typeof Set?void 0:Set,'%SetIteratorPrototype%':'undefined'!=typeof Set&&l?u((new Set)[Symbol.iterator]()):void 0,'%SharedArrayBuffer%':'undefined'==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,'%String%':String,'%StringIteratorPrototype%':l?u(''[Symbol.iterator]()):void 0,'%Symbol%':l?Symbol:void 0,'%SyntaxError%':t,'%ThrowTypeError%':c,'%TypedArray%':A,'%TypeError%':n,'%Uint8Array%':'undefined'==typeof Uint8Array?void 0:Uint8Array,'%Uint8ClampedArray%':'undefined'==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,'%Uint16Array%':'undefined'==typeof Uint16Array?void 0:Uint16Array,'%Uint32Array%':'undefined'==typeof Uint32Array?void 0:Uint32Array,'%URIError%':URIError,'%WeakMap%':'undefined'==typeof WeakMap?void 0:WeakMap,'%WeakRef%':'undefined'==typeof WeakRef?void 0:WeakRef,'%WeakSet%':'undefined'==typeof WeakSet?void 0:WeakSet},v=function t(o){var n;if('%AsyncFunction%'===o)n=y('async function () {}');else if('%GeneratorFunction%'===o)n=y('function* () {}');else if('%AsyncGeneratorFunction%'===o)n=y('async function* () {}');else if('%AsyncGenerator%'===o){var p=t('%AsyncGeneratorFunction%');p&&(n=p.prototype)}else if('%AsyncIteratorPrototype%'===o){var f=t('%AsyncGenerator%');f&&(n=u(f.prototype))}return P[o]=n,n},S={'%ArrayBufferPrototype%':['ArrayBuffer','prototype'],'%ArrayPrototype%':['Array','prototype'],'%ArrayProto_entries%':['Array','prototype','entries'],'%ArrayProto_forEach%':['Array','prototype','forEach'],'%ArrayProto_keys%':['Array','prototype','keys'],'%ArrayProto_values%':['Array','prototype','values'],'%AsyncFunctionPrototype%':['AsyncFunction','prototype'],'%AsyncGenerator%':['AsyncGeneratorFunction','prototype'],'%AsyncGeneratorPrototype%':['AsyncGeneratorFunction','prototype','prototype'],'%BooleanPrototype%':['Boolean','prototype'],'%DataViewPrototype%':['DataView','prototype'],'%DatePrototype%':['Date','prototype'],'%ErrorPrototype%':['Error','prototype'],'%EvalErrorPrototype%':['EvalError','prototype'],'%Float32ArrayPrototype%':['Float32Array','prototype'],'%Float64ArrayPrototype%':['Float64Array','prototype'],'%FunctionPrototype%':['Function','prototype'],'%Generator%':['GeneratorFunction','prototype'],'%GeneratorPrototype%':['GeneratorFunction','prototype','prototype'],'%Int8ArrayPrototype%':['Int8Array','prototype'],'%Int16ArrayPrototype%':['Int16Array','prototype'],'%Int32ArrayPrototype%':['Int32Array','prototype'],'%JSONParse%':['JSON','parse'],'%JSONStringify%':['JSON','stringify'],'%MapPrototype%':['Map','prototype'],'%NumberPrototype%':['Number','prototype'],'%ObjectPrototype%':['Object','prototype'],'%ObjProto_toString%':['Object','prototype','toString'],'%ObjProto_valueOf%':['Object','prototype','valueOf'],'%PromisePrototype%':['Promise','prototype'],'%PromiseProto_then%':['Promise','prototype','then'],'%Promise_all%':['Promise','all'],'%Promise_reject%':['Promise','reject'],'%Promise_resolve%':['Promise','resolve'],'%RangeErrorPrototype%':['RangeError','prototype'],'%ReferenceErrorPrototype%':['ReferenceError','prototype'],'%RegExpPrototype%':['RegExp','prototype'],'%SetPrototype%':['Set','prototype'],'%SharedArrayBufferPrototype%':['SharedArrayBuffer','prototype'],'%StringPrototype%':['String','prototype'],'%SymbolPrototype%':['Symbol','prototype'],'%SyntaxErrorPrototype%':['SyntaxError','prototype'],'%TypedArrayPrototype%':['TypedArray','prototype'],'%TypeErrorPrototype%':['TypeError','prototype'],'%Uint8ArrayPrototype%':['Uint8Array','prototype'],'%Uint8ClampedArrayPrototype%':['Uint8ClampedArray','prototype'],'%Uint16ArrayPrototype%':['Uint16Array','prototype'],'%Uint32ArrayPrototype%':['Uint32Array','prototype'],'%URIErrorPrototype%':['URIError','prototype'],'%WeakMapPrototype%':['WeakMap','prototype'],'%WeakSetPrototype%':['WeakSet','prototype']},E=r(d[1]),I=r(d[2]),F=E.call(Function.call,Array.prototype.concat),h=E.call(Function.apply,Array.prototype.splice),U=E.call(Function.call,String.prototype.replace),b=E.call(Function.call,String.prototype.slice),R=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,w=/\\(\\)?/g,O=function(o){var n=b(o,0,1),y=b(o,-1);if('%'===n&&'%'!==y)throw new t('invalid intrinsic syntax, expected closing `%`');if('%'===y&&'%'!==n)throw new t('invalid intrinsic syntax, expected opening `%`');var p=[];return U(o,R,function(t,o,n,y){p[p.length]=n?U(y,w,'$1'):o||t}),p},x=function(o,y){var p,f=o;if(I(S,f)&&(f='%'+(p=S[f])[0]+'%'),I(P,f)){var c=P[f];if(c===s&&(c=v(f)),void 0===c&&!y)throw new n('intrinsic '+o+' exists, but is not available. Please file an issue!');return{alias:p,name:f,value:c}}throw new t('intrinsic '+o+' does not exist!')};m.exports=function(o,y){if('string'!=typeof o||0===o.length)throw new n('intrinsic name must be a non-empty string');if(arguments.length>1&&'boolean'!=typeof y)throw new n('"allowMissing" argument must be a boolean');var f=O(o),c=f.length>0?f[0]:'',l=x('%'+c+'%',y),u=l.name,s=l.value,A=!1,v=l.alias;v&&(c=v[0],h(f,F([0,1],v)));for(var S=1,E=!0;S=f.length){var B=p(s,U);s=(E=!!B)&&'get'in B&&!('originalValue'in B.get)?B.get:s[U]}else E=I(s,U),s=s[U];E&&!A&&(P[u]=s)}}return s}},861,[862,864,866]); +__d(function(g,r,i,a,m,e,d){'use strict';var o='undefined'!=typeof Symbol&&Symbol,t=r(d[0]);m.exports=function(){return'function'==typeof o&&('function'==typeof Symbol&&('symbol'==typeof o('foo')&&('symbol'==typeof Symbol('bar')&&t())))}},862,[863]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){if('function'!=typeof Symbol||'function'!=typeof Object.getOwnPropertySymbols)return!1;if('symbol'==typeof Symbol.iterator)return!0;var t={},o=Symbol('test'),n=Object(o);if('string'==typeof o)return!1;if('[object Symbol]'!==Object.prototype.toString.call(o))return!1;if('[object Symbol]'!==Object.prototype.toString.call(n))return!1;for(o in t[o]=42,t)return!1;if('function'==typeof Object.keys&&0!==Object.keys(t).length)return!1;if('function'==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var c=Object.getOwnPropertySymbols(t);if(1!==c.length||c[0]!==o)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,o))return!1;if('function'==typeof Object.getOwnPropertyDescriptor){var y=Object.getOwnPropertyDescriptor(t,o);if(42!==y.value||!0!==y.enumerable)return!1}return!0}},863,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=Function.prototype.bind||t},864,[865]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=Array.prototype.slice,n=Object.prototype.toString;m.exports=function(o){var p=this;if('function'!=typeof p||"[object Function]"!==n.call(p))throw new TypeError("Function.prototype.bind called on incompatible "+p);for(var c,l=t.call(arguments,1),u=Math.max(0,p.length-l.length),y=[],f=0;f-1}return!!S&&b(t)}},874,[870,871,860,862,873]); +__d(function(g,r,i,a,m,e,d){m.exports=function(t){return t&&'object'==typeof t&&'function'==typeof t.copy&&'function'==typeof t.fill&&'function'==typeof t.readUInt8}},875,[]); +__d(function(g,r,i,a,m,e,d){'function'==typeof Object.create?m.exports=function(t,o){o&&(t.super_=o,t.prototype=Object.create(o.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:m.exports=function(t,o){if(o){t.super_=o;var p=function(){};p.prototype=o.prototype,t.prototype=new p,t.prototype.constructor=t}}},876,[]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(t){for(var c=1;ct.length)&&(c=t.length),t.substring(c-n.length,c)===n}function O(t,n){if(n=Math.floor(n),0==t.length||0==n)return'';var c=t.length*n;for(n=Math.floor(Math.log(n)/Math.log(2));n;)t+=t,n--;return t+=t.substring(0,c-t.length)}var S='',x='',w='',k='',P={deepStrictEqual:'Expected values to be strictly deep-equal:',strictEqual:'Expected values to be strictly equal:',strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:'Expected values to be loosely deep-equal:',equal:'Expected values to be loosely equal:',notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:'Values identical but not reference-equal:'},R=10;function T(t){var n=Object.keys(t),c=Object.create(Object.getPrototypeOf(t));return n.forEach(function(n){c[n]=t[n]}),Object.defineProperty(c,'message',{value:t.message}),c}function _(t){return v(t,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function D(t,n,c){var o='',l='',u=0,s='',f=!1,p=_(t),b=p.split('\n'),h=_(n).split('\n'),y=0,v='';if('strictEqual'===c&&'object'===E(t)&&'object'===E(n)&&null!==t&&null!==n&&(c='strictEqualObject'),1===b.length&&1===h.length&&b[0]!==h[0]){var q=b[0].length+h[0].length;if(q<=R){if(!('object'===E(t)&&null!==t||'object'===E(n)&&null!==n||0===t&&0===n))return"".concat(P[c],"\n\n")+"".concat(b[0]," !== ").concat(h[0],"\n")}else if('strictEqualObject'!==c){if(q<(process.stderr&&process.stderr.isTTY?process.stderr.columns:80)){for(;b[0][y]===h[0][y];)y++;y>2&&(v="\n ".concat(O(' ',y),"^"),y=0)}}}for(var T=b[b.length-1],D=h[h.length-1];T===D&&(y++<2?s="\n ".concat(T).concat(s):o=T,b.pop(),h.pop(),0!==b.length&&0!==h.length);)T=b[b.length-1],D=h[h.length-1];var I=Math.max(b.length,h.length);if(0===I){var M=p.split('\n');if(M.length>30)for(M[26]="".concat(S,"...").concat(k);M.length>27;)M.pop();return"".concat(P.notIdentical,"\n\n").concat(M.join('\n'),"\n")}y>3&&(s="\n".concat(S,"...").concat(k).concat(s),f=!0),''!==o&&(s="\n ".concat(o).concat(s),o='');var A=0,L=P[c]+"\n".concat(x,"+ actual").concat(k," ").concat(w,"- expected").concat(k),C=" ".concat(S,"...").concat(k," Lines skipped");for(y=0;y1&&y>2&&(F>4?(l+="\n".concat(S,"...").concat(k),f=!0):F>3&&(l+="\n ".concat(h[y-2]),A++),l+="\n ".concat(h[y-1]),A++),u=y,o+="\n".concat(w,"-").concat(k," ").concat(h[y]),A++;else if(h.length1&&y>2&&(F>4?(l+="\n".concat(S,"...").concat(k),f=!0):F>3&&(l+="\n ".concat(b[y-2]),A++),l+="\n ".concat(b[y-1]),A++),u=y,l+="\n".concat(x,"+").concat(k," ").concat(b[y]),A++;else{var N=h[y],Y=b[y],V=Y!==N&&(!j(Y,',')||Y.slice(0,-1)!==N);V&&j(N,',')&&N.slice(0,-1)===Y&&(V=!1,Y+=','),V?(F>1&&y>2&&(F>4?(l+="\n".concat(S,"...").concat(k),f=!0):F>3&&(l+="\n ".concat(b[y-2]),A++),l+="\n ".concat(b[y-1]),A++),u=y,l+="\n".concat(x,"+").concat(k," ").concat(Y),o+="\n".concat(w,"-").concat(k," ").concat(N),A+=2):(l+=o,o='',1!==F&&0!==y||(l+="\n ".concat(Y),A++))}if(A>20&&y30)for(O[26]="".concat(S,"...").concat(k);O.length>27;)O.pop();n=1===O.length?l(this,y(p).call(this,"".concat(j," ").concat(O[0]))):l(this,y(p).call(this,"".concat(j,"\n\n").concat(O.join('\n'),"\n")))}else{var R=_(b),I='',M=P[s];'notDeepEqual'===s||'notEqual'===s?(R="".concat(P[s],"\n\n").concat(R)).length>1024&&(R="".concat(R.slice(0,1021),"...")):(I="".concat(_(h)),R.length>512&&(R="".concat(R.slice(0,509),"...")),I.length>512&&(I="".concat(I.slice(0,509),"...")),'deepEqual'===s||'equal'===s?R="".concat(M,"\n\n").concat(R,"\n\nshould equal\n\n"):I=" ".concat(s," ").concat(I)),n=l(this,y(p).call(this,"".concat(R).concat(I)))}return Error.stackTraceLimit=v,n.generatedMessage=!o,Object.defineProperty(u(n),'name',{value:'AssertionError [ERR_ASSERTION]',enumerable:!1,writable:!0,configurable:!0}),n.code='ERR_ASSERTION',n.actual=b,n.expected=h,n.operator=s,Error.captureStackTrace&&Error.captureStackTrace(u(n),f),n.stack,n.name='AssertionError',l(n)}var b,h,j;return s(p,f(Error)),b=p,(h=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:v.custom,value:function(n,c){return v(this,t({},c,{customInspect:!1,depth:0}))}}])&&o(b.prototype,h),j&&o(b,j),p})();m.exports=I},877,[857,856]); +__d(function(g,r,i,a,m,e,d){'use strict';function t(t,n){if(void 0===t||null===t)throw new TypeError('Cannot convert first argument to object');for(var o=Object(t),c=1;c2?arguments[2]:{},p=t(u);o&&(p=c.call(p,Object.getOwnPropertySymbols(u)));for(var y=0;y=0&&'[object Function]'===t.call(n.callee)),c}},882,[]); +__d(function(g,r,i,a,m,e,d){'use strict';var t;if(!Object.keys){var n=Object.prototype.hasOwnProperty,o=Object.prototype.toString,l=r(d[0]),c=Object.prototype.propertyIsEnumerable,f=!c.call({toString:null},'toString'),u=c.call(function(){},'prototype'),p=['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'],s=function(t){var n=t.constructor;return n&&n.prototype===t},$={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},w=(function(){if('undefined'==typeof window)return!1;for(var t in window)try{if(!$['$'+t]&&n.call(window,t)&&null!==window[t]&&'object'==typeof window[t])try{s(window[t])}catch(t){return!0}}catch(t){return!0}return!1})(),h=function(t){if('undefined'==typeof window||!w)return s(t);try{return s(t)}catch(t){return!1}};t=function(t){var c=null!==t&&'object'==typeof t,s='[object Function]'===o.call(t),$=l(t),w=c&&'[object String]'===o.call(t),y=[];if(!c&&!s&&!$)throw new TypeError('Object.keys called on a non-object');var b=u&&s;if(w&&t.length>0&&!n.call(t,0))for(var v=0;v0)for(var O=0;O10)return!0;for(var n=0;n57)return!0}return 10===t.length&&t>=Math.pow(2,32)}function q(t){return Object.keys(t).filter(T).concat(p(t).filter(Object.prototype.propertyIsEnumerable.bind(t)))}function F(t,n){if(t===n)return 0;for(var u=t.length,l=n.length,o=0,f=Math.min(u,l);o1&&void 0!==l[1]?l[1]:(0,o.default)(),c.default.presentNotificationAsync){f.next=4;break}throw new u.UnavailabilityError('Notifications','presentNotificationAsync');case 4:return f.next=6,n.default.awrap(c.default.presentNotificationAsync(s,t));case 6:return f.abrupt("return",f.sent);case 7:case"end":return f.stop()}},null,null,null,Promise)};var n=t(r(d[1])),u=r(d[2]),o=t(r(d[3])),c=t(r(d[4]))},894,[1,106,429,462,893]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return n.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if(u.default.dismissNotificationAsync){c.next=2;break}throw new s.UnavailabilityError('Notifications','dismissNotificationAsync');case 2:return c.next=4,n.default.awrap(u.default.dismissNotificationAsync(t));case 4:return c.abrupt("return",c.sent);case 5:case"end":return c.stop()}},null,null,null,Promise)};var n=t(r(d[1])),s=r(d[2]),u=t(r(d[3]))},895,[1,106,429,893]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(l.default.dismissAllNotificationsAsync){t.next=2;break}throw new s.UnavailabilityError('Notifications','dismissAllNotificationsAsync');case 2:return t.next=4,n.default.awrap(l.default.dismissAllNotificationsAsync());case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}},null,null,null,Promise)};var n=t(r(d[1])),s=r(d[2]),l=t(r(d[3]))},896,[1,106,429,893]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t;return n.default.async(function(s){for(;;)switch(s.prev=s.next){case 0:if(l.default.getNotificationChannelsAsync){s.next=2;break}throw new c.UnavailabilityError('Notifications','getNotificationChannelsAsync');case 2:return s.next=4,n.default.awrap(l.default.getNotificationChannelsAsync());case 4:if(s.t0=t=s.sent,null==s.t0){s.next=9;break}s.t1=t,s.next=10;break;case 9:s.t1=[];case 10:return s.abrupt("return",s.t1);case 11:case"end":return s.stop()}},null,null,null,Promise)};var n=t(r(d[1])),c=r(d[2]),l=t(r(d[3]))},897,[1,106,429,898]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoNotificationChannelManager;e.default=o},898,[429]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return t.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(c.default.getNotificationChannelAsync){l.next=2;break}throw new u.UnavailabilityError('Notifications','getNotificationChannelAsync');case 2:return l.next=4,t.default.awrap(c.default.getNotificationChannelAsync(n));case 4:return l.abrupt("return",l.sent);case 5:case"end":return l.stop()}},null,null,null,Promise)};var t=n(r(d[1])),u=r(d[2]),c=n(r(d[3]))},899,[1,106,429,898]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n,l){return t.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:if(c.default.setNotificationChannelAsync){o.next=2;break}throw new u.UnavailabilityError('Notifications','setNotificationChannelAsync');case 2:return o.next=4,t.default.awrap(c.default.setNotificationChannelAsync(n,l));case 4:return o.abrupt("return",o.sent);case 5:case"end":return o.stop()}},null,null,null,Promise)};var t=n(r(d[1])),u=r(d[2]),c=n(r(d[3]))},900,[1,106,429,898]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return t.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if(u.default.deleteNotificationChannelAsync){c.next=2;break}throw new l.UnavailabilityError('Notifications','deleteNotificationChannelAsync');case 2:return c.next=4,t.default.awrap(u.default.deleteNotificationChannelAsync(n));case 4:return c.abrupt("return",c.sent);case 5:case"end":return c.stop()}},null,null,null,Promise)};var t=n(r(d[1])),l=r(d[2]),u=n(r(d[3]))},901,[1,106,429,898]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(o.default.getNotificationChannelGroupsAsync){n.next=2;break}throw new u.UnavailabilityError('Notifications','getNotificationChannelGroupsAsync');case 2:return n.next=4,t.default.awrap(o.default.getNotificationChannelGroupsAsync());case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)};var t=n(r(d[1])),u=r(d[2]),o=n(r(d[3]))},902,[1,106,429,903]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoNotificationChannelGroupManager;e.default=o},903,[429]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return t.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if(o.default.getNotificationChannelGroupAsync){c.next=2;break}throw new u.UnavailabilityError('Notifications','getNotificationChannelGroupAsync');case 2:return c.next=4,t.default.awrap(o.default.getNotificationChannelGroupAsync(n));case 4:return c.abrupt("return",c.sent);case 5:case"end":return c.stop()}},null,null,null,Promise)};var t=n(r(d[1])),u=r(d[2]),o=n(r(d[3]))},904,[1,106,429,903]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n,c){return t.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(o.default.setNotificationChannelGroupAsync){l.next=2;break}throw new u.UnavailabilityError('Notifications','setNotificationChannelGroupAsync');case 2:return l.next=4,t.default.awrap(o.default.setNotificationChannelGroupAsync(n,c));case 4:return l.abrupt("return",l.sent);case 5:case"end":return l.stop()}},null,null,null,Promise)};var t=n(r(d[1])),u=r(d[2]),o=n(r(d[3]))},905,[1,106,429,903]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return t.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:if(l.default.deleteNotificationChannelGroupAsync){o.next=2;break}throw new u.UnavailabilityError('Notifications','deleteNotificationChannelGroupAsync');case 2:return o.next=4,t.default.awrap(l.default.deleteNotificationChannelGroupAsync(n));case 4:return o.abrupt("return",o.sent);case 5:case"end":return o.stop()}},null,null,null,Promise)};var t=n(r(d[1])),u=r(d[2]),l=n(r(d[3]))},906,[1,106,429,903]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(o.default.getBadgeCountAsync){t.next=2;break}throw new u.UnavailabilityError('ExpoNotifications','getBadgeCountAsync');case 2:return t.next=4,n.default.awrap(o.default.getBadgeCountAsync());case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}},null,null,null,Promise)};var n=t(r(d[1])),u=r(d[2]),o=t(r(d[3]))},907,[1,106,429,908]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]);function c(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function s(t){for(var n=1;n0}function w(n){return n instanceof Date||'number'==typeof n?{type:'date',timestamp:b(n)}:{type:'date',timestamp:b(n.date),channelId:n.channelId}}function b(n){return n instanceof Date?n.getTime():n}function v(n){if('object'!=typeof n)return!1;n.channelId;var o=(0,t.default)(n,["channelId"]);return Object.keys(o).length===h.length+1&&h.every(function(n){return n in o})&&'repeats'in o&&!0===o.repeats}function I(n){if('object'!=typeof n)return!1;n.channelId;var o=(0,t.default)(n,["channelId"]);return Object.keys(o).length===s.length+1&&s.every(function(n){return n in o})&&'repeats'in o&&!0===o.repeats}function k(n){if('object'!=typeof n)return!1;n.channelId;var o=(0,t.default)(n,["channelId"]);return Object.keys(o).length===f.length+1&&f.every(function(n){return n in o})&&'repeats'in o&&!0===o.repeats}function T(n){n.channelId;var o=(0,t.default)(n,["channelId"]);return'seconds'in o&&'repeats'in o&&Object.keys(o).length>2||'seconds'in o&&!('repeats'in o)&&Object.keys(o).length>1}function E(n,t){var o=n;t.forEach(function(n){if(!(n in o))throw new TypeError("The "+n+" parameter needs to be present");if('number'!=typeof o[n])throw new TypeError("The "+n+" parameter should be a number");switch(n){case'month':var t=o.month;if(t<0||t>11)throw new RangeError("The month parameter needs to be between 0 and 11. Found: "+t);break;case'day':var u=o.day,c=o.month,l=j(c);if(u<1||u>l)throw new RangeError("The day parameter for month "+c+" must be between 1 and "+l+". Found: "+u);break;case'weekday':var h=o.weekday;if(h<1||h>7)throw new RangeError("The weekday parameter needs to be between 1 and 7. Found: "+h);break;case'hour':var s=o.hour;if(s<0||s>23)throw new RangeError("The hour parameter needs to be between 0 and 23. Found: "+s);break;case'minute':var f=o.minute;if(f<0||f>59)throw new RangeError("The minute parameter needs to be between 0 and 59. Found: "+f)}})}function j(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return new Date(null!=t?t:2e3,n+1,0).getDate()}},912,[1,60,106,429,462,911]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return t.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(u.default.cancelScheduledNotificationAsync){l.next=2;break}throw new c.UnavailabilityError('Notifications','cancelScheduledNotificationAsync');case 2:return l.next=4,t.default.awrap(u.default.cancelScheduledNotificationAsync(n));case 4:return l.abrupt("return",l.sent);case 5:case"end":return l.stop()}},null,null,null,Promise)};var t=n(r(d[1])),c=r(d[2]),u=n(r(d[3]))},913,[1,106,429,911]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(l.default.cancelAllScheduledNotificationsAsync){n.next=2;break}throw new c.UnavailabilityError('Notifications','cancelAllScheduledNotificationsAsync');case 2:return n.next=4,t.default.awrap(l.default.cancelAllScheduledNotificationsAsync());case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)};var t=n(r(d[1])),c=r(d[2]),l=n(r(d[3]))},914,[1,106,429,911]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(u.default.getNotificationCategoriesAsync){t.next=2;break}throw new o.UnavailabilityError('Notifications','getNotificationCategoriesAsync');case 2:return t.next=4,n.default.awrap(u.default.getNotificationCategoriesAsync());case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}},null,null,null,Promise)};var n=t(r(d[1])),o=r(d[2]),u=t(r(d[3]))},915,[1,106,429,916]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoNotificationCategoriesModule;e.default=o},916,[429]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,c,s){return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:if(u.default.setNotificationCategoryAsync){f.next=2;break}throw new o.UnavailabilityError('Notifications','setNotificationCategoryAsync');case 2:return f.next=4,n.default.awrap(u.default.setNotificationCategoryAsync(t,c,s));case 4:return f.abrupt("return",f.sent);case 5:case"end":return f.stop()}},null,null,null,Promise)};var n=t(r(d[1])),o=r(d[2]),u=t(r(d[3]))},917,[1,106,429,916]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return n.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if(u.default.deleteNotificationCategoryAsync){c.next=2;break}throw new o.UnavailabilityError('Notifications','deleteNotificationCategoryAsync');case 2:return c.next=4,n.default.awrap(u.default.deleteNotificationCategoryAsync(t));case 4:return c.abrupt("return",c.sent);case 5:case"end":return c.stop()}},null,null,null,Promise)};var n=t(r(d[1])),o=r(d[2]),u=t(r(d[3]))},918,[1,106,429,916]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return n.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(s.default.getNextTriggerDateAsync){l.next=2;break}throw new u.UnavailabilityError('ExpoNotifications','getNextTriggerDateAsync');case 2:return l.next=4,n.default.awrap(s.default.getNextTriggerDateAsync((0,c.parseTrigger)(t)));case 4:return l.abrupt("return",l.sent);case 5:case"end":return l.stop()}},null,null,null,Promise)};var n=t(r(d[1])),u=r(d[2]),s=t(r(d[3])),c=r(d[4])},919,[1,106,429,911,912]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=(0,u.useState)(void 0),c=(0,n.default)(t,2),s=c[0],l=c[1];return(0,u.useLayoutEffect)(function(){var t=(0,o.addNotificationResponseReceivedListener)(function(t){l(t)});return function(){t.remove()}},[]),(0,u.useEffect)(function(){null==f.default.getLastNotificationResponseAsync||f.default.getLastNotificationResponseAsync().then(function(t){l(function(n){return null!=n?n:t})})},[]),s};var n=t(r(d[1])),u=r(d[2]),o=r(d[3]),f=t(r(d[4]))},920,[1,19,6,921,922]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.addNotificationReceivedListener=function(t){return c.addListener(u,t)},e.addNotificationsDroppedListener=function(t){return c.addListener(f,t)},e.addNotificationResponseReceivedListener=function(t){return c.addListener(l,t)},e.removeNotificationSubscription=function(t){c.removeSubscription(t)},e.getLastNotificationResponseAsync=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(s.default.getLastNotificationResponseAsync){t.next=2;break}throw new o.UnavailabilityError('ExpoNotifications','getLastNotificationResponseAsync');case 2:return t.next=4,n.default.awrap(s.default.getLastNotificationResponseAsync());case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}},null,null,null,Promise)},e.DEFAULT_ACTION_IDENTIFIER=void 0;var n=t(r(d[1])),o=r(d[2]),s=t(r(d[3])),c=new o.EventEmitter(s.default),u='onDidReceiveNotification',f='onNotificationsDeleted',l='onDidReceiveNotificationResponse';e.DEFAULT_ACTION_IDENTIFIER='expo.modules.notifications.actions.DEFAULT'},921,[1,106,429,922]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]).NativeModulesProxy.ExpoNotificationsEmitter;e.default=t},922,[429]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setNotificationHandler=function(t){y&&(y.remove(),y=null);R&&(R.remove(),R=null);t&&(y=p.addListener(E,function(o){var l,c,u;return n.default.async(function(h){for(;;)switch(h.prev=h.next){case 0:if(l=o.id,c=o.notification,s.default.handleNotificationAsync){h.next=4;break}return null==t.handleError||t.handleError(l,new f.UnavailabilityError('Notifications','handleNotificationAsync')),h.abrupt("return");case 4:return h.prev=4,h.next=7,n.default.awrap(t.handleNotification(c));case 7:return u=h.sent,h.next=10,n.default.awrap(s.default.handleNotificationAsync(l,u));case 10:null==t.handleSuccess||t.handleSuccess(l),h.next=16;break;case 13:h.prev=13,h.t0=h.catch(4),null==t.handleError||t.handleError(l,h.t0);case 16:case"end":return h.stop()}},null,null,[[4,13]],Promise)}),R=p.addListener(N,function(n){var o=n.id,l=n.notification;return null==t.handleError?void 0:t.handleError(o,new v(o,l))}))},e.NotificationTimeoutError=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),f=r(d[6]),s=t(r(d[7]));function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var v=(function(t){(0,l.default)(v,t);var n,f,s=(n=v,f=h(),function(){var t,o=(0,u.default)(n);if(f){var l=(0,u.default)(this).constructor;t=Reflect.construct(o,arguments,l)}else t=o.apply(this,arguments);return(0,c.default)(this,t)});function v(t,n){var l;return(0,o.default)(this,v),(l=s.call(this,'ERR_NOTIFICATION_TIMEOUT',"Notification handling timed out for ID "+t+".")).info={id:t,notification:n},l}return v})(f.CodedError);e.NotificationTimeoutError=v;var p=new f.EventEmitter(s.default),E='onHandleNotification',N='onHandleNotificationTimeout',y=null,R=null},923,[1,106,31,42,44,41,429,924]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoNotificationsHandlerModule;e.default=o},924,[429]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getPermissionsAsync=function(){return s.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(u.default.getPermissionsAsync){n.next=2;break}throw new t.UnavailabilityError('Notifications','getPermissionsAsync');case 2:return n.next=4,s.default.awrap(u.default.getPermissionsAsync());case 4:return n.abrupt("return",n.sent);case 5:case"end":return n.stop()}},null,null,null,Promise)},e.requestPermissionsAsync=function(n){var l;return s.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:if(u.default.requestPermissionsAsync){o.next=2;break}throw new t.UnavailabilityError('Notifications','requestPermissionsAsync');case 2:return l=(null!=n?n:{ios:{allowAlert:!0,allowBadge:!0,allowSound:!0}})[t.Platform.OS],o.next=6,s.default.awrap(u.default.requestPermissionsAsync(l));case 6:return o.abrupt("return",o.sent);case 7:case"end":return o.stop()}},null,null,null,Promise)};var s=n(r(d[1])),t=r(d[2]),u=n(r(d[3]))},925,[1,106,429,926]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoNotificationPermissionsModule;e.default=o},926,[429]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0})},927,[]); +__d(function(g,r,i,a,m,e,d){var I,N,A,O;Object.defineProperty(e,"__esModule",{value:!0}),e.AndroidAudioUsage=e.AndroidImportance=e.AndroidAudioContentType=e.AndroidNotificationVisibility=void 0,e.AndroidNotificationVisibility=I,(function(I){I[I.UNKNOWN=0]="UNKNOWN",I[I.PUBLIC=1]="PUBLIC",I[I.PRIVATE=2]="PRIVATE",I[I.SECRET=3]="SECRET"})(I||(e.AndroidNotificationVisibility=I={})),e.AndroidAudioContentType=N,(function(I){I[I.UNKNOWN=0]="UNKNOWN",I[I.SPEECH=1]="SPEECH",I[I.MUSIC=2]="MUSIC",I[I.MOVIE=3]="MOVIE",I[I.SONIFICATION=4]="SONIFICATION"})(N||(e.AndroidAudioContentType=N={})),e.AndroidImportance=A,(function(I){I[I.UNKNOWN=0]="UNKNOWN",I[I.UNSPECIFIED=1]="UNSPECIFIED",I[I.NONE=2]="NONE",I[I.MIN=3]="MIN",I[I.LOW=4]="LOW",I[I.DEFAULT=5]="DEFAULT",I[I.DEEFAULT=5]="DEEFAULT",I[I.HIGH=6]="HIGH",I[I.MAX=7]="MAX"})(A||(e.AndroidImportance=A={})),e.AndroidAudioUsage=O,(function(I){I[I.UNKNOWN=0]="UNKNOWN",I[I.MEDIA=1]="MEDIA",I[I.VOICE_COMMUNICATION=2]="VOICE_COMMUNICATION",I[I.VOICE_COMMUNICATION_SIGNALLING=3]="VOICE_COMMUNICATION_SIGNALLING",I[I.ALARM=4]="ALARM",I[I.NOTIFICATION=5]="NOTIFICATION",I[I.NOTIFICATION_RINGTONE=6]="NOTIFICATION_RINGTONE",I[I.NOTIFICATION_COMMUNICATION_REQUEST=7]="NOTIFICATION_COMMUNICATION_REQUEST",I[I.NOTIFICATION_COMMUNICATION_INSTANT=8]="NOTIFICATION_COMMUNICATION_INSTANT",I[I.NOTIFICATION_COMMUNICATION_DELAYED=9]="NOTIFICATION_COMMUNICATION_DELAYED",I[I.NOTIFICATION_EVENT=10]="NOTIFICATION_EVENT",I[I.ASSISTANCE_ACCESSIBILITY=11]="ASSISTANCE_ACCESSIBILITY",I[I.ASSISTANCE_NAVIGATION_GUIDANCE=12]="ASSISTANCE_NAVIGATION_GUIDANCE",I[I.ASSISTANCE_SONIFICATION=13]="ASSISTANCE_SONIFICATION",I[I.GAME=14]="GAME"})(O||(e.AndroidAudioUsage=O={}))},928,[]); +__d(function(g,r,i,a,m,e,d){var E,A,o;Object.defineProperty(e,"__esModule",{value:!0}),e.IosAuthorizationStatus=e.IosAllowsPreviews=e.IosAlertStyle=void 0,e.IosAlertStyle=E,(function(E){E[E.NONE=0]="NONE",E[E.BANNER=1]="BANNER",E[E.ALERT=2]="ALERT"})(E||(e.IosAlertStyle=E={})),e.IosAllowsPreviews=A,(function(E){E[E.NEVER=0]="NEVER",E[E.ALWAYS=1]="ALWAYS",E[E.WHEN_AUTHENTICATED=2]="WHEN_AUTHENTICATED"})(A||(e.IosAllowsPreviews=A={})),e.IosAuthorizationStatus=o,(function(E){E[E.NOT_DETERMINED=0]="NOT_DETERMINED",E[E.DENIED=1]="DENIED",E[E.AUTHORIZED=2]="AUTHORIZED",E[E.PROVISIONAL=3]="PROVISIONAL",E[E.EPHEMERAL=4]="EPHEMERAL"})(o||(e.IosAuthorizationStatus=o={}))},929,[]); +__d(function(g,r,i,a,m,e,d){var o;Object.defineProperty(e,"__esModule",{value:!0}),e.AndroidNotificationPriority=void 0,e.AndroidNotificationPriority=o,(function(o){o.MIN="min",o.LOW="low",o.DEFAULT="default",o.HIGH="high",o.MAX="max"})(o||(e.AndroidNotificationPriority=o={}))},930,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0})},931,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.migrateNovel=e.restoreLibrary=e.deleteNovelCache=e.getNovel=e.checkNovelInCache=e.followNovel=e.insertNovel=void 0;var t=n(r(d[1])),o=(function(n,t){if(!t&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var o=c(t);if(o&&o.has(n))return o.get(n);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if("default"!==s&&Object.prototype.hasOwnProperty.call(n,s)){var f=l?Object.getOwnPropertyDescriptor(n,s):null;f&&(f.get||f.set)?Object.defineProperty(u,s,f):u[s]=n[s]}u.default=n,o&&o.set(n,u);return u})(r(d[2])),u=r(d[3]),l=r(d[4]);function c(n){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(c=function(n){return n?o:t})(n)}var s=o.openDatabase("lnreader.db");e.insertNovel=function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,o){return s.transaction(function(o){return o.executeSql("INSERT INTO novels (novelUrl, sourceUrl, sourceId, source, novelName, novelCover, novelSummary, author, artist, status, genre) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[n.novelUrl,n.sourceUrl,n.sourceId,n.source,n.novelName,n.novelCover,n.novelSummary,n.author,n.artist,n.status,n.genre],function(n,o){var u=o.insertId;return t(u)},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.followNovel=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:s.transaction(function(t){t.executeSql("UPDATE novels SET followed = ? WHERE novelId = ?",[!n,o],function(n,t){},function(n,t){return console.log("Error ",t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)};e.checkNovelInCache=function(n){return new Promise(function(t,o){return s.transaction(function(o){o.executeSql("SELECT * FROM novels WHERE novelUrl=? LIMIT 1",[n],function(n,o){0!==o.rows.length?t(!0):t(!1)},function(n,t){return console.log("Error ",t)})})})};e.getNovel=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,u){return s.transaction(function(u){u.executeSql("SELECT * FROM novels WHERE novelUrl = ? AND sourceId = ?",[o,n],function(n,o){var u=o.rows;return t(u.item(0))},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.deleteNovelCache=function(){s.transaction(function(n){n.executeSql("DELETE FROM novels WHERE followed = 0",null,function(n,t){console.log("Cleared Novel Cache")},function(n,t){return console.log("Error ",t)})})};e.restoreLibrary=function(n){return t.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",new Promise(function(o,c){return s.transaction(function(o){return o.executeSql("INSERT INTO novels (novelUrl, sourceUrl, sourceId, source, novelName, novelCover, novelSummary, author, artist, status, genre, followed, unread) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[n.novelUrl,n.sourceUrl,n.sourceId,n.source,n.novelName,n.novelCover,n.novelSummary,n.author,n.artist,n.status,n.genre,n.followed,n.unread],function(o,c){var s,f;return t.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return s=c.insertId,o.next=3,t.default.awrap((0,u.fetchChapters)(n.sourceId,n.novelUrl));case 3:return f=o.sent,o.next=6,t.default.awrap((0,l.insertChapters)(s,f));case 6:case"end":return o.stop()}},null,null,null,Promise)},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return o.stop()}},null,null,null,Promise)};e.migrateNovel=function(n,o){var c;return t.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:return f.next=2,t.default.awrap((0,u.fetchNovel)(n,o));case 2:c=f.sent,s.transaction(function(n){return n.executeSql("INSERT INTO novels (novelUrl, sourceUrl, sourceId, source, novelName, novelCover, novelSummary, author, artist, status, genre, followed) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c.novelUrl,c.sourceUrl,c.sourceId,c.source,c.novelName,c.novelCover,c.novelSummary,c.author,c.artist,c.status,c.genre,1],function(n,o){var s,f;return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return s=o.insertId,n.next=3,t.default.awrap((0,u.fetchChapters)(c.sourceId,c.novelUrl));case 3:return f=n.sent,n.next=6,t.default.awrap((0,l.insertChapters)(s,f));case 6:case"end":return n.stop()}},null,null,null,Promise)},function(n,t){return console.log("Error ",t)})});case 4:case"end":return f.stop()}},null,null,null,Promise)}},932,[1,106,801,841,933]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.markPreviousChaptersUnread=e.markPreviuschaptersRead=e.bookmarkChapter=e.getLastReadChapter=e.deleteChapter=e.downloadChapter=e.isChapterDownloaded=e.markChapterUnread=e.markChapterRead=e.getPrevChapterFromDB=e.getNextChapterFromDB=e.getChapterFromDB=e.getChapters=e.insertChapters=void 0;var t=n(r(d[1]));function o(n){if("function"!=typeof WeakMap)return null;var t=new WeakMap,c=new WeakMap;return(o=function(n){return n?c:t})(n)}var c=(function(n,t){if(!t&&n&&n.__esModule)return n;if(null===n||"object"!=typeof n&&"function"!=typeof n)return{default:n};var c=o(t);if(c&&c.has(n))return c.get(n);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in n)if("default"!==s&&Object.prototype.hasOwnProperty.call(n,s)){var p=l?Object.getOwnPropertyDescriptor(n,s):null;p&&(p.get||p.set)?Object.defineProperty(u,s,p):u[s]=n[s]}u.default=n,c&&c.set(n,u);return u})(r(d[2])).openDatabase("lnreader.db");e.insertChapters=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:c.transaction(function(t){o.map(function(o){return t.executeSql("INSERT INTO chapters (chapterUrl, chapterName, releaseDate, novelId) values (?, ?, ?, ?)",[o.chapterUrl,o.chapterName,o.releaseDate,n],function(n,t){},function(t,c){return console.log("Error ",c," Chapter URL: ",o.chapterUrl," Novel ID ",n)})},function(n,t){console.log("Success")},function(n,t){return console.log("Error ",t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)};var u=function(n,t){return"SELECT * FROM chapters WHERE novelId = ? "+(t||"")+" "+(n||"ORDER BY chapterId ASC")};e.getChapters=function(n,t,o){return new Promise(function(l,s){return c.transaction(function(c){c.executeSql(u(t,o),[n],function(n,t){var o=t.rows._array;l(o)},function(n,t){return console.log("Error ",t)})})})};e.getChapterFromDB=function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,o){return c.transaction(function(o){o.executeSql("SELECT * FROM downloads WHERE downloadChapterId = ?",[n],function(n,o){t(o.rows.item(0))},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.getNextChapterFromDB=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,u){return c.transaction(function(c){c.executeSql("SELECT * FROM chapters WHERE novelId = ? AND chapterId > ?",[n,o],function(n,o){t(o.rows.item(0))},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.getPrevChapterFromDB=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,u){return c.transaction(function(c){c.executeSql("SELECT * FROM chapters WHERE novelId = ? AND chapterId < ?",[n,o],function(n,o){t(o.rows.item(o.rows.length-1))},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.markChapterRead=function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:c.transaction(function(t){t.executeSql("UPDATE chapters SET `read` = 1 WHERE chapterId = ?",[n],function(n,t){},function(n,t){return console.log(t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)};e.markChapterUnread=function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:c.transaction(function(t){t.executeSql("UPDATE chapters SET `read` = 0 WHERE chapterId = ?",[n],function(n,t){},function(n,t){return console.log(t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)};e.isChapterDownloaded=function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,o){return c.transaction(function(o){o.executeSql("SELECT * FROM downloads WHERE downloadChapterId=?",[n],function(n,o){0!==o.rows.length?t(!0):t(!1)},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.downloadChapter=function(n,o,u,l){var s,p,f;return t.default.async(function(h){for(;;)switch(h.prev=h.next){case 0:return s="https://lnreader-extensions.vercel.app/api/"+n+"/novel/"+o+u,h.next=3,t.default.awrap(fetch(s));case 3:return p=h.sent,h.next=6,t.default.awrap(p.json());case 6:f=h.sent,c.transaction(function(n){n.executeSql("UPDATE chapters SET downloaded = 1 WHERE chapterId = ?",[l]),n.executeSql("INSERT INTO downloads (downloadChapterId, chapterName, chapterText, prevChapter, nextChapter) VALUES (?, ?, ?, ?, ?)",[l,f.chapterName,f.chapterText,f.prevChapter,f.nextChapter],function(n,t){return console.log("Downloaded Chapter "+f.chapterUrl)},function(n,t){return console.log("Error ",t)})});case 8:case"end":return h.stop()}},null,null,null,Promise)};e.deleteChapter=function(n){var o,u;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:o="UPDATE chapters SET downloaded = 0 WHERE chapterId=?",u="DELETE FROM downloads WHERE downloadChapterId=?",c.transaction(function(t){t.executeSql(o,[n],function(n,t){},function(n,t){return console.log("Error ",t)}),t.executeSql(u,[n],function(n,t){return console.log("Chapter deleted")},function(n,t){return console.log("Error ",t)})});case 3:case"end":return t.stop()}},null,null,null,Promise)};e.getLastReadChapter=function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,o){c.transaction(function(o){o.executeSql("\n SELECT chapters.*\n FROM history\n JOIN chapters\n ON history.historyChapterId = chapters.chapterId\n WHERE history.historyNovelId = ?\n",[n],function(n,o){var c=o.rows;return t(c.item(0))},function(n,t){return console.log("Error ",t)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.bookmarkChapter=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:c.transaction(function(t){t.executeSql("UPDATE chapters SET bookmark = ? WHERE chapterId = ?",[!n,o],function(n,t){},function(n,t){return console.log("Error ",t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)};e.markPreviuschaptersRead=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:c.transaction(function(t){t.executeSql("UPDATE chapters SET `read` = 1 WHERE chapterId < ? AND novelId = ?",[n,o],function(n,t){},function(n,t){return console.log(t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)};e.markPreviousChaptersUnread=function(n,o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:c.transaction(function(t){t.executeSql("UPDATE chapters SET `read` = 0 WHERE chapterId < ? AND novelId = ?",[n,o],function(n,t){},function(n,t){return console.log(t)})});case 1:case"end":return t.stop()}},null,null,null,Promise)}},933,[1,106,801]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.deleteNovelUpdates=e.getUpdates=void 0;var n=t(r(d[1]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(o=function(t){return t?u:n})(t)}var u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=o(n);if(u&&u.has(t))return u.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var p=c?Object.getOwnPropertyDescriptor(t,s):null;p&&(p.get||p.set)?Object.defineProperty(l,s,p):l[s]=t[s]}l.default=t,u&&u.set(t,l);return l})(r(d[2])).openDatabase("lnreader.db");e.getUpdates=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,n){u.transaction(function(n){n.executeSql("\n SELECT chapters.chapterId, chapters.read, chapters.downloaded, chapters.chapterUrl, chapters.chapterName, novels.novelUrl, novels.novelId, novels.novelCover, novels.novelName, novels.sourceId, updates.updateTime, updates.updateId\n FROM updates \n JOIN chapters \n ON updates.chapterId = chapters.chapterId\n JOIN novels\n ON updates.novelId = novels.novelId\n ORDER BY updates.updateTime DESC\n ",null,function(n,o){var u=o.rows._array;t(u)},function(t,n){return console.log("Error ",n)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.deleteNovelUpdates=function(t){u.transaction(function(n){n.executeSql("DELETE FROM updates WHERE novelId = ?",[t],function(t,n){},function(t,n){return console.log("Error ",n)})})}},934,[1,106,801]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SAVE_SCROLL_POSITION=e.SET_LAST_READ=e.SET_CHAPTER_LIST_PREF=void 0;e.SET_CHAPTER_LIST_PREF="SET_CHAPTER_LIST_PREF";e.SET_LAST_READ="SET_LAST_READ";e.SAVE_SCROLL_POSITION="SAVE_SCROLL_POSITION"},935,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SORT_FILTER_LIBRARY=e.SET_LIBRARY_LOADING=e.GET_LIBRARY_SEARCH_RESULTS=e.GET_LIBRARY_NOVELS=void 0;e.GET_LIBRARY_NOVELS="GET_LIBRARY_NOVELS";e.GET_LIBRARY_SEARCH_RESULTS="GET_LIBRARY_SEARCH_RESULTS";e.SET_LIBRARY_LOADING="SET_LIBRARY_LOADING";e.SORT_FILTER_LIBRARY="SORT_FILTER_LIBRARY"},936,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.persistor=e.store=void 0;var u=r(d[1]),c=r(d[2]),l=t(r(d[3])),s=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),R=t(r(d[7])),p=t(r(d[8])),n=t(r(d[9])),v=t(r(d[10])),y=t(r(d[11])),b=t(r(d[12])),_={key:"root",storage:l.default,blacklist:["novelReducer"]},k=(0,c.persistReducer)(_,(0,u.combineReducers)({settingsReducer:o.default,libraryReducer:f.default,sourceReducer:R.default,novelReducer:p.default,historyReducer:n.default,updatesReducer:v.default,trackerReducer:y.default,preferenceReducer:b.default})),M=(0,u.createStore)(k,(0,u.applyMiddleware)(s.default));e.store=M;var S=(0,c.persistStore)(M);e.persistor=S},937,[1,938,940,952,957,958,961,962,964,965,967,969,971]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t=r(d[0]);var n,o=(n=t)&&'object'==typeof n&&'default'in n?n:{default:n};function f(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var u='function'==typeof Symbol&&Symbol.observable||'@@observable',c=function(){return Math.random().toString(36).substring(7).split('').join('.')},p={INIT:"@@redux/INIT"+c(),REPLACE:"@@redux/REPLACE"+c(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+c()}};function l(t){if('object'!=typeof t||null===t)return!1;for(var n=t;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n}function y(t){Object.keys(t).forEach(function(n){var o=t[n];if(void 0===o(void 0,{type:p.INIT}))throw new Error(f(12));if(void 0===o(void 0,{type:p.PROBE_UNKNOWN_ACTION()}))throw new Error(f(13))})}function v(t,n){return function(){return n(t.apply(this,arguments))}}function h(){for(var t=arguments.length,n=new Array(t),o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(s[o]=t[o])}return s}function v(t,n){if(null==t)return{};var o,u,s={},f=Object.keys(t);for(u=0;u=0||(s[o]=t[o]);return s}var b=5e3},941,[942,943,944,945,946]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.DEFAULT_VERSION=e.REGISTER=e.PURGE=e.PERSIST=e.PAUSE=e.REHYDRATE=e.FLUSH=e.KEY_PREFIX=void 0;e.KEY_PREFIX='persist:';e.FLUSH='persist/FLUSH';e.REHYDRATE='persist/REHYDRATE';e.PAUSE='persist/PAUSE';e.PERSIST='persist/PERSIST';e.PURGE='persist/PURGE';e.REGISTER='persist/REGISTER';e.DEFAULT_VERSION=-1},942,[]); +__d(function(g,r,i,a,m,e,d){"use strict";function t(o){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(o)}function o(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);o&&(c=c.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,c)}return n}function n(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:l,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case n.REGISTER:return f({},t,{registry:[].concat(o(t.registry),[c.key])});case n.REHYDRATE:var s=t.registry.indexOf(c.key),u=o(t.registry);return u.splice(s,1),f({},t,{registry:u,bootstrapped:0===u.length});default:return t}}},949,[938,942]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(n,s){(s||{}).debug;return function(s,o){if(!s)return Promise.resolve(void 0);var u=s._persist&&void 0!==s._persist.version?s._persist.version:t.DEFAULT_VERSION;if(u===o)return Promise.resolve(s);if(u>o)return Promise.resolve(s);var c=Object.keys(n).map(function(t){return parseInt(t)}).filter(function(t){return o>=t&&t>u}).sort(function(t,n){return t-n});try{var f=c.reduce(function(t,s){return n[s](t)},s);return Promise.resolve(f)}catch(t){return Promise.reject(t)}}};var t=r(d[0])},950,[942]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(n,t){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},l=u.whitelist||null,f=u.blacklist||null;function o(n){return!(!l||-1!==l.indexOf(n))||!(!f||-1===f.indexOf(n))}return{in:function(t,u,l){return!o(u)&&n?n(t,u,l):t},out:function(n,u,l){return!o(u)&&t?t(n,u,l):n}}}},951,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"useAsyncStorage",{enumerable:!0,get:function(){return n.useAsyncStorage}}),e.default=void 0;var u=t(r(d[1])),n=r(d[2]),o=u.default;e.default=o},952,[1,953,956]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2]));if(!u.default)throw new Error("[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.\n\nTo fix this issue try these steps:\n\n \u2022 Run `react-native link @react-native-async-storage/async-storage` in the project root.\n\n \u2022 Rebuild and restart the app.\n\n \u2022 Run the packager with `--reset-cache` flag.\n\n \u2022 If you are using CocoaPods on iOS, run `pod install` in the `ios` directory and then rebuild and re-run the app.\n\n \u2022 If this happens while testing with Jest, check out docs how to integrate AsyncStorage with it: https://react-native-async-storage.github.io/async-storage/docs/advanced/jest\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-async-storage/react-native-async-storage/issues\n");function o(t,n){var u=arguments.length>1;if('string'!=typeof t&&console.warn("[AsyncStorage] Using "+typeof t+" type for key is not supported. This can lead to unexpected behavior/errors. Use string instead.\nKey passed: "+t+"\n"),u&&'string'!=typeof n){if(null==n)throw new Error("[AsyncStorage] Passing null/undefined as value is not supported. If you want to remove value, Use .remove method instead.\nPassed value: "+n+"\nPassed key: "+t+"\n");console.warn("[AsyncStorage] The value for key \""+t+"\" is not a string. This can lead to unexpected behavior/errors. Consider stringifying it.\nPassed value: "+n+"\nPassed key: "+t+"\n")}}function s(t,n){if(!Array.isArray(t)||0===t.length||!Array.isArray(t[0]))throw new Error('[AsyncStorage] Expected array of key-value pairs as first argument to multiSet');if(n&&'function'!=typeof n){if(Array.isArray(n))throw new Error('[AsyncStorage] Expected function as second argument to multiSet. Did you forget to wrap key-value pairs in an array for the first argument?');throw new Error('[AsyncStorage] Expected function as second argument to multiSet')}}var l={_getRequests:[],_getKeys:[],_immediate:null,getItem:function(t,n){return new Promise(function(s,l){o(t),u.default.multiGet([t],function(t,u){var o=u&&u[0]&&u[0][1]?u[0][1]:null,f=c(t);n&&n(f&&f[0],o),f?l(f[0]):s(o)})})},setItem:function(t,n,s){return new Promise(function(l,f){o(t,n),u.default.multiSet([[t,n]],function(t){var n=c(t);s&&s(n&&n[0]),n?f(n[0]):l(null)})})},removeItem:function(t,n){return new Promise(function(s,l){o(t),u.default.multiRemove([t],function(t){var u=c(t);n&&n(u&&u[0]),u?l(u[0]):s(null)})})},mergeItem:function(t,n,s){return new Promise(function(l,f){o(t,n),u.default.multiMerge([[t,n]],function(t){var n=c(t);s&&s(n&&n[0]),n?f(n[0]):l(null)})})},clear:function(t){return new Promise(function(n,o){u.default.clear(function(u){var s=f(u);t&&t(s),s?o(s):n(null)})})},getAllKeys:function(t){return new Promise(function(n,o){u.default.getAllKeys(function(u,s){var l=f(u);t&&t(l,s),l?o(l):n(s)})})},flushGetRequests:function(){var t=this._getRequests,o=this._getKeys;this._getRequests=[],this._getKeys=[],u.default.multiGet(o,function(u,o){var s={};o&&o.forEach(function(t){var u=(0,n.default)(t,2),o=u[0],l=u[1];return s[o]=l,l});for(var l=t.length,c=0;c0&&void 0!==arguments[0]?arguments[0]:h,l=arguments.length>1?arguments[1]:void 0,c=l.type,f=l.payload;switch(c){case o.SET_APP_THEME:return s(s({},t),{},{theme:u[f]});case o.SET_NOVELS_PER_ROW:return s(s({},t),{},{novelsPerRow:2!==t.displayMode?f:1});case o.SET_ACCENT_COLOR:return s(s({},t),{},{theme:s(s({},t.theme),{},{colorAccent:f})});case o.SET_APP_SETTINGS:return s(s({},t),{},(0,n.default)({},f.key,f.val));case o.SET_READER_SETTINGS:return s(s({},t),{},{reader:s(s({},t.reader),{},(0,n.default)({},f.key,f.val))});default:return t}};e.default=f},958,[1,54,959,960]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_ACCENT_COLOR=e.SET_READER_SETTINGS=e.SET_NOVELS_PER_ROW=e.SET_APP_THEME=e.SET_APP_SETTINGS=void 0;e.SET_APP_SETTINGS="SET_APP_SETTINGS";e.SET_APP_THEME="SET_APP_THEME";e.SET_NOVELS_PER_ROW="SET_NOVELS_PER_ROW";e.SET_READER_SETTINGS="SET_READER_SETTINGS";e.SET_ACCENT_COLOR="SET_ACCENT_COLOR"},959,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.irisBlueTheme=e.limeTheme=e.midnightDuskTheme=e.amoledDarkTheme=e.darkTheme=e.lightTheme=e.theme=void 0;e.theme={colorPrimary:"#000000",colorPrimaryDark:"#000000",colorAccent:"#3399FF",textColorPrimary:"#FFFFFF",textColorSecondary:"rgba(255,255,255,0.7)",textColorHint:"rgba(255,255,255,0.5)",rippleColor:"rgba(255,255,255,0.06)"};e.lightTheme={id:1,name:"Light",colorPrimary:"#FFFFFF",colorPrimaryDark:"#FAFAFA",colorAccent:"#2979FF",textColorPrimary:"#000000",textColorSecondary:"rgba(0,0,0,0.54)",textColorHint:"rgba(0,0,0,0.38)",rippleColor:"rgba(0,0,0,0.06)",searchBarColor:"#FFFFFF",menuColor:"#FFFFFF",dividerColor:"rgba(0,0,0,0.1)",filterColor:"#FFC107",colorDisabled:"rgba(220,220,220,255)",colorButtonText:"#FFFFFF",statusBar:"dark"};e.darkTheme={id:2,name:"Dark",colorPrimary:"#242529",colorPrimaryDark:"#202125",colorAccent:"#3399FF",textColorPrimary:"#FFFFFF",textColorSecondary:"rgba(255,255,255,0.7)",textColorHint:"rgba(255,255,255,0.5)",rippleColor:"rgba(255,255,255,0.06)",searchBarColor:"#303135",menuColor:"#242529",filterColor:"#FFEB3B",dividerColor:"rgba(255,255,255,0.1)",colorDisabled:"rgba(57,57,57,255)",colorButtonText:"#FFFFFF",statusBar:"light"};e.amoledDarkTheme={id:0,name:"AMOLED Dark",colorPrimary:"#000000",colorPrimaryDark:"#000000",colorAccent:"#3399FF",textColorPrimary:"#FFFFFF",textColorSecondary:"rgba(255,255,255,0.7)",textColorHint:"rgba(255,255,255,0.5)",rippleColor:"rgba(255,255,255,0.12)",searchBarColor:"#1F1F1F",menuColor:"#242529",filterColor:"#FFEB3B",dividerColor:"rgba(255,255,255,0.15)",colorDisabled:"rgba(33,33,33,255)",colorButtonText:"#FFFFFF",statusBar:"light"};e.midnightDuskTheme={id:3,name:"Midnight Dusk",colorPrimary:"#201F27",colorPrimaryDark:"#16151D",colorAccent:"#F02475",textColorPrimary:"#FFFFFF",textColorSecondary:"rgba(255,255,255,0.7)",textColorHint:"rgba(255,255,255,0.5)",rippleColor:"rgba(255,255,255,0.06)",searchBarColor:"#201F27",menuColor:"#201F27",filterColor:"#FFEB3B",dividerColor:"rgba(255,255,255,0.1)",colorDisabled:"rgba(57,57,57,255)",colorButtonText:"#FFFFFF",statusBar:"light"};e.limeTheme={id:4,name:"Lime",colorPrimary:"#201F27",colorPrimaryDark:"#16151D",colorAccent:"#4AF88A",textColorPrimary:"#FFFFFF",textColorSecondary:"rgba(255,255,255,0.7)",textColorHint:"rgba(255,255,255,0.5)",rippleColor:"rgba(255,255,255,0.06)",searchBarColor:"#201F27",menuColor:"#201F27",filterColor:"#FFEB3B",dividerColor:"rgba(255,255,255,0.1)",colorDisabled:"rgba(57,57,57,255)",colorButtonText:"#16151D",statusBar:"light"};e.irisBlueTheme={id:5,name:"Iris Blue",colorPrimary:"#393e46",colorPrimaryDark:"#222831",colorAccent:"#00adb5",textColorPrimary:"#FFFFFF",textColorSecondary:"rgba(255,255,255,0.7)",textColorHint:"rgba(255,255,255,0.5)",rippleColor:"rgba(255,255,255,0.06)",searchBarColor:"#393e46",menuColor:"#393e46",filterColor:"#FFEB3B",dividerColor:"rgba(255,255,255,0.1)",colorDisabled:"#393e46",colorButtonText:"#16151D",statusBar:"light"}},960,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]);function c(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function l(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:s,n=arguments.length>1?arguments[1]:void 0,c=n.type,f=n.payload;switch(c){case o.SET_LIBRARY_LOADING:return l(l({},t),{},{loading:!0});case o.GET_LIBRARY_NOVELS:case o.GET_LIBRARY_SEARCH_RESULTS:return l(l({},t),{},{novels:f,loading:!1});case o.SORT_FILTER_LIBRARY:return l(l({},t),{},{filters:{sort:f.sort,filter:f.filter}});default:return t}};e.default=f},961,[1,54,936]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),c=r(d[3]);function u(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function s(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:f,o=arguments.length>1?arguments[1]:void 0,u=o.type,l=o.payload;switch(u){case c.GET_SOURCES:return s(s({},t),{},{sources:l,loading:!1});case c.PIN_SOURCES:return s(s({},t),{},{pinned:-1===t.pinned.indexOf(l)?[].concat((0,n.default)(t.pinned),[l]):t.pinned.filter(function(t){return t!==l}),loading:!1});case c.SEARCH_SOURCES:return s(s({},t),{},{search:t.sources.filter(function(t){return t.sourceName.toLowerCase().includes(l)})});default:return t}};e.default=l},962,[1,27,54,963]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PIN_SOURCES=e.SEARCH_SOURCES=e.GET_SOURCES=void 0;e.GET_SOURCES="GET_SOURCES";e.SEARCH_SOURCES="SEARCH_SOURCES";e.PIN_SOURCES="PIN_SOURCES"},963,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),c=t(r(d[2])),o=r(d[3]);function p(t,n){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),c.push.apply(c,o)}return c}function u(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:s,c=arguments.length>1?arguments[1]:void 0,p=c.type,l=c.payload;switch(p){case o.LOADING_NOVEL:return u(u({},t),{},{loading:!0});case o.FETCHING_NOVEL:return u(u({},t),{},{updating:!0});case o.SET_NOVEL:return u(u({},t),{},{novel:l});case o.GET_NOVEL:return u(u({},t),{},{novel:l,chapters:l.chapters,loading:!1,updating:!1});case o.GET_CHAPTERS:return u(u({},t),{},{chapters:l,loading:!1,updating:!1});case o.UPDATE_IN_LIBRARY:return u(u({},t),{},{novel:u(u({},t.novel),{},{followed:l.followed})});case o.UPDATE_NOVEL:return u(u({},t),{},{novel:l.novel,chapters:l.chapters,loading:!1,updating:!1});case o.CHAPTER_READ:return u(u({},t),{},{chapters:t.chapters.map(function(t){return t.chapterId===l.chapterId?u(u({},t),{},{read:1}):t})});case o.CHAPTER_UNREAD:return u(u({},t),{},{chapters:t.chapters.map(function(t){return t.chapterId===l.chapterId?u(u({},t),{},{read:0}):t})});case o.BOOKMARK_CHAPTER:return u(u({},t),{},{chapters:t.chapters.map(function(t){return t.chapterId===l.chapterId?u(u({},t),{},{bookmark:!l.bookmark}):t})});case o.CHAPTER_DOWNLOADING:return u(u({},t),{},{downloading:[].concat((0,n.default)(t.downloading),[l])});case o.CHAPTER_DOWNLOADED:return u(u({},t),{},{chapters:t.chapters.map(function(t){return t.chapterId===l?u(u({},t),{},{downloaded:1}):t}),downloading:t.downloading.filter(function(t){return t!==l})});case o.CHAPTER_DELETED:return u(u({},t),{},{chapters:t.chapters.map(function(t){return t.chapterId===l?u(u({},t),{},{downloaded:0}):t})});case o.UPDATE_LAST_READ:return u(u({},t),{},{novel:u(u({},t.novel),{},{lastRead:l})});case o.MARK_PREVIOUS_CHAPTERS_READ:return u(u({},t),{},{chapters:t.chapters.map(function(t){return t.chapterId0&&void 0!==arguments[0]?arguments[0]:O,n=arguments.length>1?arguments[1]:void 0,c=n.type,l=n.payload;switch(c){case o.LOAD_HISTORY:return u(u({},t),{},{loading:!0});case o.GET_HISTORY:return u(u({},t),{},{history:l,loading:!1});case o.CLEAR_HISTORY:return u(u({},t),{},{history:[]});default:return t}};e.default=l},965,[1,54,966]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CLEAR_HISTORY=e.CLEAR_NOVEL_HISTORY=e.UPDATE_NOVEL_HISTORY=e.GET_HISTORY=e.LOAD_HISTORY=void 0;e.LOAD_HISTORY="LOAD_HISTORY";e.GET_HISTORY="GET_HISTORY";e.UPDATE_NOVEL_HISTORY="UPDATE_NOVEL_HISTORY";e.CLEAR_NOVEL_HISTORY="CLEAR_NOVEL_HISTORY";e.CLEAR_HISTORY="CLEAR_HISTORY"},966,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]);function c(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(t);n&&(c=c.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,c)}return o}function u(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:l,n=arguments.length>1?arguments[1]:void 0,c=n.type,p=n.payload;switch(c){case o.LOAD_UPDATES:return u(u({},t),{},{loading:!0});case o.GET_UPDATES:return u(u({},t),{},{updates:p,loading:!1});default:return t}};e.default=p},967,[1,54,968]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.LOAD_UPDATES=e.GET_UPDATES=void 0;e.GET_UPDATES="GET_UPDATES";e.LOAD_UPDATES="LOAD_UPDATES"},968,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),c=t(r(d[2])),o=r(d[3]);function s(t,n){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),c.push.apply(c,o)}return c}function u(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:l,c=arguments.length>1?arguments[1]:void 0,s=c.type,f=c.payload;switch(s){case o.SET_TRACKER:return u(u({},t),{},{tracker:u(u({},f),{},{name:"MyAnimeList"})});case o.REMOVE_TRACKER:return u(u({},t),{},{tracker:null});case o.TRACK_NOVEL:return u(u({},t),{},{trackedNovels:t.trackedNovels.some(function(t){return t.novelId===f.novelId})?t.trackedNovels:[].concat((0,n.default)(t.trackedNovels),[f])});case o.UPDATE_TRACKER:return u(u({},t),{},{trackedNovels:t.trackedNovels.map(function(t){return t.id===f.malId?u(u({},t),{},{my_list_status:{num_chapters_read:f.num_chapters_read,status:f.status,score:f.score}}):t})});case o.UNTRACK_NOVEL:return u(u({},t),{},{trackedNovels:t.trackedNovels.filter(function(t){return t===f})});case o.UPDATE_CHAPTERS_READ:return u(u({},t),{},{trackedNovels:t.trackedNovels.map(function(t){return t.id===f.malId?u(u({},t),{},{my_list_status:u(u({},t.my_list_status),{},{num_chapters_read:f.chaptersRead})}):t})});default:return t}};e.default=f},969,[1,27,54,970]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_CHAPTERS_READ=e.UPDATE_TRACKER=e.UNTRACK_NOVEL=e.TRACK_NOVEL=e.REMOVE_TRACKER=e.SET_TRACKER=void 0;e.SET_TRACKER="SET_TRACKER";e.REMOVE_TRACKER="REMOVE_TRACKER";e.TRACK_NOVEL="TRACK_NOVEL";e.UNTRACK_NOVEL="UNTRACK_NOVEL";e.UPDATE_TRACKER="UPDATE_TRACKER";e.UPDATE_CHAPTERS_READ="UPDATE_CHAPTERS_READ"},970,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),l=r(d[3]);function s(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function v(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:c,s=arguments.length>1?arguments[1]:void 0,u=s.type,p=s.payload;switch(u){case l.SET_LAST_READ:return v(v({},t),{},{novelSettings:v(v({},t.novelSettings),{},(0,n.default)({},p.novelId,v(v({},t.novelSettings[p.novelId]),{},{lastRead:p.chapterId})))});case l.SET_CHAPTER_LIST_PREF:return v(v({},t),{},{novelSettings:v(v({},t.novelSettings),{},(0,n.default)({},p.novelId,v(v({},t.novelSettings[p.novelId]),{},{sort:p.sort,filter:p.filter})))});case o.SET_NOVEL_SETTINGS:return v(v({},t),{},{novelSettings:v(v({},t.novelSettings),{},(0,n.default)({},p.novelId,v(v({},t.novelSettings[p.novelId]),{},{showChapterTitles:p.value})))});case l.SAVE_SCROLL_POSITION:return v(v({},t),{},{novelSettings:v(v({},t.novelSettings),{},(0,n.default)({},p.novelId,v(v({},t.novelSettings[p.novelId]),{},{position:v(v({},t.novelSettings[p.novelId].position),{},(0,n.default)({},p.chapterId,{position:p.position,percentage:p.percentage}))})))});default:return t}};e.default=u},971,[1,54,799,935]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setAccentColor=e.setReaderSettings=e.setAppSettings=e.setNovelsPerRow=e.setAppTheme=void 0;var t=r(d[0]);e.setAppTheme=function(n){return function(o){o({type:t.SET_APP_THEME,payload:n})}};e.setNovelsPerRow=function(n){return function(o){o({type:t.SET_NOVELS_PER_ROW,payload:n})}};e.setAppSettings=function(n,o){return function(p){p({type:t.SET_APP_SETTINGS,payload:{key:n,val:o}})}};e.setReaderSettings=function(n,o){return function(p){p({type:t.SET_READER_SETTINGS,payload:{key:n,val:o}})}};e.setAccentColor=function(n){return function(o){o({type:t.SET_ACCENT_COLOR,payload:n})}}},972,[959]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),l=r(d[3]),s=r(d[4]),u=function(t){var u=t.data,c=t.renderItem,p=t.refreshControl,v=t.ListEmptyComponent,y=(0,l.useSettings)(),C=y.displayMode,L=y.novelsPerRow,E=(0,s.getDeviceOrientation)();return n.default.createElement(o.FlatList,{contentContainerStyle:f.flatListCont,numColumns:"landscape"===E?6:2===C?1:L,key:[E,L],data:u,keyExtractor:function(t){return t.novelUrl},renderItem:c,refreshControl:p,ListEmptyComponent:v})};e.default=u;var f=o.StyleSheet.create({flatListCont:{flexGrow:1,paddingVertical:8,paddingHorizontal:4}})},973,[1,6,10,797,974]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getDeviceOrientation=e.parseChapterNumber=void 0;var t=r(d[0]);e.parseChapterNumber=function(t){var n=(t=(t=t.toLowerCase()).replace(/volume (\d+)/,"")).match(/[ch]i (\d+)/),o=t.match(/\d+/);return n?n[0]:o?o[0]:0};e.getDeviceOrientation=function(){var n=(0,t.useWindowDimensions)();return n.width>n.height?"landscape":"potrait"}},974,[10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),n=r(d[2]),l=r(d[3]),s=r(d[4]),u=(r(d[5]),r(d[6])),c=t(r(d[7])),f=t(r(d[8])),p=r(d[9]),b=function(t){var b=t.item,R=t.onPress,w=t.libraryStatus,y=(0,u.useTheme)(),F=(0,u.useSettings)(),v=F.displayMode,x=F.novelsPerRow,B=F.showDownloadBadges,E=F.showUnreadBadges,T=(0,n.useWindowDimensions)(),C=(0,p.getDeviceOrientation)(),D=function(){return"landscape"===C?6:x},z=function(){return E&&b.chaptersUnread&&o.default.createElement(n.Text,{style:[h.unreadBadge,!b.chaptersDownloaded&&{borderTopLeftRadius:4,borderBottomLeftRadius:4},!B&&{borderRadius:4}]},b.chaptersUnread)},L=function(){return B&&b.chaptersDownloaded&&o.default.createElement(n.Text,{style:[h.downloadBadge,!b.chaptersUnread&&{borderTopRightRadius:4,borderBottomRightRadius:4},!E&&{borderRadius:4}]},b.chaptersDownloaded)};return 2!==v?o.default.createElement(n.View,{style:{flex:1/D()}},o.default.createElement(s.TouchableRipple,{borderless:!0,centered:!0,rippleColor:y.rippleColor,style:h.opac,onPress:R},o.default.createElement(o.default.Fragment,null,o.default.createElement(f.default,{source:{uri:b.novelCover},style:[{height:T.width/D()*1.3333333333333333,borderRadius:4},w&&{opacity:.5}]},o.default.createElement(n.View,{style:{flexDirection:"row",margin:4}},L(),z()),0===v&&o.default.createElement(n.View,{style:h.titleContainer},o.default.createElement(l.LinearGradient,{colors:["transparent","rgba(0,0,0,0.6)"],style:h.linearGradient},o.default.createElement(n.Text,{numberOfLines:2,style:[h.title,{color:"rgba(255,255,255,1)"}]},b.novelName)))),1===v&&o.default.createElement(n.Text,{numberOfLines:2,style:[h.title,{color:y.textColorPrimary,padding:4}]},b.novelName)))):o.default.createElement(c.default,{item:b,downloadBadge:L(),unreadBadge:z(),theme:y,onPress:R})};e.default=b;var h=n.StyleSheet.create({titleContainer:{flex:1,justifyContent:"flex-end",borderRadius:4},title:{fontFamily:"pt-sans-bold",fontSize:14,padding:8},linearGradient:{bottom:-1,borderRadius:4},opac:{paddingHorizontal:4.5,paddingVertical:4,borderRadius:4},extensionIcon:{width:42,height:42,borderRadius:4},listView:{flex:1,paddingVertical:8,paddingHorizontal:12,flexDirection:"row",alignItems:"center",borderRadius:4},downloadBadge:{backgroundColor:"#47a84a",color:"#FFFFFF",borderTopLeftRadius:4,borderBottomLeftRadius:4,paddingTop:2,paddingHorizontal:4,fontSize:12},unreadBadge:{backgroundColor:"#2979FF",color:"#FFFFFF",borderTopRightRadius:4,borderBottomRightRadius:4,paddingTop:2,paddingHorizontal:4,fontSize:12}})},975,[1,6,10,976,495,771,797,978,979,974]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.LinearGradient=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6])),s=t(r(d[7])),p=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=v(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var c=f?Object.getOwnPropertyDescriptor(t,l):null;c&&(c.get||c.set)?Object.defineProperty(u,l,c):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[8])),y=r(d[9]),h=t(r(d[10]));function v(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(v=function(t){return t?o:n})(t)}function b(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var O=(function(t){(0,l.default)(j,t);var v,O,w=(v=j,O=b(),function(){var t,n=(0,s.default)(v);if(O){var o=(0,s.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,c.default)(this,t)});function j(){return(0,u.default)(this,j),w.apply(this,arguments)}return(0,f.default)(j,[{key:"render",value:function(){var t=this.props,u=t.colors,f=t.locations,l=t.start,c=t.end,s=(0,o.default)(t,["colors","locations","start","end"]),v=f;return f&&u.length!==f.length&&(console.warn('LinearGradient colors and locations props should be arrays of the same length'),v=f.slice(0,u.length)),p.createElement(h.default,(0,n.default)({},s,{colors:y.Platform.select({web:u,default:u.map(y.processColor)}),locations:v,startPoint:P(l),endPoint:P(c)}))}}]),j})(p.Component);function P(t){if(t){if(!Array.isArray(t)||2===t.length)return Array.isArray(t)?t:[t.x,t.y];console.warn('start and end props for LinearGradient must be of the format [x,y] or {x, y}')}}e.LinearGradient=O},976,[1,9,60,31,32,42,44,41,6,10,977]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var l,f,p,b,y,R,P,v,h,O,j=t.colors,w=t.locations,M=t.startPoint,_=t.endPoint,L=t.children,B=t.style,S=(0,n.default)(t,["colors","locations","startPoint","endPoint","children","style"]),T=null!=(l=s.StyleSheet.flatten(B))?l:{},k=null!=(f=T.borderRadius)?f:0,E=[null!=(p=T.borderTopLeftRadius)?p:k,null!=(b=T.borderTopLeftRadius)?b:k,null!=(y=T.borderTopRightRadius)?y:k,null!=(R=T.borderTopRightRadius)?R:k,null!=(P=T.borderBottomRightRadius)?P:k,null!=(v=T.borderBottomRightRadius)?v:k,null!=(h=T.borderBottomLeftRadius)?h:k,null!=(O=T.borderBottomLeftRadius)?O:k];return u.createElement(s.View,(0,o.default)({},S,{style:B}),u.createElement(c,{style:s.StyleSheet.absoluteFill,colors:j,startPoint:M,endPoint:_,locations:w,borderRadii:E}),L)};var o=t(r(d[1])),n=t(r(d[2])),l=r(d[3]),u=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=f(o);if(n&&n.has(t))return n.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var c=u?Object.getOwnPropertyDescriptor(t,s):null;c&&(c.get||c.set)?Object.defineProperty(l,s,c):l[s]=t[s]}l.default=t,n&&n.set(t,l);return l})(r(d[4])),s=r(d[5]);function f(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(f=function(t){return t?n:o})(t)}var c=(0,l.requireNativeViewManager)('ExpoLinearGradient')},977,[1,9,60,429,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=r(d[2]),o=t(r(d[3])),f=r(d[4]),u=function(t){var u=t.item,c=t.downloadBadge,p=t.unreadBadge,v=t.theme,x=t.onPress;return l.default.createElement(f.TouchableRipple,{borderless:!0,centered:!0,rippleColor:v.rippleColor,style:s.listView,onPress:x},l.default.createElement(l.default.Fragment,null,l.default.createElement(o.default,{source:{uri:u.novelCover},style:s.extensionIcon}),l.default.createElement(n.Text,{style:[{color:v.textColorPrimary},s.novelName],numberOfLines:1},u.novelName),l.default.createElement(n.View,{style:s.badgeContainer},c,p)))};e.default=u;var s=n.StyleSheet.create({listView:{flex:1,flexDirection:"row",alignItems:"center",paddingVertical:8,paddingHorizontal:12},extensionIcon:{width:40,height:40,borderRadius:4},novelName:{flex:1,marginLeft:16,fontSize:15,paddingRight:8,flexWrap:"wrap"},badgeContainer:{flexDirection:"row",justifyContent:"flex-end",alignItems:"flex-end"}})},978,[1,6,10,979,495]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]);function n(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);o&&(s=s.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,s)}return n}function s(o){for(var s=1;s0&&void 0!==v[0]?v[0]:{},c=t.type,o=void 0===c?'*/*':c,l=t.copyToCacheDirectory,s=void 0===l||l,p=t.multiple,y=void 0!==p&&p,f.next=3,n.default.awrap(u.default.getDocumentAsync({type:o,copyToCacheDirectory:s,multiple:y}));case 3:return f.abrupt("return",f.sent);case 4:case"end":return f.stop()}},null,null,null,Promise)};var n=t(r(d[1])),u=t(r(d[2]))},983,[1,106,984]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoDocumentPicker;e.default=o},984,[429]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.updateLibraryAction=e.getUpdatesAction=void 0;var n=t(r(d[1])),u=r(d[2]),s=r(d[3]),c=r(d[4]),o=r(d[5]),l=function(){return function(t){var c,o,l;return n.default.async(function(p){for(;;)switch(p.prev=p.next){case 0:return p.next=2,n.default.awrap((0,s.getUpdates)());case 2:c=p.sent,o=c.reduce(function(t,n){var u=n.updateTime.split("-"),s=new Date(u[0],u[1]-1,u[2].substr(0,2)).toISOString();return t[s]||(t[s]=[]),t[s].push(n),t},{}),l=Object.keys(o).map(function(t){return{date:t,chapters:o[t]}}),t({type:u.GET_UPDATES,payload:l});case 6:case"end":return p.stop()}},null,null,null,Promise)}};e.getUpdatesAction=l;e.updateLibraryAction=function(){return function(t){return n.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:return(0,o.showToast)("Updating library"),u.next=3,n.default.awrap((0,c.updateAllNovels)());case 3:t(l());case 4:case"end":return u.stop()}},null,null,null,Promise)}}},985,[1,106,968,934,800,842]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),l=t(r(d[2])),n=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=C(o);if(l&&l.has(t))return l.get(t);var n={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var u=c?Object.getOwnPropertyDescriptor(t,s):null;u&&(u.get||u.set)?Object.defineProperty(n,s,u):n[s]=t[s]}n.default=t,l&&l.set(t,n);return n})(r(d[3])),c=r(d[4]),s=r(d[5]),u=r(d[6]),f=t(r(d[7])),y=r(d[8]),p=r(d[9]),h=r(d[10]),S=r(d[11]);function C(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,l=new WeakMap;return(C=function(t){return t?l:o})(t)}var b=function(t){var C=t.bottomSheetRef,b=t.dispatch,v=t.sort,k=t.filter,A=t.theme,x=(0,n.useState)(new c.Animated.Value(0)),E=(0,l.default)(x,1)[0],L=[{displayMode:0,label:"Compact Grid"},{displayMode:1,label:"Comfortable Grid"},{displayMode:2,label:"List"}],D=(0,h.useSettings)(),P=D.displayMode,I=D.showDownloadBadges,U=D.showUnreadBadges,M=D.showNumberOfNovels,z=(0,s.SceneMap)({first:function(){return n.default.createElement(c.View,{style:{flex:1}},n.default.createElement(u.Checkbox.Item,{label:"Downloaded",labelStyle:{fontSize:14,color:A.textColorPrimary},color:A.colorAccent,uncheckedColor:A.textColorHint,status:"chaptersDownloaded > 0"===k?"checked":"unchecked",onPress:function(){return b("chaptersDownloaded > 0"===k?(0,p.filterLibrary)(v,""):(0,p.filterLibrary)(v,"chaptersDownloaded > 0"))}}),n.default.createElement(u.Checkbox.Item,{label:"Unread",labelStyle:{fontSize:14,color:A.textColorPrimary},color:A.colorAccent,uncheckedColor:A.textColorHint,status:"unread = 1"===k?"checked":"unchecked",onPress:function(){return b("unread = 1"===k?(0,p.filterLibrary)(v,""):(0,p.filterLibrary)(v,"unread = 1"))}}),n.default.createElement(u.Checkbox.Item,{label:"Completed",labelStyle:{fontSize:14,color:A.textColorPrimary},color:A.colorAccent,uncheckedColor:A.textColorHint,status:"chaptersUnread IS NULL"===k?"checked":"unchecked",onPress:function(){return b("chaptersUnread IS NULL"===k?(0,p.filterLibrary)(v,""):(0,p.filterLibrary)(v,"chaptersUnread IS NULL"))}}))},second:function(){return n.default.createElement(c.View,{style:{flex:1}},n.default.createElement(y.ListItem,{style:{paddingVertical:10},title:"Date Added",titleStyle:{fontSize:14},theme:A,right:"novels.novelId ASC"===v?"arrow-up":"novels.novelId DESC"===v?"arrow-down":null,iconColor:A.colorAccent,onPress:function(){return b("novels.novelId ASC"===v?(0,p.filterLibrary)("novels.novelId DESC",k):(0,p.filterLibrary)("novels.novelId ASC",k))}}),n.default.createElement(y.ListItem,{style:{paddingVertical:10},title:"Alphabetically",titleStyle:{fontSize:14},theme:A,right:"novels.novelName ASC"===v?"arrow-up":"novels.novelName DESC"===v?"arrow-down":null,iconColor:A.colorAccent,onPress:function(){return b("novels.novelName ASC"===v?(0,p.filterLibrary)("novels.novelName DESC",k):(0,p.filterLibrary)("novels.novelName ASC",k))}}),n.default.createElement(y.ListItem,{style:{paddingVertical:10},title:"Unread",titleStyle:{fontSize:14},theme:A,right:"novels.unread ASC"===v?"arrow-up":"novels.unread DESC"===v?"arrow-down":null,iconColor:A.colorAccent,onPress:function(){return b("novels.unread ASC"===v?(0,p.filterLibrary)("novels.unread DESC",k):(0,p.filterLibrary)("novels.unread ASC",k))}}),n.default.createElement(y.ListItem,{style:{paddingVertical:10},title:"Downloaded",titleStyle:{fontSize:14},theme:A,right:"chaptersDownloaded ASC"===v?"arrow-up":"chaptersDownloaded DESC"===v?"arrow-down":null,iconColor:A.colorAccent,onPress:function(){return b("chaptersDownloaded ASC"===v?(0,p.filterLibrary)("chaptersDownloaded DESC",k):(0,p.filterLibrary)("chaptersDownloaded ASC",k))}}),n.default.createElement(y.ListItem,{style:{paddingVertical:10},title:"Total Chapters",titleStyle:{fontSize:14},theme:A,right:"chaptersUnread ASC"===v?"arrow-up":"chaptersUnread DESC"===v?"arrow-down":null,iconColor:A.colorAccent,onPress:function(){return b("chaptersUnread ASC"===v?(0,p.filterLibrary)("chaptersUnread DESC",k):(0,p.filterLibrary)("chaptersUnread ASC",k))}}))},third:function(){return n.default.createElement(c.View,{style:{flex:1}},n.default.createElement(c.Text,{style:{color:A.textColorSecondary,paddingHorizontal:16,paddingVertical:16,textTransform:"uppercase"}},"Display Mode"),L.map(function(t){return n.default.createElement(u.Checkbox.Item,{key:t.displayMode,label:t.label,labelStyle:{color:A.textColorPrimary,fontSize:14},status:P===t.displayMode?"checked":"unchecked",uncheckedColor:A.textColorSecondary,color:A.colorAccent,onPress:function(){return b((0,S.setAppSettings)("displayMode",t.displayMode))}})}),n.default.createElement(c.Text,{style:{color:A.textColorSecondary,paddingHorizontal:16,paddingVertical:16,textTransform:"uppercase"}},"Badges"),n.default.createElement(u.Checkbox.Item,{label:"Download Badges",labelStyle:{color:A.textColorPrimary,fontSize:14},status:I?"checked":"unchecked",uncheckedColor:A.textColorSecondary,color:A.colorAccent,onPress:function(){return b((0,S.setAppSettings)("showDownloadBadges",!I))}}),n.default.createElement(u.Checkbox.Item,{label:"Unread Badges",labelStyle:{color:A.textColorPrimary,fontSize:14},status:U?"checked":"unchecked",uncheckedColor:A.textColorSecondary,color:A.colorAccent,onPress:function(){return b((0,S.setAppSettings)("showUnreadBadges",!U))}}),n.default.createElement(u.Checkbox.Item,{label:"Show number of items",labelStyle:{color:A.textColorPrimary,fontSize:14},status:M?"checked":"unchecked",uncheckedColor:A.textColorSecondary,color:A.colorAccent,onPress:function(){return b((0,S.setAppSettings)("showNumberOfNovels",!M))}}))}}),V=(0,c.useWindowDimensions)(),T=(0,n.useState)(0),N=(0,l.default)(T,2),O=N[0],B=N[1],R=(0,n.useState)([{key:"first",title:"Filter"},{key:"second",title:"Sort"},{key:"third",title:"Display"}]),j=(0,l.default)(R,1)[0];return n.default.createElement(f.default,{animatedValue:E,ref:C,draggableRange:{top:470,bottom:0},snappingPoints:[0,470]},n.default.createElement(c.View,{style:[w.contentContainer,{backgroundColor:A.colorPrimaryDark}]},n.default.createElement(s.TabView,{navigationState:{index:O,routes:j},renderTabBar:function(t){return n.default.createElement(s.TabBar,(0,o.default)({},t,{indicatorStyle:{backgroundColor:A.colorAccent},style:{backgroundColor:A.colorPrimary},renderLabel:function(t){var o=t.route,l=(t.focused,t.color);return n.default.createElement(c.Text,{style:{color:l,margin:8}},o.title)},inactiveColor:A.textColorSecondary,activeColor:A.colorAccent,pressColor:A.rippleColor}))},renderScene:z,onIndexChange:B,initialLayout:{width:V.width},style:{borderTopRightRadius:8,borderTopLeftRadius:8}})))};e.default=b;var w=c.StyleSheet.create({contentContainer:{flex:1,borderTopRightRadius:8,borderTopLeftRadius:8}})},986,[1,9,19,6,10,987,495,1002,1010,981,797,972]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TabBar",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"TabView",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"TabBarIndicator",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"TabBarItem",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"SceneMap",{enumerable:!0,get:function(){return c.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),b=t(r(d[4])),c=t(r(d[5]))},987,[1,988,992,991,989,1001]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=t(r(d[6])),f=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var l={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var c=s?Object.getOwnPropertyDescriptor(t,u):null;c&&(c.get||c.set)?Object.defineProperty(l,u,c):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[7])),h=r(d[8]),b=t(r(d[9])),y=t(r(d[10]));function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}function v(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function w(t){for(var o=1;o1){var l=n.map(function(t,n){return n});return t.interpolate({inputRange:l,outputRange:l.map(function(t){return t===o?1:0})})}return 1},t.getInactiveOpacity=function(t,n,o){if(n.length>1){var l=n.map(function(t,n){return n});return t.interpolate({inputRange:l,outputRange:l.map(function(t){return t===o?0:1})})}return 0},t}return(0,o.default)(w,[{key:"render",value:function(){var t=this.props,n=t.route,o=t.position,l=t.navigationState,c=t.renderLabel,u=t.renderIcon,y=t.renderBadge,v=t.getLabelText,b=t.getTestID,O=t.getAccessibilityLabel,w=t.getAccessible,P=t.activeColor,S=void 0===P?"rgba(255, 255, 255, 1)":P,E=t.inactiveColor,A=void 0===E?"rgba(255, 255, 255, 0.7)":E,R=t.pressColor,j=t.pressOpacity,L=t.labelStyle,V=t.style,x=t.onLayout,C=t.onPress,I=t.onLongPress,_=l.routes.indexOf(n),k=l.index===_,M=this.getActiveOpacity(o,l.routes,_),D=this.getInactiveOpacity(o,l.routes,_),T=null,B=null;if(u){var W=u({route:n,focused:!0,color:S}),F=u({route:n,focused:!1,color:A});null!=F&&null!=W&&(T=s.createElement(f.View,{style:h.icon},s.createElement(f.Animated.View,{style:{opacity:D}},F),s.createElement(f.Animated.View,{style:[f.StyleSheet.absoluteFill,{opacity:M}]},W)))}var H=void 0!==c?c:function(t){var n=t.route,o=t.color,l=v({route:n});return'string'==typeof l?s.createElement(f.Animated.Text,{style:[h.label,T?{marginTop:0}:null,L,{color:o}]},l):l};if(H){var q=H({route:n,focused:!0,color:S}),z=H({route:n,focused:!1,color:A});B=s.createElement(f.View,null,s.createElement(f.Animated.View,{style:{opacity:D}},z),s.createElement(f.Animated.View,{style:[f.StyleSheet.absoluteFill,{opacity:M}]},q))}var G=f.StyleSheet.flatten(V),J=void 0!==(null==G?void 0:G.width)?null:{flex:1},K={route:n},N=O(K);N=void 0!==N?N:v(K);var Q=y?y(K):null;return s.createElement(p.default,{android_ripple:{borderless:!0},testID:b(K),accessible:w(K),accessibilityLabel:N,accessibilityRole:"tab",accessibilityState:{selected:k},accessibilityStates:k?['selected']:[],pressColor:R,pressOpacity:j,delayPressIn:0,onLayout:x,onPress:C,onLongPress:I,style:J},s.createElement(f.View,{pointerEvents:"none",style:[h.item,G]},T,B,null!=Q?s.createElement(f.View,{style:h.badge},Q):null))}}]),w})(s.Component);e.default=b;var h=f.StyleSheet.create({label:{margin:4,backgroundColor:'transparent'},icon:{margin:2},item:{flex:1,alignItems:'center',justifyContent:'center',padding:10,minHeight:48},badge:{position:'absolute',top:0,right:0}})},989,[1,31,32,42,44,41,6,10,990]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var o=t.android_ripple,u=t.pressColor,l=void 0===u?'rgba(0, 0, 0, .32)':u,y=t.pressOpacity,b=t.style,j=(0,p.default)(t,["android_ripple","pressColor","pressOpacity","style"]);return c.createElement(f.Pressable,(0,n.default)({android_ripple:O?s({color:l},o):void 0,style:function(t){var n=t.pressed;return[{opacity:n&&!O?y:1},'function'==typeof b?b({pressed:n}):b]}},j))};var n=t(r(d[1])),o=t(r(d[2])),p=t(r(d[3])),c=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var p={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in t)if("default"!==f&&Object.prototype.hasOwnProperty.call(t,f)){var l=c?Object.getOwnPropertyDescriptor(t,f):null;l&&(l.get||l.set)?Object.defineProperty(p,f,l):p[f]=t[f]}p.default=t,o&&o.set(t,p);return p})(r(d[4])),f=r(d[5]);function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}function l(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(t);n&&(p=p.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,p)}return o}function s(t){for(var n=1;n=21},990,[1,9,54,60,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),p=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=h(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[7])),s=r(d[8]);function h(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(h=function(t){return t?o:n})(t)}function y(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var v=(function(t){(0,c.default)(I,t);var h,v,b=(h=I,v=y(),function(){var t,n=(0,f.default)(h);if(v){var o=(0,f.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,l.default)(this,t)});function I(){var t;(0,o.default)(this,I);for(var u=arguments.length,c=new Array(u),l=0;l1?this.getTranslateX(n,h,u):0;y.push({translateX:v})}if('auto'===c){var b=h.map(function(t,n){return n}),I=b.map(u);y.push({scaleX:h.length>1?n.interpolate({inputRange:b,outputRange:I,extrapolate:'clamp'}):I[0]},{translateX:.5})}return p.createElement(s.Animated.View,{style:[w.indicator,{width:'auto'===c?1:c},f.width?{left:0}:{left:100/h.length*o.index+"%"},{transform:y},'auto'===c?{opacity:this.opacity}:null,l]})}}]),I})(p.Component);e.default=v;var w=s.StyleSheet.create({indicator:{backgroundColor:'#ffeb3b',position:'absolute',left:0,bottom:0,right:0,height:2}})},991,[1,27,31,32,42,44,41,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var o=t.onIndexChange,s=t.navigationState,v=t.renderScene,h=t.initialLayout,w=t.keyboardDismissMode,j=void 0===w?'auto':w,P=t.lazy,S=void 0!==P&&P,E=t.lazyPreloadDistance,D=void 0===E?0:E,k=t.onSwipeStart,M=t.onSwipeEnd,_=t.renderLazyPlaceholder,x=void 0===_?function(){return null}:_,z=t.renderTabBar,L=void 0===z?function(t){return l.createElement(f.default,t)}:z,C=t.sceneContainerStyle,T=t.style,W=t.swipeEnabled,B=void 0===W||W,I=t.tabBarPosition,F=void 0===I?'top':I,V=l.useState(b({width:0,height:0},h)),q=(0,u.default)(V,2),A=q[0],G=q[1];return l.createElement(c.View,{onLayout:function(t){var n=t.nativeEvent.layout,o=n.height,u=n.width;G(function(t){return t.width===u&&t.height===o?t:{height:o,width:u}})},style:[O.pager,T]},l.createElement(y.default,{layout:A,navigationState:s,keyboardDismissMode:j,swipeEnabled:B,onSwipeStart:k,onSwipeEnd:M,onIndexChange:function(t){t!==s.index&&o(t)}},function(t){var o=t.position,u=t.render,c=t.addEnterListener,f=t.jumpTo,y={position:o,layout:A,jumpTo:f};return l.createElement(l.Fragment,null,'top'===F&&L(b(b({},y),{},{navigationState:s})),u(s.routes.map(function(t,o){return l.createElement(p.default,(0,n.default)({},y,{addEnterListener:c,key:t.key,index:o,lazy:'function'==typeof S?S({route:t}):S,lazyPreloadDistance:D,navigationState:s,style:C}),function(n){var o=n.loading;return o?x({route:t}):v(b(b({},y),{},{route:t}))})})),'bottom'===F&&L(b(b({},y),{},{navigationState:s})))}))};var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=l?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(u,c,f):u[c]=t[c]}u.default=t,o&&o.set(t,u);return u})(r(d[4])),c=r(d[5]),f=t(r(d[6])),p=t(r(d[7])),y=t(r(d[8]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function v(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);n&&(u=u.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,u)}return o}function b(t){for(var n=1;nt.props.lazyPreloadDistance},t.unsubscribe=null,t.handleEnter=function(n){n===t.props.index&&t.setState(function(t){return t.loading?{loading:!1}:null})},t}return(0,o.default)(w,[{key:"componentDidMount",value:function(){var t=this;this.props.lazy?this.unsubscribe=this.props.addEnterListener(this.handleEnter):this.state.loading&&setTimeout(function(){return t.setState({loading:!1})},0)}},{key:"componentDidUpdate",value:function(t,n){var o,l;this.props.lazy===t.lazy&&this.state.loading===n.loading||(this.props.lazy&&this.state.loading?(null==(o=this.unsubscribe)||o.call(this),this.unsubscribe=this.props.addEnterListener(this.handleEnter)):null==(l=this.unsubscribe)||l.call(this))}},{key:"componentWillUnmount",value:function(){var t;null==(t=this.unsubscribe)||t.call(this)}},{key:"render",value:function(){var t=this.props,n=t.navigationState,o=t.index,l=t.layout,u=t.style,s=this.state.loading,p=n.index===o;return c.createElement(f.View,{accessibilityElementsHidden:!p,importantForAccessibility:p?'auto':'no-hide-descendants',style:[v.route,l.width?{width:l.width}:p?f.StyleSheet.absoluteFill:null,u]},p||l.width?this.props.children({loading:s}):null)}}],[{key:"getDerivedStateFromProps",value:function(t,n){return n.loading&&Math.abs(t.navigationState.index-t.index)<=t.lazyPreloadDistance?{loading:!1}:null}}]),w})(c.Component);e.default=y;var v=f.StyleSheet.create({route:{flex:1,overflow:'hidden'}})},993,[1,31,32,42,44,41,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var l=t.keyboardDismissMode,s=void 0===l?'auto':l,y=t.swipeEnabled,b=void 0===y||y,S=t.navigationState,h=t.onIndexChange,E=t.onSwipeStart,w=t.onSwipeEnd,P=t.children,M=t.style,O=(0,o.default)(t,["keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onSwipeStart","onSwipeEnd","children","style"]),k=S.index,j=u.useRef([]),x=u.useRef(),C=u.useRef(k),D=u.useRef(S),_=(0,f.default)(k),A=(0,f.default)(0);u.useEffect(function(){D.current=S});var R=u.useCallback(function(t){var n,o=D.current.routes.findIndex(function(n){return n.key===t});null==(n=x.current)||n.setPage(o)},[]);u.useEffect(function(){var t;('auto'===s&&c.Keyboard.dismiss(),C.current!==k)&&(null==(t=x.current)||t.setPage(k))},[s,k]);var I=function(t){var n=t.nativeEvent.pageScrollState;switch(n){case'idle':return void(null==w||w());case'dragging':var o=A.addListener(function(t){var n=t.value,u=k+(n>0?Math.ceil(n):Math.floor(n));u!==k&&j.current.forEach(function(t){return t(u)}),A.removeListener(o)});return void(null==E||E())}},L=u.useCallback(function(t){return j.current.push(t),function(){var n=j.current.indexOf(t);n>-1&&j.current.splice(n,1)}},[]);return P({position:c.Animated.add(_,A),addEnterListener:L,jumpTo:R,render:function(t){return u.createElement(v,(0,n.default)({},O,{ref:x,style:[p.container,M],initialPage:k,keyboardDismissMode:'auto'===s?'on-drag':s,onPageScroll:c.Animated.event([{nativeEvent:{position:_,offset:A}}],{useNativeDriver:!0}),onPageSelected:function(t){var n=t.nativeEvent.position;C.current=n,h(n)},onPageScrollStateChanged:I,scrollEnabled:b}),t)}})};var n=t(r(d[1])),o=t(r(d[2])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[3])),c=r(d[4]),l=t(r(d[5])),f=t(r(d[6]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}var v=c.Animated.createAnimatedComponent(l.default);var p=c.StyleSheet.create({container:{flex:1}})},994,[1,9,60,6,10,995,1000]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={};e.default=void 0;var n=r(d[0]);Object.keys(n).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||o in e&&e[o]===n[o]||Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[o]}}))});var o=r(d[1]).PagerView;e.default=o},995,[996,997]); +__d(function(g,r,i,a,m,e,d){},996,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.PagerView=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),s=t(r(d[7])),p=t(r(d[8])),h=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=v(n);if(o&&o.has(t))return o.get(t);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=u?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(l,c,f):l[c]=t[c]}l.default=t,o&&o.set(t,l);return l})(r(d[9])),P=r(d[10]),S=r(d[11]);function v(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(v=function(t){return t?o:n})(t)}function y(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var w=(function(t){(0,c.default)(C,t);var v,w,M=(v=C,w=y(),function(){var t,n=(0,s.default)(v);if(w){var o=(0,s.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,f.default)(this,t)});function C(){var t;(0,o.default)(this,C);for(var n=arguments.length,l=new Array(n),c=0;c0&&void 0!==arguments[0]?arguments[0]:o;return n.UIManager.getViewManagerConfig(t)},e.PagerViewViewManager=void 0;var n=r(d[0]),o='RNCViewPager',t=(0,n.requireNativeComponent)(o);e.PagerViewViewManager=t},999,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(u){var o=t.useRef();void 0===o.current&&(o.current=new n.Animated.Value(u));return o.current};var t=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=u(n);if(o&&o.has(t))return o.get(t);var f={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var p=c?Object.getOwnPropertyDescriptor(t,l):null;p&&(p.get||p.set)?Object.defineProperty(f,l,p):f[l]=t[l]}f.default=t,o&&o.set(t,f);return f})(r(d[0])),n=r(d[1]);function u(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(u=function(t){return t?o:n})(t)}},1000,[6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return function(n){var o=n.route,u=n.jumpTo,f=n.position;return p.createElement(v,{key:o.key,component:t[o.key],route:o,jumpTo:u,position:f})}};var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),f=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),p=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var u={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var l=f?Object.getOwnPropertyDescriptor(t,c):null;l&&(l.get||l.set)?Object.defineProperty(u,c,l):u[c]=t[c]}u.default=t,o&&o.set(t,u);return u})(r(d[7]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function y(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var v=(function(t){(0,f.default)(O,t);var s,v,h=(s=O,v=y(),function(){var t,n=(0,l.default)(s);if(v){var o=(0,l.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,c.default)(this,t)});function O(){return(0,o.default)(this,O),h.apply(this,arguments)}return(0,u.default)(O,[{key:"render",value:function(){var t=this.props,o=t.component,u=(0,n.default)(t,["component"]);return p.createElement(o,u)}}]),O})(p.PureComponent)},1001,[1,60,31,32,42,44,41,6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),p=t(r(d[6])),c=t(r(d[7])),f=t(r(d[8])),h=t(r(d[9])),_=t(r(d[10])),b=t(r(d[11])),y=t(r(d[12])),v=r(d[13]),k=t(r(d[14])),R=t(r(d[15])),P=t(r(d[16])),V=r(d[17]),D=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=T(n);if(o&&o.has(t))return o.get(t);var s={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var p=l?Object.getOwnPropertyDescriptor(t,u):null;p&&(p.get||p.set)?Object.defineProperty(s,u,p):s[u]=t[u]}s.default=t,o&&o.set(t,s);return s})(r(d[18])),E=t(r(d[19]));function T(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(T=function(t){return t?o:n})(t)}function w(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var A=v.Platform.select({android:'keyboardDidShow',ios:'keyboardWillShow'}),B=v.Platform.select({android:'keyboardDidHide',ios:'keyboardWillHide'}),M=(0,V.visibleHeight)()-(0,V.statusBarHeight)(),S=(function(t){(0,c.default)(M,t);var b,V,T=(b=M,V=w(),function(){var t,n=(0,h.default)(b);if(V){var o=(0,h.default)(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return(0,f.default)(this,t)});function M(t){var n;(0,l.default)(this,M),(n=T.call(this,t))._panResponder=v.PanResponder.create({onMoveShouldSetPanResponder:n._onMoveShouldSetPanResponder.bind((0,p.default)(n)),onPanResponderGrant:n._onPanResponderGrant.bind((0,p.default)(n)),onPanResponderMove:n._onPanResponderMove.bind((0,p.default)(n)),onPanResponderRelease:n._onPanResponderRelease.bind((0,p.default)(n)),onPanResponderTerminate:n._onPanResponderTerminate.bind((0,p.default)(n)),onShouldBlockNativeResponder:function(){return!0},onPanResponderTerminationRequest:function(){return!1}}),n._keyboardShowListener=v.Keyboard.addListener(A,n._onKeyboardShown.bind((0,p.default)(n))),n._keyboardHideListener=v.Keyboard.addListener(B,n._onKeyboardHiden.bind((0,p.default)(n))),n._backButtonListener=v.BackHandler.addEventListener('hardwareBackPress',n._onBackButtonPress.bind((0,p.default)(n))),n._storeKeyboardPosition=n._storeKeyboardPosition.bind((0,p.default)(n)),n._isInsideDraggableRange=n._isInsideDraggableRange.bind((0,p.default)(n)),n._triggerAnimation=n._triggerAnimation.bind((0,p.default)(n)),n._renderContent=n._renderContent.bind((0,p.default)(n)),n._renderBackdrop=n._renderBackdrop.bind((0,p.default)(n)),n.show=n.show.bind((0,p.default)(n)),n.hide=n.hide.bind((0,p.default)(n)),n.scrollIntoView=n.scrollIntoView.bind((0,p.default)(n));var o=n.props.draggableRange,s=o.top,u=o.bottom,c=n.props.animatedValue.__getValue(),f=(0,y.default)(c,u,s);return n.props.animatedValue.setValue(f),n._initialDragPosition=f,n._backdropPointerEvents=n._isAtBottom(f)?'none':'box-only',n._flick=new P.default({max:s,min:u}),n._flickAnimationListener=n._flick.onUpdate(function(t){n.props.animatedValue.setValue(t)}),n._animatedValueListener=n.props.animatedValue.addListener(n._onAnimatedValueChange.bind((0,p.default)(n))),n}return(0,u.default)(M,[{key:"componentDidUpdate",value:function(t){if(t.draggableRange.top!==this.props.draggableRange.top||t.draggableRange.bottom!==this.props.draggableRange.bottom){var n=this.props.draggableRange,o=n.top,s=n.bottom,l=this.props.animatedValue.__getValue();if(this._flick.setMax(o),this._flick.setMin(s),lo){var u=(0,y.default)(l,s,o);this.props.animatedValue.setValue(u)}}}},{key:"componentWillUnmount",value:function(){null!=this._animatedValueListener&&this.props.animatedValue.removeListener(this._animatedValueListener),null!=this._keyboardShowListener&&this._keyboardShowListener.remove(),null!=this._keyboardHideListener&&this._keyboardHideListener.remove(),null!=this._flickAnimationListener&&this._flickAnimationListener.remove(),null!=this._backButtonListener&&this._backButtonListener.remove()}},{key:"_onMoveShouldSetPanResponder",value:function(t,n){if(!this.props.allowDragging)return!1;var o=this.props.animatedValue.__getValue();return this._isInsideDraggableRange(o,n)&&Math.abs(n.dy)>this.props.minimumDistanceThreshold}},{key:"_onPanResponderGrant",value:function(t,n){this._flick.stop();var o=this.props.animatedValue.__getValue();this._initialDragPosition=o,this.props.onDragStart(o,n)}},{key:"_onPanResponderMove",value:function(t,n){var o=this.props.draggableRange,s=o.top,l=o.bottom,u=this._initialDragPosition-n.dy,p=(0,y.default)(u,s,l);this.props.animatedValue.setValue(p)}},{key:"_onPanResponderRelease",value:function(t,n){var o=this.props.animatedValue.__getValue();if(!this._isInsideDraggableRange(o,n))return!0;if(this._initialDragPosition=o,this.props.onDragEnd(o,n),!this.props.allowMomentum)return!0;if(this.props.snappingPoints.length>0){this.props.onMomentumDragStart(o);var l=this.props.draggableRange,u=l.top,p=l.bottom,c=this._flick.predictNextPosition({fromValue:o,velocity:n.vy,friction:this.props.friction}),f=(0,k.default)(c,[p].concat((0,s.default)(this.props.snappingPoints),[u])),h=(o-f)/D.TIME_CONSTANT;return this._flick.start({velocity:h,toValue:f,fromValue:o,friction:this.props.friction,onMomentumEnd:this.props.onMomentumDragEnd}),!0}return Math.abs(n.vy)>this.props.minimumVelocityThreshold&&(this.props.onMomentumDragStart(o),this._flick.start({velocity:n.vy,fromValue:o,friction:this.props.friction,onMomentumEnd:this.props.onMomentumDragEnd})),!0}},{key:"_onPanResponderTerminate",value:function(t,n){var o=this.props.animatedValue.__getValue();this._isInsideDraggableRange(o,n)&&(this._initialDragPosition=o,this.props.onDragEnd(o,n))}},{key:"_onAnimatedValueChange",value:function(t){var n=t.value,o=this._isAtBottom(n);o&&(this.props.onBottomReached(),this.props.avoidKeyboard&&v.Keyboard.dismiss()),null!=this._backdrop&&(o&&'box-only'===this._backdropPointerEvents&&(this._backdropPointerEvents='none',this._backdrop.setNativeProps({pointerEvents:'none'})),o||'none'!==this._backdropPointerEvents||(this._backdropPointerEvents='box-only',this._backdrop.setNativeProps({pointerEvents:'box-only'})))}},{key:"_onKeyboardShown",value:function(t){var n=this;if(this.props.avoidKeyboard){this._storeKeyboardPosition(t.endCoordinates.screenY);var o=v.TextInput.State.currentlyFocusedInput?(0,v.findNodeHandle)(v.TextInput.State.currentlyFocusedInput()):v.TextInput.State.currentlyFocusedField();null!=o&&v.UIManager.viewIsDescendantOf(o,(0,v.findNodeHandle)(this._content),function(t){t&&n.scrollIntoView(o)})}}},{key:"_onKeyboardHiden",value:function(){this._storeKeyboardPosition(0);var t=this.props.animatedValue.__getValue();null==this._lastPosition||this._isAtBottom(t)||v.Animated.timing(this.props.animatedValue,{toValue:this._lastPosition,duration:D.KEYBOARD_TRANSITION_DURATION,useNativeDriver:!0}).start(),this._lastPosition=null}},{key:"_onBackButtonPress",value:function(){if(this.props.onBackButtonPress)return this.props.onBackButtonPress();var t=this.props.animatedValue.__getValue();return!this._isAtBottom(t)&&(this.hide(),!0)}},{key:"_isInsideDraggableRange",value:function(t,n){var o=this.props.draggableRange,s=o.top,l=o.bottom;return n.dy>0?t>=l:t<=s}},{key:"_isAtBottom",value:function(t){return t<=this.props.draggableRange.bottom}},{key:"_storeKeyboardPosition",value:function(t){this._keyboardYPosition=t}},{key:"_triggerAnimation",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.props.animatedValue.__getValue(),o=n-t.toValue,s=t.velocity||o/D.TIME_CONSTANT;this._flick.start({velocity:s,toValue:t.toValue,fromValue:n,friction:this.props.friction})}},{key:"_renderBackdrop",value:function(){var t=this;if(!this.props.showBackdrop)return null;var n=this.props.draggableRange,o=n.top,s=n.bottom,l=this.props.backdropStyle,u=this.props.animatedValue.interpolate({inputRange:[s,o],outputRange:[0,this.props.backdropOpacity],extrapolate:'clamp'});return _.default.createElement(v.Animated.View,{key:"backdrop",pointerEvents:this._backdropPointerEvents,ref:function(n){return t._backdrop=n},onTouchStart:function(){return t._flick.stop()},onTouchEnd:function(){return t.hide()},style:[E.default.backdrop,l,{opacity:u}]})}},{key:"_renderContent",value:function(){var t=this,n=this.props,s=n.height,l=n.draggableRange,u=l.top,p=l.bottom,c=n.containerStyle,f={transform:[{translateY:this.props.animatedValue.interpolate({inputRange:[p,u],outputRange:[-p,-u],extrapolate:'clamp'})}]},h=[E.default.animatedContainer,f,c,{height:s,bottom:-s}];return'function'==typeof this.props.children?_.default.createElement(v.Animated.View,{key:"content",pointerEvents:"box-none",ref:function(n){return t._content=n},style:h},this.props.children(this._panResponder.panHandlers)):_.default.createElement(v.Animated.View,(0,o.default)({key:"content",pointerEvents:"box-none",ref:function(n){return t._content=n},style:h},this._panResponder.panHandlers),this.props.children)}},{key:"render",value:function(){return[this._renderBackdrop(),this._renderContent()]}},{key:"show",value:function(t){if(!t){var n=this.props.draggableRange.top;return this._triggerAnimation({toValue:n})}return'object'==typeof t?this._triggerAnimation(t):this._triggerAnimation({toValue:t})}},{key:"hide",value:function(){var t=this.props.draggableRange.bottom;this._triggerAnimation({toValue:t})}},{key:"scrollIntoView",value:function(t){var o,s,l,u,p,c,f,h=arguments;return n.default.async(function(_){for(;;)switch(_.prev=_.next){case 0:if(o=h.length>1&&void 0!==h[1]?h[1]:{},this._keyboardYPosition){_.next=3;break}return _.abrupt("return");case 3:return this._flick.stop(),_.next=6,n.default.awrap((0,R.default)(t));case 6:s=_.sent,l=s.y,u=o.keyboardExtraMargin||D.KEYBOARD_EXTRA_MARGIN,p=this._keyboardYPosition-u,l>p&&(this._lastPosition=this.props.animatedValue.__getValue(),c=l-p,f=this._lastPosition+c,v.Animated.timing(this.props.animatedValue,{toValue:f,duration:D.KEYBOARD_TRANSITION_DURATION,useNativeDriver:!0}).start());case 11:case"end":return _.stop()}},null,this,null,Promise)}}]),M})(_.default.PureComponent);S.propTypes={height:b.default.number,animatedValue:b.default.instanceOf(v.Animated.Value),draggableRange:b.default.shape({top:b.default.number,bottom:b.default.number}),snappingPoints:b.default.arrayOf(b.default.number),minimumVelocityThreshold:b.default.number,minimumDistanceThreshold:b.default.number,avoidKeyboard:b.default.bool,onBackButtonPress:b.default.func,onDragStart:b.default.func,onDragEnd:b.default.func,onMomentumDragStart:b.default.func,onMomentumDragEnd:b.default.func,onBottomReached:b.default.func,allowMomentum:b.default.bool,allowDragging:b.default.bool,showBackdrop:b.default.bool,backdropOpacity:b.default.number,friction:b.default.number,containerStyle:v.ViewPropTypes.style,backdropStyle:v.ViewPropTypes.style,children:b.default.oneOfType([b.default.element,b.default.func])},S.defaultProps={height:M,animatedValue:new v.Animated.Value(0),draggableRange:{top:M,bottom:0},snappingPoints:[],minimumVelocityThreshold:D.DEFAULT_MINIMUM_VELOCITY_THRESHOLD,minimumDistanceThreshold:D.DEFAULT_MINIMUM_DISTANCE_THRESHOLD,avoidKeyboard:!0,onBackButtonPress:null,onDragStart:function(){},onDragEnd:function(){},onMomentumDragStart:function(){},onMomentumDragEnd:function(){},allowMomentum:!0,allowDragging:!0,showBackdrop:!0,backdropOpacity:.75,friction:D.DEFAULT_FRICTION,onBottomReached:function(){return null}};var I=S;e.default=I},1002,[1,106,9,27,31,32,46,42,44,41,6,72,1003,10,1004,1005,1006,1008,1007,1009]); +__d(function(g,r,i,a,m,e,d){m.exports=function(n,t,o){return to?o:n:nt?t:n}},1003,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,n){var u,f,o,l=1/0,_=0,c=n.length-1;for(;_<=c&&((o=n[u=_+(c-_>>1)]-t)<0?_=u+1:o>0&&(c=u-1),(o=Math.abs(o))0&&n.push({date:c,chapters:l})}),F(n)},left:"magnify",theme:S,right:"reload",onPressRight:function(){return L((0,p.updateLibraryAction)())}}),c.default.createElement(l.FlatList,{contentContainerStyle:w.flatList,data:j?N:I,keyExtractor:function(t,n){return n.toString()},renderItem:function(t){var n=t.item;return c.default.createElement(l.FlatList,{ListHeaderComponent:c.default.createElement(l.Text,{style:{paddingHorizontal:16,textTransform:"uppercase",paddingVertical:8,color:S.textColorSecondary}},(0,C.default)(n.date).calendar(null,b.dateFormat)),data:n.chapters,keyExtractor:function(t){return t.updateId.toString()},renderItem:z})},ListFooterComponent:P&&c.default.createElement(l.ActivityIndicator,{size:"small",color:S.colorAccent}),ListEmptyComponent:!P&&c.default.createElement(s.default,{icon:"(\u02d8\uff65_\uff65\u02d8)",description:"No recent updates"}),refreshControl:c.default.createElement(l.RefreshControl,{refreshing:D,onRefresh:V,colors:["white"],progressBackgroundColor:S.colorAccent})}))};e.default=S;var w=l.StyleSheet.create({container:{flex:1},flatList:{flexGrow:1,paddingVertical:8}})},1011,[1,106,19,6,10,649,771,980,985,1012,1013,797,796,1014,1015]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Appbar=void 0;var o=t(r(d[1])),n=r(d[2]),l=r(d[3]);e.Appbar=function(t){var c=t.theme,p=t.dispatch;return o.default.createElement(n.Appbar.Header,{style:{backgroundColor:c.colorPrimary}},o.default.createElement(n.Appbar.Content,{title:"Updates",titleStyle:{color:c.textColorPrimary}}),o.default.createElement(n.Appbar.Action,{icon:"reload",onPress:function(){return p((0,l.updateLibraryAction)())}}))}},1012,[1,6,495,985]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),o=r(d[2]),n=t(r(d[3])),u=r(d[4]),c=function(t){var c=t.item,s=t.theme,p=t.onPress;return l.default.createElement(u.TouchableRipple,{style:f.updateCard,onPress:p,rippleColor:s.rippleColor,borderless:!0},l.default.createElement(l.default.Fragment,null,l.default.createElement(n.default,{source:{uri:c.novelCover},style:f.updateIcon}),l.default.createElement(o.View,{style:f.chapterDetails},l.default.createElement(o.Text,{style:[{color:s.textColorPrimary,fontSize:14},c.read&&{color:s.textColorHint}],numberOfLines:1},c.novelName),l.default.createElement(o.Text,{style:[{color:s.textColorPrimary,fontSize:12},c.read&&{color:s.textColorHint}],numberOfLines:1},c.chapterName))))};e.default=c;var f=o.StyleSheet.create({updateCard:{flexDirection:"row",alignItems:"center",paddingVertical:8,paddingHorizontal:16},updateIcon:{width:42,height:42,borderRadius:4},chapterDetails:{flex:1,marginLeft:16}})},1013,[1,6,10,979,495]); +__d(function(e,t,n,s,i,r,a){var o=t(a[0]);!(function(e,t){'object'==typeof r&&void 0!==i?i.exports=t():'function'==typeof define&&define.amd?define(t):e.moment=t()})(this,function(){'use strict';var e,n;function s(){return e.apply(null,arguments)}function r(e){return e instanceof Array||'[object Array]'===Object.prototype.toString.call(e)}function a(e){return null!=e&&'[object Object]'===Object.prototype.toString.call(e)}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(u(e,t))return!1;return!0}function h(e){return void 0===e}function d(e){return'number'==typeof e||'[object Number]'===Object.prototype.toString.call(e)}function c(e){return e instanceof Date||'[object Date]'===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?'+':'':'-')+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var W=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,C=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,U={},H={};function F(e,t,n,s){var i=s;'string'==typeof s&&(i=function(){return this[s]()}),e&&(H[e]=i),t&&(H[t[0]]=function(){return R(i.apply(this,arguments),t[1],t[2])}),n&&(H[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function L(e){var t,n,s,i=e.match(W);for(t=0,n=i.length;t=0&&C.test(e);)e=e.replace(C,s),C.lastIndex=0,n-=1;return e}var E={};function A(e,t){var n=e.toLowerCase();E[n]=E[n+'s']=E[t]=e}function I(e){return'string'==typeof e?E[e]||E[e.toLowerCase()]:void 0}function j(e){var t,n,s={};for(n in e)u(e,n)&&(t=I(n))&&(s[t]=e[n]);return s}var Z={};function z(e,t){Z[e]=t}function $(e){var t,n=[];for(t in e)u(e,t)&&n.push({unit:t,priority:Z[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}function q(e){return e%4==0&&e%100!=0||e%400==0}function B(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function J(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=B(t)),n}function Q(e,t){return function(n){return null!=n?(K(this,e,n),s.updateOffset(this,t),this):X(this,e)}}function X(e,t){return e.isValid()?e._d['get'+(e._isUTC?'UTC':'')+t]():NaN}function K(e,t,n){e.isValid()&&!isNaN(n)&&('FullYear'===t&&q(e.year())&&1===e.month()&&29===e.date()?(n=J(n),e._d['set'+(e._isUTC?'UTC':'')+t](n,e.month(),Ce(n,e.month()))):e._d['set'+(e._isUTC?'UTC':'')+t](n))}var ee,te=/\d/,ne=/\d\d/,se=/\d{3}/,ie=/\d{4}/,re=/[+-]?\d{6}/,ae=/\d\d?/,oe=/\d\d\d\d?/,ue=/\d\d\d\d\d\d?/,le=/\d{1,3}/,he=/\d{1,4}/,de=/[+-]?\d{1,6}/,ce=/\d+/,fe=/[+-]?\d+/,me=/Z|[+-]\d\d:?\d\d/gi,_e=/Z|[+-]\d\d(?::?\d\d)?/gi,ye=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function ge(e,t,n){ee[e]=T(t)?t:function(e,s){return e&&n?n:t}}function we(e,t){return u(ee,e)?ee[e](t._strict,t._locale):new RegExp(pe(e.replace('\\','').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function pe(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,'\\$&')}ee={};var ve={};function ke(e,t){var n,s=t;for('string'==typeof e&&(e=[e]),d(t)&&(s=function(e,n){n[t]=J(e)}),n=0;n68?1900:2e3)};var Ze=Q('FullYear',!0);function ze(e,t,n,s,i,r,a){var o;return e<100&&e>=0?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}function $e(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function qe(e,t,n){var s=7+t-n;return-((7+$e(e,0,s).getUTCDay()-t)%7)+s-1}function Be(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+qe(e,s,i);return o<=0?a=je(r=e-1)+o:o>je(e)?(r=e+1,a=o-je(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Je(e,t,n){var s,i,r=qe(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Qe(i=e.year()-1,t,n):a>Qe(e.year(),t,n)?(s=a-Qe(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Qe(e,t,n){var s=qe(e,t,n),i=qe(e+1,t,n);return(je(e)-s+i)/7}F('w',['ww',2],'wo','week'),F('W',['WW',2],'Wo','isoWeek'),A('week','w'),A('isoWeek','W'),z('week',5),z('isoWeek',5),ge('w',ae),ge('ww',ae,ne),ge('W',ae),ge('WW',ae,ne),Me(['w','ww','W','WW'],function(e,t,n,s){t[s.substr(0,1)]=J(e)});function Xe(e,t){return'string'!=typeof e?e:isNaN(e)?'number'==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function Ke(e,t){return'string'==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function et(e,t){return e.slice(t,7).concat(e.slice(0,t))}F('d',0,'do','day'),F('dd',0,0,function(e){return this.localeData().weekdaysMin(this,e)}),F('ddd',0,0,function(e){return this.localeData().weekdaysShort(this,e)}),F('dddd',0,0,function(e){return this.localeData().weekdays(this,e)}),F('e',0,0,'weekday'),F('E',0,0,'isoWeekday'),A('day','d'),A('weekday','e'),A('isoWeekday','E'),z('day',11),z('weekday',11),z('isoWeekday',11),ge('d',ae),ge('e',ae),ge('E',ae),ge('dd',function(e,t){return t.weekdaysMinRegex(e)}),ge('ddd',function(e,t){return t.weekdaysShortRegex(e)}),ge('dddd',function(e,t){return t.weekdaysRegex(e)}),Me(['dd','ddd','dddd'],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:y(n).invalidWeekday=e}),Me(['d','e','E'],function(e,t,n,s){t[s]=J(e)});var tt='Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),nt='Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),st='Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),it=ye,rt=ye,at=ye;function ot(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=_([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,'').toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,'').toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,'').toLocaleLowerCase();return n?'dddd'===t?-1!==(i=Se.call(this._weekdaysParse,a))?i:null:'ddd'===t?-1!==(i=Se.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Se.call(this._minWeekdaysParse,a))?i:null:'dddd'===t?-1!==(i=Se.call(this._weekdaysParse,a))?i:-1!==(i=Se.call(this._shortWeekdaysParse,a))?i:-1!==(i=Se.call(this._minWeekdaysParse,a))?i:null:'ddd'===t?-1!==(i=Se.call(this._shortWeekdaysParse,a))?i:-1!==(i=Se.call(this._weekdaysParse,a))?i:-1!==(i=Se.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Se.call(this._minWeekdaysParse,a))?i:-1!==(i=Se.call(this._weekdaysParse,a))?i:-1!==(i=Se.call(this._shortWeekdaysParse,a))?i:null}function ut(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=_([2e3,1]).day(t),s=pe(this.weekdaysMin(n,'')),i=pe(this.weekdaysShort(n,'')),r=pe(this.weekdays(n,'')),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);a.sort(e),o.sort(e),u.sort(e),l.sort(e),this._weekdaysRegex=new RegExp('^('+l.join('|')+')','i'),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp('^('+u.join('|')+')','i'),this._weekdaysShortStrictRegex=new RegExp('^('+o.join('|')+')','i'),this._weekdaysMinStrictRegex=new RegExp('^('+a.join('|')+')','i')}function lt(){return this.hours()%12||12}function ht(e,t){F(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function dt(e,t){return t._meridiemParse}F('H',['HH',2],0,'hour'),F('h',['hh',2],0,lt),F('k',['kk',2],0,function(){return this.hours()||24}),F('hmm',0,0,function(){return''+lt.apply(this)+R(this.minutes(),2)}),F('hmmss',0,0,function(){return''+lt.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),F('Hmm',0,0,function(){return''+this.hours()+R(this.minutes(),2)}),F('Hmmss',0,0,function(){return''+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),ht('a',!0),ht('A',!1),A('hour','h'),z('hour',13),ge('a',dt),ge('A',dt),ge('H',ae),ge('h',ae),ge('k',ae),ge('HH',ae,ne),ge('hh',ae,ne),ge('kk',ae,ne),ge('hmm',oe),ge('hmmss',ue),ge('Hmm',oe),ge('Hmmss',ue),ke(['H','HH'],xe),ke(['k','kk'],function(e,t,n){var s=J(e);t[xe]=24===s?0:s}),ke(['a','A'],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ke(['h','hh'],function(e,t,n){t[xe]=J(e),y(n).bigHour=!0}),ke('hmm',function(e,t,n){var s=e.length-2;t[xe]=J(e.substr(0,s)),t[Te]=J(e.substr(s)),y(n).bigHour=!0}),ke('hmmss',function(e,t,n){var s=e.length-4,i=e.length-2;t[xe]=J(e.substr(0,s)),t[Te]=J(e.substr(s,2)),t[Ne]=J(e.substr(i)),y(n).bigHour=!0}),ke('Hmm',function(e,t,n){var s=e.length-2;t[xe]=J(e.substr(0,s)),t[Te]=J(e.substr(s))}),ke('Hmmss',function(e,t,n){var s=e.length-4,i=e.length-2;t[xe]=J(e.substr(0,s)),t[Te]=J(e.substr(s,2)),t[Ne]=J(e.substr(i))});var ct=Q('Hours',!0);var ft,mt={calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},longDateFormat:{LTS:'h:mm:ss A',LT:'h:mm A',L:'MM/DD/YYYY',LL:'MMMM D, YYYY',LLL:'MMMM D, YYYY h:mm A',LLLL:'dddd, MMMM D, YYYY h:mm A'},invalidDate:'Invalid date',ordinal:'%d',dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:'in %s',past:'%s ago',s:'a few seconds',ss:'%d seconds',m:'a minute',mm:'%d minutes',h:'an hour',hh:'%d hours',d:'a day',dd:'%d days',w:'a week',ww:'%d weeks',M:'a month',MM:'%d months',y:'a year',yy:'%d years'},months:Ue,monthsShort:He,week:{dow:0,doy:6},weekdays:tt,weekdaysMin:st,weekdaysShort:nt,meridiemParse:/[ap]\.?m?\.?/i},_t={},yt={};function gt(e,t){var n,s=Math.min(e.length,t.length);for(n=0;n0;){if(s=vt(i.slice(0,t).join('-')))return s;if(n&&n.length>=t&>(i,n)>=t-1)break;t--}r++}return ft}function vt(e){var n=null;if(void 0===_t[e]&&void 0!==i&&i&&i.exports)try{n=ft._abbr,t('./locale/'+e),kt(n)}catch(t){_t[e]=null}return _t[e]}function kt(e,t){var n;return e&&((n=h(t)?Dt(e):Mt(e,t))?ft=n:'undefined'!=typeof console&&console.warn&&console.warn('Locale '+e+' not found. Did you forget to load it?')),ft._abbr}function Mt(e,t){if(null!==t){var n,s=mt;if(t.abbr=e,null!=_t[e])x('defineLocaleOverride',"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=_t[e]._config;else if(null!=t.parentLocale)if(null!=_t[t.parentLocale])s=_t[t.parentLocale]._config;else{if(null==(n=vt(t.parentLocale)))return yt[t.parentLocale]||(yt[t.parentLocale]=[]),yt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return _t[e]=new P(N(s,t)),yt[e]&&yt[e].forEach(function(e){Mt(e.name,e.config)}),kt(e),_t[e]}return delete _t[e],null}function Dt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ft;if(!r(e)){if(t=vt(e))return t;e=[e]}return pt(e)}function St(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[Oe]<0||n[Oe]>11?Oe:n[be]<1||n[be]>Ce(n[Ye],n[Oe])?be:n[xe]<0||n[xe]>24||24===n[xe]&&(0!==n[Te]||0!==n[Ne]||0!==n[Pe])?xe:n[Te]<0||n[Te]>59?Te:n[Ne]<0||n[Ne]>59?Ne:n[Pe]<0||n[Pe]>999?Pe:-1,y(e)._overflowDayOfYear&&(tbe)&&(t=be),y(e)._overflowWeeks&&-1===t&&(t=Re),y(e)._overflowWeekday&&-1===t&&(t=We),y(e).overflow=t),e}var Yt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ot=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,bt=/Z|[+-]\d\d(?::?\d\d)?/,xt=[['YYYYYY-MM-DD',/[+-]\d{6}-\d\d-\d\d/],['YYYY-MM-DD',/\d{4}-\d\d-\d\d/],['GGGG-[W]WW-E',/\d{4}-W\d\d-\d/],['GGGG-[W]WW',/\d{4}-W\d\d/,!1],['YYYY-DDD',/\d{4}-\d{3}/],['YYYY-MM',/\d{4}-\d\d/,!1],['YYYYYYMMDD',/[+-]\d{10}/],['YYYYMMDD',/\d{8}/],['GGGG[W]WWE',/\d{4}W\d{3}/],['GGGG[W]WW',/\d{4}W\d{2}/,!1],['YYYYDDD',/\d{7}/],['YYYYMM',/\d{6}/,!1],['YYYY',/\d{4}/,!1]],Tt=[['HH:mm:ss.SSSS',/\d\d:\d\d:\d\d\.\d+/],['HH:mm:ss,SSSS',/\d\d:\d\d:\d\d,\d+/],['HH:mm:ss',/\d\d:\d\d:\d\d/],['HH:mm',/\d\d:\d\d/],['HHmmss.SSSS',/\d\d\d\d\d\d\.\d+/],['HHmmss,SSSS',/\d\d\d\d\d\d,\d+/],['HHmmss',/\d\d\d\d\d\d/],['HHmm',/\d\d\d\d/],['HH',/\d\d/]],Nt=/^\/?Date\((-?\d+)/i,Pt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Rt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Wt(e){var t,n,s,i,r,a,o=e._i,u=Yt.exec(o)||Ot.exec(o);if(u){for(y(e).iso=!0,t=0,n=xt.length;tje(r)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=$e(r,0,e._dayOfYear),e._a[Oe]=n.getUTCMonth(),e._a[be]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[xe]&&0===e._a[Te]&&0===e._a[Ne]&&0===e._a[Pe]&&(e._nextDay=!0,e._a[xe]=0),e._d=(e._useUTC?$e:ze).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[xe]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(y(e).weekdayMismatch=!0)}}function At(e){var t,n,s,i,r,a,o,u,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,a=4,n=Vt(t.GG,e._a[Ye],Je(Jt(),1,4).year),s=Vt(t.W,1),((i=Vt(t.E,1))<1||i>7)&&(u=!0)):(r=e._locale._week.dow,a=e._locale._week.doy,l=Je(Jt(),r,a),n=Vt(t.gg,e._a[Ye],l.year),s=Vt(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r),s<1||s>Qe(n,r,a)?y(e)._overflowWeeks=!0:null!=u?y(e)._overflowWeekday=!0:(o=Be(n,s,i,r,a),e._a[Ye]=o.year,e._dayOfYear=o.dayOfYear)}function It(e){if(e._f!==s.ISO_8601)if(e._f!==s.RFC_2822){e._a=[],y(e).empty=!0;var t,n,i,r,a,o,u=''+e._i,l=u.length,h=0;for(i=G(e._f,e._locale).match(W)||[],t=0;t0&&y(e).unusedInput.push(a),u=u.slice(u.indexOf(n)+n.length),h+=n.length),H[r]?(n?y(e).empty=!1:y(e).unusedTokens.push(r),De(r,n,e)):e._strict&&!n&&y(e).unusedTokens.push(r);y(e).charsLeftOver=l-h,u.length>0&&y(e).unusedInput.push(u),e._a[xe]<=12&&!0===y(e).bigHour&&e._a[xe]>0&&(y(e).bigHour=void 0),y(e).parsedDateParts=e._a.slice(0),y(e).meridiem=e._meridiem,e._a[xe]=jt(e._locale,e._a[xe],e._meridiem),null!==(o=y(e).era)&&(e._a[Ye]=e._locale.erasConvertYear(o,e._a[Ye])),Et(e),St(e)}else Ft(e);else Wt(e)}function jt(e,t,n){var s;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}function Zt(e){var t,n,s,i,r,a,o=!1;if(0===e._f.length)return y(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis?this:e:w()});function Kt(e,t){var n,s;if(1===t.length&&r(t[0])&&(t=t[0]),!t.length)return Jt();for(n=t[0],s=1;s=0?new Date(e+400,t,n)-Cn:new Date(e,t,n).valueOf()}function Fn(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-Cn:Date.UTC(e,t,n)}function Ln(e,t){return t.erasAbbrRegex(e)}function Vn(){var e,t,n=[],s=[],i=[],r=[],a=this.eras();for(e=0,t=a.length;e(r=Qe(e,s,i))&&(t=r),An.call(this,e,t,n,s,i))}function An(e,t,n,s,i){var r=Be(e,t,n,s,i),a=$e(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}F('N',0,0,'eraAbbr'),F('NN',0,0,'eraAbbr'),F('NNN',0,0,'eraAbbr'),F('NNNN',0,0,'eraName'),F('NNNNN',0,0,'eraNarrow'),F('y',['y',1],'yo','eraYear'),F('y',['yy',2],0,'eraYear'),F('y',['yyy',3],0,'eraYear'),F('y',['yyyy',4],0,'eraYear'),ge('N',Ln),ge('NN',Ln),ge('NNN',Ln),ge('NNNN',function(e,t){return t.erasNameRegex(e)}),ge('NNNNN',function(e,t){return t.erasNarrowRegex(e)}),ke(['N','NN','NNN','NNNN','NNNNN'],function(e,t,n,s){var i=n._locale.erasParse(e,s,n._strict);i?y(n).era=i:y(n).invalidEra=e}),ge('y',ce),ge('yy',ce),ge('yyy',ce),ge('yyyy',ce),ge('yo',function(e,t){return t._eraYearOrdinalRegex||ce}),ke(['y','yy','yyy','yyyy'],Ye),ke(['yo'],function(e,t,n,s){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[Ye]=n._locale.eraYearOrdinalParse(e,i):t[Ye]=parseInt(e,10)}),F(0,['gg',2],0,function(){return this.weekYear()%100}),F(0,['GG',2],0,function(){return this.isoWeekYear()%100}),Gn('gggg','weekYear'),Gn('ggggg','weekYear'),Gn('GGGG','isoWeekYear'),Gn('GGGGG','isoWeekYear'),A('weekYear','gg'),A('isoWeekYear','GG'),z('weekYear',1),z('isoWeekYear',1),ge('G',fe),ge('g',fe),ge('GG',ae,ne),ge('gg',ae,ne),ge('GGGG',he,ie),ge('gggg',he,ie),ge('GGGGG',de,re),ge('ggggg',de,re),Me(['gggg','ggggg','GGGG','GGGGG'],function(e,t,n,s){t[s.substr(0,2)]=J(e)}),Me(['gg','GG'],function(e,t,n,i){t[i]=s.parseTwoDigitYear(e)}),F('Q',0,'Qo','quarter'),A('quarter','Q'),z('quarter',7),ge('Q',te),ke('Q',function(e,t){t[Oe]=3*(J(e)-1)}),F('D',['DD',2],'Do','date'),A('date','D'),z('date',9),ge('D',ae),ge('DD',ae,ne),ge('Do',function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ke(['D','DD'],be),ke('Do',function(e,t){t[be]=J(e.match(ae)[0])});var In=Q('Date',!0);F('DDD',['DDDD',3],'DDDo','dayOfYear'),A('dayOfYear','DDD'),z('dayOfYear',4),ge('DDD',le),ge('DDDD',se),ke(['DDD','DDDD'],function(e,t,n){n._dayOfYear=J(e)}),F('m',['mm',2],0,'minute'),A('minute','m'),z('minute',14),ge('m',ae),ge('mm',ae,ne),ke(['m','mm'],Te);var jn=Q('Minutes',!1);F('s',['ss',2],0,'second'),A('second','s'),z('second',15),ge('s',ae),ge('ss',ae,ne),ke(['s','ss'],Ne);var Zn,zn,$n=Q('Seconds',!1);for(F('S',0,0,function(){return~~(this.millisecond()/100)}),F(0,['SS',2],0,function(){return~~(this.millisecond()/10)}),F(0,['SSS',3],0,'millisecond'),F(0,['SSSS',4],0,function(){return 10*this.millisecond()}),F(0,['SSSSS',5],0,function(){return 100*this.millisecond()}),F(0,['SSSSSS',6],0,function(){return 1e3*this.millisecond()}),F(0,['SSSSSSS',7],0,function(){return 1e4*this.millisecond()}),F(0,['SSSSSSSS',8],0,function(){return 1e5*this.millisecond()}),F(0,['SSSSSSSSS',9],0,function(){return 1e6*this.millisecond()}),A('millisecond','ms'),z('millisecond',16),ge('S',le,te),ge('SS',le,ne),ge('SSS',le,se),Zn='SSSS';Zn.length<=9;Zn+='S')ge(Zn,ce);function qn(e,t){t[Pe]=J(1e3*('0.'+e))}for(Zn='S';Zn.length<=9;Zn+='S')ke(Zn,qn);zn=Q('Milliseconds',!1),F('z',0,0,'zoneAbbr'),F('zz',0,0,'zoneName');var Bn=M.prototype;function Jn(e){return e}Bn.add=kn,Bn.calendar=function(e,t){var n;1===arguments.length&&(arguments[0]?D(n=arguments[0])||c(n)||Dn(n)||d(n)||Yn(n)||Sn(n)||null===n||void 0===n?(e=arguments[0],t=void 0):On(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var i=e||Jt(),r=hn(i,this).startOf('day'),a=s.calendarFormat(this,r)||'sameElse',o=t&&(T(t[a])?t[a].call(this,i):t[a]);return this.format(o||this.localeData().calendar(a,this,Jt(i)))},Bn.clone=function(){return new M(this)},Bn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=hn(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=I(t)){case'year':r=bn(this,s)/12;break;case'month':r=bn(this,s);break;case'quarter':r=bn(this,s)/3;break;case'second':r=(this-s)/1e3;break;case'minute':r=(this-s)/6e4;break;case'hour':r=(this-s)/36e5;break;case'day':r=(this-s-i)/864e5;break;case'week':r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:B(r)},Bn.endOf=function(e){var t,n;if(void 0===(e=I(e))||'millisecond'===e||!this.isValid())return this;switch(n=this._isUTC?Fn:Hn,e){case'year':t=n(this.year()+1,0,1)-1;break;case'quarter':t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case'month':t=n(this.year(),this.month()+1,1)-1;break;case'week':t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case'isoWeek':t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case'day':case'date':t=n(this.year(),this.month(),this.date()+1)-1;break;case'hour':t=this._d.valueOf(),t+=Wn-Un(t+(this._isUTC?0:this.utcOffset()*Rn),Wn)-1;break;case'minute':t=this._d.valueOf(),t+=Rn-Un(t,Rn)-1;break;case'second':t=this._d.valueOf(),t+=Pn-Un(t,Pn)-1}return this._d.setTime(t),s.updateOffset(this,!0),this},Bn.format=function(e){e||(e=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var t=V(this,e);return this.localeData().postformat(t)},Bn.from=function(e,t){return this.isValid()&&(D(e)&&e.isValid()||Jt(e).isValid())?_n({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Bn.fromNow=function(e){return this.from(Jt(),e)},Bn.to=function(e,t){return this.isValid()&&(D(e)&&e.isValid()||Jt(e).isValid())?_n({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Bn.toNow=function(e){return this.to(Jt(),e)},Bn.get=function(e){return T(this[e=I(e)])?this[e]():this},Bn.invalidAt=function(){return y(this).overflow},Bn.isAfter=function(e,t){var n=D(e)?e:Jt(e);return!(!this.isValid()||!n.isValid())&&('millisecond'===(t=I(t)||'millisecond')?this.valueOf()>n.valueOf():n.valueOf()9999?V(n,t?'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]':'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace('Z',V(n,'Z')):V(n,t?'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]':'YYYY-MM-DD[T]HH:mm:ss.SSSZ')},Bn.inspect=function(){if(!this.isValid())return'moment.invalid(/* '+this._i+' */)';var e,t,n,s='moment',i='';return this.isLocal()||(s=0===this.utcOffset()?'moment.utc':'moment.parseZone',i='Z'),e='['+s+'("]',t=0<=this.year()&&this.year()<=9999?'YYYY':'YYYYYY',n=i+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},'undefined'!=typeof Symbol&&null!=Symbol.for&&(Bn[Symbol.for('nodejs.util.inspect.custom')]=function(){return'Moment<'+this.format()+'>'}),Bn.toJSON=function(){return this.isValid()?this.toISOString():null},Bn.toString=function(){return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')},Bn.unix=function(){return Math.floor(this.valueOf()/1e3)},Bn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Bn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Bn.eraName=function(){var e,t,n,s=this.localeData().eras();for(e=0,t=s.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Bn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Bn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Bn.isUtc=cn,Bn.isUTC=cn,Bn.zoneAbbr=function(){return this._isUTC?'UTC':''},Bn.zoneName=function(){return this._isUTC?'Coordinated Universal Time':''},Bn.dates=Y('dates accessor is deprecated. Use date instead.',In),Bn.months=Y('months accessor is deprecated. Use month instead',Ae),Bn.years=Y('years accessor is deprecated. Use year instead',Ze),Bn.zone=Y('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',function(e,t){return null!=e?('string'!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),Bn.isDSTShifted=Y('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',function(){if(!h(this._isDSTShifted))return this._isDSTShifted;var e,t={};return k(t,this),(t=$t(t))._a?(e=t._isUTC?_(t._a):Jt(t._a),this._isDSTShifted=this.isValid()&&an(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted});var Qn=P.prototype;function Xn(e,t,n,s){var i=Dt(),r=_().set(s,t);return i[n](r,e)}function Kn(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||'',null!=t)return Xn(e,t,n,'month');var s,i=[];for(s=0;s<12;s++)i[s]=Xn(e,s,n,'month');return i}function es(e,t,n,s){'boolean'==typeof e?(d(t)&&(n=t,t=void 0),t=t||''):(n=t=e,e=!1,d(t)&&(n=t,t=void 0),t=t||'');var i,r=Dt(),a=e?r._week.dow:0,o=[];if(null!=n)return Xn(t,(n+a)%7,s,'day');for(i=0;i<7;i++)o[i]=Xn(t,(i+a)%7,s,'day');return o}Qn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return T(s)?s.call(t,n):s},Qn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(W).map(function(e){return'MMMM'===e||'MM'===e||'DD'===e||'dddd'===e?e.slice(1):e}).join(''),this._longDateFormat[e])},Qn.invalidDate=function(){return this._invalidDate},Qn.ordinal=function(e){return this._ordinal.replace('%d',e)},Qn.preparse=Jn,Qn.postformat=Jn,Qn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return T(i)?i(e,t,n,s):i.replace(/%d/i,e)},Qn.pastFuture=function(e,t){var n=this._relativeTime[e>0?'future':'past'];return T(n)?n(t):n.replace(/%s/i,t)},Qn.set=function(e){var t,n;for(n in e)u(e,n)&&(T(t=e[n])?this[n]=t:this['_'+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+'|'+/\d{1,2}/.source)},Qn.eras=function(e,t){var n,i,r,a=this._eras||Dt('en')._eras;for(n=0,i=a.length;n=0)return u[s]},Qn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?s(e.since).year():s(e.since).year()+(t-e.offset)*n},Qn.erasAbbrRegex=function(e){return u(this,'_erasAbbrRegex')||Vn.call(this),e?this._erasAbbrRegex:this._erasRegex},Qn.erasNameRegex=function(e){return u(this,'_erasNameRegex')||Vn.call(this),e?this._erasNameRegex:this._erasRegex},Qn.erasNarrowRegex=function(e){return u(this,'_erasNarrowRegex')||Vn.call(this),e?this._erasNarrowRegex:this._erasRegex},Qn.months=function(e,t){return e?r(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Fe).test(t)?'format':'standalone'][e.month()]:r(this._months)?this._months:this._months.standalone},Qn.monthsShort=function(e,t){return e?r(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Fe.test(t)?'format':'standalone'][e.month()]:r(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Qn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return Ge.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=_([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp('^'+this.months(i,'').replace('.','')+'$','i'),this._shortMonthsParse[s]=new RegExp('^'+this.monthsShort(i,'').replace('.','')+'$','i')),n||this._monthsParse[s]||(r='^'+this.months(i,'')+'|^'+this.monthsShort(i,''),this._monthsParse[s]=new RegExp(r.replace('.',''),'i')),n&&'MMMM'===t&&this._longMonthsParse[s].test(e))return s;if(n&&'MMM'===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},Qn.monthsRegex=function(e){return this._monthsParseExact?(u(this,'_monthsRegex')||Ie.call(this),e?this._monthsStrictRegex:this._monthsRegex):(u(this,'_monthsRegex')||(this._monthsRegex=Ve),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},Qn.monthsShortRegex=function(e){return this._monthsParseExact?(u(this,'_monthsRegex')||Ie.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,'_monthsShortRegex')||(this._monthsShortRegex=Le),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},Qn.week=function(e){return Je(e,this._week.dow,this._week.doy).week},Qn.firstDayOfYear=function(){return this._week.doy},Qn.firstDayOfWeek=function(){return this._week.dow},Qn.weekdays=function(e,t){var n=r(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?'format':'standalone'];return!0===e?et(n,this._week.dow):e?n[e.day()]:n},Qn.weekdaysMin=function(e){return!0===e?et(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},Qn.weekdaysShort=function(e){return!0===e?et(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},Qn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return ot.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=_([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp('^'+this.weekdays(i,'').replace('.','\\.?')+'$','i'),this._shortWeekdaysParse[s]=new RegExp('^'+this.weekdaysShort(i,'').replace('.','\\.?')+'$','i'),this._minWeekdaysParse[s]=new RegExp('^'+this.weekdaysMin(i,'').replace('.','\\.?')+'$','i')),this._weekdaysParse[s]||(r='^'+this.weekdays(i,'')+'|^'+this.weekdaysShort(i,'')+'|^'+this.weekdaysMin(i,''),this._weekdaysParse[s]=new RegExp(r.replace('.',''),'i')),n&&'dddd'===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&'ddd'===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&'dd'===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},Qn.weekdaysRegex=function(e){return this._weekdaysParseExact?(u(this,'_weekdaysRegex')||ut.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,'_weekdaysRegex')||(this._weekdaysRegex=it),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},Qn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(u(this,'_weekdaysRegex')||ut.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,'_weekdaysShortRegex')||(this._weekdaysShortRegex=rt),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Qn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(u(this,'_weekdaysRegex')||ut.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,'_weekdaysMinRegex')||(this._weekdaysMinRegex=at),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Qn.isPM=function(e){return'p'===(e+'').toLowerCase().charAt(0)},Qn.meridiem=function(e,t,n){return e>11?n?'pm':'PM':n?'am':'AM'},kt('en',{eras:[{since:'0001-01-01',until:1/0,offset:1,name:'Anno Domini',narrow:'AD',abbr:'AD'},{since:'0000-12-31',until:-1/0,offset:1,name:'Before Christ',narrow:'BC',abbr:'BC'}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===J(e%100/10)?'th':1===t?'st':2===t?'nd':3===t?'rd':'th')}}),s.lang=Y('moment.lang is deprecated. Use moment.locale instead.',kt),s.langData=Y('moment.langData is deprecated. Use moment.localeData instead.',Dt);var ts=Math.abs;function ns(e,t,n,s){var i=_n(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function ss(e){return e<0?Math.floor(e):Math.ceil(e)}function is(e){return 4800*e/146097}function rs(e){return 146097*e/4800}function as(e){return function(){return this.as(e)}}var os=as('ms'),us=as('s'),ls=as('m'),hs=as('h'),ds=as('d'),cs=as('w'),fs=as('M'),ms=as('Q'),_s=as('y');function ys(e){return function(){return this.isValid()?this._data[e]:NaN}}var gs=ys('milliseconds'),ws=ys('seconds'),ps=ys('minutes'),vs=ys('hours'),ks=ys('days'),Ms=ys('months'),Ds=ys('years');var Ss=Math.round,Ys={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Os(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}function bs(e,t,n,s){var i=_n(e).abs(),r=Ss(i.as('s')),a=Ss(i.as('m')),o=Ss(i.as('h')),u=Ss(i.as('d')),l=Ss(i.as('M')),h=Ss(i.as('w')),d=Ss(i.as('y')),c=r<=n.ss&&['s',r]||r0,c[4]=s,Os.apply(null,c)}var xs=Math.abs;function Ts(e){return(e>0)-(e<0)||+e}function Ns(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,s,i,r,a,o,u=xs(this._milliseconds)/1e3,l=xs(this._days),h=xs(this._months),d=this.asSeconds();return d?(t=B((e=B(u/60))/60),u%=60,e%=60,n=B(h/12),h%=12,s=u?u.toFixed(3).replace(/\.?0+$/,''):'',i=d<0?'-':'',r=Ts(this._months)!==Ts(d)?'-':'',a=Ts(this._days)!==Ts(d)?'-':'',o=Ts(this._milliseconds)!==Ts(d)?'-':'',i+'P'+(n?r+n+'Y':'')+(h?r+h+'M':'')+(l?a+l+'D':'')+(t||e||u?'T':'')+(t?o+t+'H':'')+(e?o+e+'M':'')+(u?o+s+'S':'')):'P0D'}var Ps=nn.prototype;return Ps.isValid=function(){return this._isValid},Ps.abs=function(){var e=this._data;return this._milliseconds=ts(this._milliseconds),this._days=ts(this._days),this._months=ts(this._months),e.milliseconds=ts(e.milliseconds),e.seconds=ts(e.seconds),e.minutes=ts(e.minutes),e.hours=ts(e.hours),e.months=ts(e.months),e.years=ts(e.years),this},Ps.add=function(e,t){return ns(this,e,t,1)},Ps.subtract=function(e,t){return ns(this,e,t,-1)},Ps.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if('month'===(e=I(e))||'quarter'===e||'year'===e)switch(t=this._days+s/864e5,n=this._months+is(t),e){case'month':return n;case'quarter':return n/3;case'year':return n/12}else switch(t=this._days+Math.round(rs(this._months)),e){case'week':return t/7+s/6048e5;case'day':return t+s/864e5;case'hour':return 24*t+s/36e5;case'minute':return 1440*t+s/6e4;case'second':return 86400*t+s/1e3;case'millisecond':return Math.floor(864e5*t)+s;default:throw new Error('Unknown unit '+e)}},Ps.asMilliseconds=os,Ps.asSeconds=us,Ps.asMinutes=ls,Ps.asHours=hs,Ps.asDays=ds,Ps.asWeeks=cs,Ps.asMonths=fs,Ps.asQuarters=ms,Ps.asYears=_s,Ps.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*J(this._months/12):NaN},Ps._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*ss(rs(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=B(r/1e3),u.seconds=e%60,t=B(e/60),u.minutes=t%60,n=B(t/60),u.hours=n%24,o+=i=B(is(a+=B(n/24))),a-=ss(rs(i)),s=B(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},Ps.clone=function(){return _n(this)},Ps.get=function(e){return e=I(e),this.isValid()?this[e+'s']():NaN},Ps.milliseconds=gs,Ps.seconds=ws,Ps.minutes=ps,Ps.hours=vs,Ps.days=ks,Ps.weeks=function(){return B(this.days()/7)},Ps.months=Ms,Ps.years=Ds,Ps.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,s,i=!1,r=Ys;return'object'==typeof e&&(t=e,e=!1),'boolean'==typeof e&&(i=e),'object'==typeof t&&(r=o({},Ys,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),s=bs(this,!i,r,n=this.localeData()),i&&(s=n.pastFuture(+this,s)),n.postformat(s)},Ps.toISOString=Ns,Ps.toString=Ns,Ps.toJSON=Ns,Ps.locale=xn,Ps.localeData=Nn,Ps.toIsoString=Y('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',Ns),Ps.lang=Tn,F('X',0,0,'unix'),F('x',0,0,'valueOf'),ge('x',fe),ge('X',/[+-]?\d+(\.\d{1,3})?/),ke('X',function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),ke('x',function(e,t,n){n._d=new Date(J(e))}),s.version='2.29.1',e=Jt,s.fn=Bn,s.min=function(){return Kt('isBefore',[].slice.call(arguments,0))},s.max=function(){return Kt('isAfter',[].slice.call(arguments,0))},s.now=function(){return Date.now?Date.now():+new Date},s.utc=_,s.unix=function(e){return Jt(1e3*e)},s.months=function(e,t){return Kn(e,t,'months')},s.isDate=c,s.locale=kt,s.invalid=w,s.duration=_n,s.isMoment=D,s.weekdays=function(e,t,n){return es(e,t,n,'weekdays')},s.parseZone=function(){return Jt.apply(null,arguments).parseZone()},s.localeData=Dt,s.isDuration=sn,s.monthsShort=function(e,t){return Kn(e,t,'monthsShort')},s.weekdaysMin=function(e,t,n){return es(e,t,n,'weekdaysMin')},s.defineLocale=Mt,s.updateLocale=function(e,t){if(null!=t){var n,s,i=mt;null!=_t[e]&&null!=_t[e].parentLocale?_t[e].set(N(_t[e]._config,t)):(null!=(s=vt(e))&&(i=s._config),t=N(i,t),null==s&&(t.abbr=e),(n=new P(t)).parentLocale=_t[e],_t[e]=n),kt(e)}else null!=_t[e]&&(null!=_t[e].parentLocale?(_t[e]=_t[e].parentLocale,e===kt()&&kt(e)):null!=_t[e]&&delete _t[e]);return _t[e]},s.locales=function(){return O(_t)},s.weekdaysShort=function(e,t,n){return es(e,t,n,'weekdaysShort')},s.normalizeUnits=I,s.relativeTimeRounding=function(e){return void 0===e?Ss:'function'==typeof e&&(Ss=e,!0)},s.relativeTimeThreshold=function(e,t){return void 0!==Ys[e]&&(void 0===t?Ys[e]:(Ys[e]=t,'s'===e&&(Ys.ss=t-1),!0))},s.calendarFormat=function(e,t){var n=e.diff(t,'days',!0);return n<-6?'sameElse':n<-1?'lastWeek':n<0?'lastDay':n<1?'sameDay':n<2?'nextDay':n<7?'nextWeek':'sameElse'},s.prototype=Bn,s.HTML5_FMT={DATETIME_LOCAL:'YYYY-MM-DDTHH:mm',DATETIME_LOCAL_SECONDS:'YYYY-MM-DDTHH:mm:ss',DATETIME_LOCAL_MS:'YYYY-MM-DDTHH:mm:ss.SSS',DATE:'YYYY-MM-DD',TIME:'HH:mm',TIME_SECONDS:'HH:mm:ss',TIME_MS:'HH:mm:ss.SSS',WEEK:'GGGG-[W]WW',MONTH:'YYYY-MM'},s})},1014,[9]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.dateFormat=e.fonts=void 0;e.fonts=[{fontFamily:"",name:"Original"},{fontFamily:"arbutus-slab",name:"Arbutus Slab"},{fontFamily:"domine",name:"Domine"},{fontFamily:"lato",name:"Lato"},{fontFamily:"noto-sans",name:"Noto Sans"},{fontFamily:"open-sans",name:"Open Sans"},{fontFamily:"pt-serif",name:"PT Serif"}];e.dateFormat={sameDay:"[Today]",nextDay:"[Tomorrow]",nextWeek:"dddd",lastDay:"[Yesterday]",lastWeek:"[Last] dddd",sameElse:"DD/MM/YYYY"}},1015,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=b(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var f=c?Object.getOwnPropertyDescriptor(t,u):null;f&&(f.get||f.set)?Object.defineProperty(l,u,f):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[2])),l=r(d[3]),c=t(r(d[4])),u=r(d[5]),f=t(r(d[6])),s=r(d[7]),p=t(r(d[8])),y=r(d[9]),h=r(d[10]),v=r(d[11]),E=r(d[12]),S=r(d[13]);function b(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(b=function(t){return t?o:n})(t)}var C=function(t){var b=t.navigation,C=(0,E.useTheme)(),P=(0,u.useDispatch)(),A=(0,u.useSelector)(function(t){return t.historyReducer}),O=A.history,w=A.loading,x=(0,o.useState)(""),j=(0,n.default)(x,2),k=j[0],D=j[1],L=(0,o.useState)([]),_=(0,n.default)(L,2),H=_[0],T=_[1],M=(0,o.useState)(!1),F=(0,n.default)(M,2),z=F[0],I=F[1],R=function(){return I(!1)};(0,o.useEffect)(function(){P((0,s.getHistoryAction)())},[s.getHistoryAction]);var W=function(t){var n=t.item;return o.default.createElement(c.default,{dispatch:P,item:n,theme:C,navigation:b})};return o.default.createElement(h.ScreenContainer,{theme:C},o.default.createElement(v.Searchbar,{placeholder:"Search History",searchText:k,clearSearchbar:function(){return D("")},onChangeText:function(t){D(t);var n=[];""!==t&&O.map(function(o){var l=o.date,c=o.novels.filter(function(n){return n.novelName.toLowerCase().includes(t.toLowerCase())});c.length>0&&n.push({date:l,novels:c})}),T(n)},left:"magnify",theme:C,right:"trash-can-outline",onPressRight:function(){return I(!0)}}),o.default.createElement(l.FlatList,{contentContainerStyle:{flexGrow:1,paddingVertical:8,paddingHorizontal:16},data:k?H:O,keyExtractor:function(t){return t.toString()},renderItem:function(t){var n=t.item;return o.default.createElement(l.FlatList,{keyExtractor:function(t,n){return n.toString()},data:n.novels,renderItem:W,ListHeaderComponent:o.default.createElement(l.Text,{style:{textTransform:"uppercase",paddingVertical:8,color:C.textColorSecondary}},(0,p.default)(n.date).calendar(null,y.dateFormat))})},ListFooterComponent:w&&o.default.createElement(l.ActivityIndicator,{size:"small",color:C.colorAccent}),ListEmptyComponent:o.default.createElement(f.default,{icon:"(\u02d8\uff65_\uff65\u02d8)",description:"Nothing read recently"})}),o.default.createElement(S.Portal,null,o.default.createElement(S.Dialog,{visible:z,onDismiss:R,style:{borderRadius:6,backgroundColor:C.colorPrimary}},o.default.createElement(S.Dialog.Title,{style:{letterSpacing:0,fontSize:16,color:C.textColorPrimary}},"Are you sure? All history will be lost."),o.default.createElement(S.Dialog.Actions,null,o.default.createElement(S.Button,{uppercase:!1,theme:{colors:{primary:C.colorAccent}},onPress:R},"Cancel"),o.default.createElement(S.Button,{uppercase:!1,theme:{colors:{primary:C.colorAccent}},onPress:function(){P((0,s.clearAllHistoryAction)()),R()}},"Ok")))))};e.default=C;l.StyleSheet.create({})},1016,[1,19,6,10,1017,771,980,1018,1014,1015,1020,796,797,495]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),l=r(d[2]),n=r(d[3]),c=t(r(d[4])),s=(r(d[5]),r(d[6])),u=r(d[7]),f=r(d[8]),h=t(r(d[9])),y=function(t){var y=t.item,v=t.navigation,C=t.theme,x=t.dispatch;return o.default.createElement(n.TouchableRipple,{style:p.historyCard,rippleColor:C.rippleColor,borderless:!0,onPress:function(){v.navigate("Novel",y),x((0,s.setNovel)(y))}},o.default.createElement(o.default.Fragment,null,o.default.createElement(h.default,{source:{uri:y.novelCover},style:p.historyCover}),o.default.createElement(l.View,{style:p.historyText},o.default.createElement(l.View,{style:{flex:.9}},o.default.createElement(l.Text,{style:{color:C.textColorPrimary,fontWeight:"bold",fontSize:16},numberOfLines:1},y.novelName),o.default.createElement(l.Text,{style:{color:C.textColorSecondary,marginTop:2},numberOfLines:1},"Ch. "+(0,u.parseChapterNumber)(y.chapterName)+" - "+(0,c.default)(y.historyTimeRead).format("h:mm a").toUpperCase())),o.default.createElement(l.View,{style:{flexDirection:"row",alignItems:"center"}},o.default.createElement(n.IconButton,{icon:"delete-outline",size:22,color:C.textColorPrimary,style:{marginRight:0},onPress:function(){return x((0,f.deleteHistoryAction)(y.historyId))}}),o.default.createElement(n.IconButton,{icon:"play",size:24,color:C.textColorPrimary,style:{marginRight:0},onPress:function(){return v.navigate("Chapter",{chapterId:y.historyChapterId,chapterUrl:y.chapterUrl,sourceId:y.sourceId,novelUrl:y.novelUrl,novelId:y.novelId,chapterName:y.chapterName,novelName:y.novelName})}})))))};e.default=y;var p=l.StyleSheet.create({historyCard:{marginVertical:8,borderRadius:4,flexDirection:"row",alignItems:"center"},historyCover:{height:80,width:57,borderRadius:4},historyText:{marginLeft:15,flex:1,flexDirection:"row",justifyContent:"space-between"}})},1017,[1,6,10,495,1014,771,798,974,1018,979]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.clearAllHistoryAction=e.deleteHistoryAction=e.insertHistoryAction=e.getHistoryAction=void 0;var n=t(r(d[1])),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=r(d[5]),l=function(){return function(t){var c,u,l;return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:return t({type:o.LOAD_HISTORY}),f.next=3,n.default.awrap((0,s.getHistory)());case 3:c=f.sent,u=c.reduce(function(t,n){var o=n.historyTimeRead.split("-"),s=new Date(o[0],o[1]-1,o[2].substr(0,2)).toISOString();return t[s]||(t[s]=[]),t[s].push(n),t},{}),l=Object.keys(u).map(function(t){return{date:t,novels:u[t]}}),t({type:o.GET_HISTORY,payload:l});case 7:case"end":return f.stop()}},null,null,null,Promise)}};e.getHistoryAction=l;e.insertHistoryAction=function(t,o){return function(u){return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:return f.next=2,n.default.awrap((0,s.insertHistory)(t,o));case 2:u({type:c.SET_LAST_READ,payload:{novelId:t,chapterId:o}}),u(l());case 4:case"end":return f.stop()}},null,null,null,Promise)}};e.deleteHistoryAction=function(t){return function(o){return n.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:return c.next=2,n.default.awrap((0,s.deleteHistory)(t));case 2:console.log("Delete History Action Called"),o(l());case 4:case"end":return c.stop()}},null,null,null,Promise)}};e.clearAllHistoryAction=function(){return function(t){return n.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:return c.prev=0,c.next=3,n.default.awrap((0,s.deleteAllHistory)());case 3:(0,u.showToast)("History deleted"),t({type:o.CLEAR_HISTORY}),c.next=10;break;case 7:c.prev=7,c.t0=c.catch(0),(0,u.showToast)(c.t0.message);case 10:case"end":return c.stop()}},null,null,[[0,7]],Promise)}}},1018,[1,106,966,1019,935,842]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.deleteAllHistory=e.deleteHistory=e.insertHistory=e.getHistory=void 0;var n=t(r(d[1]));function o(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,s=new WeakMap;return(o=function(t){return t?s:n})(t)}var s=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var s=o(n);if(s&&s.has(t))return s.get(t);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=l?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(u,c,f):u[c]=t[c]}u.default=t,s&&s.set(t,u);return u})(r(d[2])).openDatabase("lnreader.db");e.getHistory=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(t,n){s.transaction(function(n){n.executeSql("\n SELECT history.*, chapters.*, novels.*\n FROM history \n JOIN chapters \n ON history.historyChapterId = chapters.chapterId\n JOIN novels\n ON history.historyNovelId = novels.novelId\n GROUP BY novels.novelId\n HAVING history.historyTimeRead = MAX(history.historyTimeRead)\n ORDER BY history.historyTimeRead DESC\n ",null,function(n,o){var s=o.rows._array;t(s)},function(t,n){return console.log("Error ",n)})})}));case 1:case"end":return t.stop()}},null,null,null,Promise)};e.insertHistory=function(t,o){return n.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:s.transaction(function(n){n.executeSql("INSERT OR REPLACE INTO history (historyNovelId, historyChapterId, historyTimeRead) VALUES (?, ?, (datetime('now','localtime')))",[t,o],function(t,n){},function(t,n){return console.log("Error ",n)}),n.executeSql("UPDATE novels SET unread = 0 WHERE novelId = ?",[t])});case 1:case"end":return n.stop()}},null,null,null,Promise)};e.deleteHistory=function(t){return n.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:s.transaction(function(n){n.executeSql("DELETE FROM history WHERE historyId = ?",[t],function(t,n){},function(t,n){return console.log("Error ",n)})});case 1:case"end":return n.stop()}},null,null,null,Promise)};e.deleteAllHistory=function(){return n.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:s.transaction(function(t){t.executeSql("DELETE FROM history; VACCUM;")});case 1:case"end":return t.stop()}},null,null,null,Promise)}},1019,[1,106,801]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Row=e.ScreenContainer=void 0;var n=t(r(d[1])),o=r(d[2]);e.ScreenContainer=function(t){var l=t.children,c=t.theme;return n.default.createElement(o.View,{style:{flex:1,backgroundColor:c.colorPrimaryDark}},l)};e.Row=function(t){var c=t.children,u=t.style;return n.default.createElement(o.View,{style:[l.row,u]},c)};var l=o.StyleSheet.create({row:{flexDirection:"row",alignItems:"center"}})},1020,[1,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=y(n);if(o&&o.has(t))return o.get(t);var c={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var f=l?Object.getOwnPropertyDescriptor(t,u):null;f&&(f.get||f.set)?Object.defineProperty(c,u,f):c[u]=t[u]}c.default=t,o&&o.set(t,c);return c})(r(d[2])),c=r(d[3]),l=r(d[4]),u=r(d[5]),f=r(d[6]),s=t(r(d[7])),p=r(d[8]),h=r(d[9]);function y(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(y=function(t){return t?o:n})(t)}var S=function(t){var y=t.navigation,S=(0,o.useState)(!1),x=(0,n.default)(S,2),E=x[0],b=x[1],C=(0,o.useState)(""),P=(0,n.default)(C,2),w=P[0],O=P[1],k=(0,u.useSelector)(function(t){return t.sourceReducer}),j=k.sources,A=k.search,I=k.loading,M=k.pinned,T=(0,l.useTheme)(),D=(0,u.useDispatch)(),L=function(t){return-1!==M.indexOf(t)};(0,o.useEffect)(function(){D((0,f.getSourcesAction)())},[f.getSourcesAction]);var _=function(){O("")},H=function(t){var n=t.item;return o.default.createElement(s.default,{item:n,isPinned:L(n.sourceId),theme:T})};return o.default.createElement(c.View,{style:[v.container,{backgroundColor:T.colorPrimaryDark}]},o.default.createElement(h.Searchbar,{theme:T,placeholder:"Search Source",left:"magnify",onPressLeft:_,searchText:w,onChangeText:function(t){O(t),D((0,f.searchSourcesAction)(t))},clearSearchbar:_,right:"book-search",onPressRight:function(){return y.navigate("GlobalSearch")},migrate:"swap-vertical-variant",onPressMigrate:function(){return y.navigate("Migration")}}),o.default.createElement(c.FlatList,{contentContainerStyle:{flexGrow:1},data:w?A:j,keyExtractor:function(t){return t.sourceId.toString()},renderItem:H,extraData:M,ListHeaderComponent:o.default.createElement(c.View,null,M.length>0&&o.default.createElement(c.FlatList,{contentContainerStyle:{paddingBottom:16},data:j.filter(function(t){return L(t.sourceId)}),keyExtractor:function(t){return t.sourceId.toString()},renderItem:H,extraData:M,ListHeaderComponent:o.default.createElement(c.Text,{style:{color:T.textColorSecondary,paddingHorizontal:16,paddingVertical:8}},"Pinned")}),o.default.createElement(c.Text,{style:{color:T.textColorSecondary,paddingHorizontal:16,paddingVertical:8}},"Sources")),ListEmptyComponent:I&&o.default.createElement(c.ActivityIndicator,{size:"small",color:T.colorAccent,style:{marginTop:16}}),refreshControl:o.default.createElement(c.RefreshControl,{refreshing:E,onRefresh:function(){(0,p.showToast)("Updating extension list"),b(!0),(0,f.getSourcesAction)(),b(!1)},colors:["white"],progressBackgroundColor:T.colorAccent})}))};e.default=S;var v=c.StyleSheet.create({container:{flex:1}})},1021,[1,19,6,10,797,771,1022,1023,842,796]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.pinSourceAction=e.searchSourcesAction=e.getSourcesAction=void 0;var t=n(r(d[1])),c=r(d[2]),o=r(d[3]),u=r(d[4]);e.getSourcesAction=function(){return function(n){var s;return t.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:return l.prev=0,l.next=3,t.default.awrap((0,o.fetchSources)());case 3:s=l.sent,n({type:c.GET_SOURCES,payload:s}),l.next=10;break;case 7:l.prev=7,l.t0=l.catch(0),(0,u.showToast)(l.t0.message);case 10:case"end":return l.stop()}},null,null,[[0,7]],Promise)}};e.searchSourcesAction=function(n){return function(o){var u;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:u=n.toLowerCase(),o({type:c.SEARCH_SOURCES,payload:u});case 2:case"end":return t.stop()}},null,null,null,Promise)}};e.pinSourceAction=function(n){return function(o){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:o({type:c.PIN_SOURCES,payload:n});case 1:case"end":return t.stop()}},null,null,null,Promise)}}},1022,[1,106,963,841,842]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),l=r(d[3]),c=r(d[4]),s=r(d[5]),u=r(d[6]),f=(t(r(d[7])),function(t){var f=t.item,p=t.theme,y=t.isPinned,E=f.sourceId,w=f.sourceName,S=f.sourceCover,C=f.sourceLanguage,I=f.status,v=(0,c.useNavigation)(),D=(0,s.useDispatch)(),h=function(){return v.navigate("Extension",{sourceId:f.sourceId,sourceName:f.sourceName,sourceUrl:f.sourceUrl})};return n.default.createElement(l.TouchableRipple,{style:x.extensionCard,onPress:h,rippleColor:p.rippleColor},n.default.createElement(n.default.Fragment,null,n.default.createElement(o.Image,{source:{uri:S},style:x.extensionIcon,resizeMode:"contain"}),n.default.createElement(o.View,{style:x.extensionDetails},n.default.createElement(o.View,null,n.default.createElement(o.Text,{style:{color:p.textColorPrimary,fontSize:14}},w),n.default.createElement(o.View,{style:{flexDirection:"row"}},n.default.createElement(o.Text,{style:{color:p.textColorSecondary,fontSize:12}},C),n.default.createElement(o.Text,{style:x.sourceStatus},0===I&&"\u2022 Down"))),n.default.createElement(o.View,{style:{flexDirection:"row",alignItems:"center"}},n.default.createElement(l.Button,{labelStyle:{letterSpacing:0},uppercase:!1,color:p.colorAccent,onPress:h},"Browse"),n.default.createElement(l.IconButton,{icon:y?"pin":"pin-outline",animated:!0,size:21,onPress:function(){return D((0,u.pinSourceAction)(E))},color:y?p.colorAccent:p.textColorSecondary,style:{margin:2}})))))});e.default=f;var x=o.StyleSheet.create({extensionCard:{flexDirection:"row",alignItems:"center",marginVertical:4,paddingVertical:8,paddingHorizontal:20},extensionIcon:{width:40,height:40,borderRadius:8},extensionDetails:{flex:1,flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginLeft:16},sourceStatus:{color:"#C14033",fontSize:12,marginLeft:5}})},1023,[1,6,10,495,649,771,1022,979]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),f=function(t){var f=t.navigation,s=(0,c.useTheme)();return n.default.createElement(n.default.Fragment,null,n.default.createElement(o.Appbar,{title:"More",style:{elevation:0}}),n.default.createElement(l.View,{style:{flex:1,backgroundColor:s.colorPrimaryDark}},n.default.createElement(l.View,{style:{overflow:"hidden",paddingBottom:4}},n.default.createElement(l.View,{style:{paddingTop:10,paddingBottom:25,alignItems:"center",backgroundColor:s.colorPrimary,elevation:4}},n.default.createElement(l.Image,{source:r(d[6]),style:{height:80,width:80,tintColor:s.textColorPrimary}}))),n.default.createElement(u.ListSection,null,n.default.createElement(u.ListItem,{title:"Settings",icon:"cog-outline",onPress:function(){return f.navigate("MoreStack",{screen:"SettingsStack"})},theme:s}),n.default.createElement(u.ListItem,{title:"About",icon:"information-outline",onPress:function(){return f.navigate("MoreStack",{screen:"About"})},theme:s}))))};e.default=f;l.StyleSheet.create({})},1024,[1,6,10,1025,1010,797,1026]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.SearchAppbar=e.Appbar=void 0;var n=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=f(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var s=c?Object.getOwnPropertyDescriptor(t,u):null;s&&(s.get||s.set)?Object.defineProperty(l,u,s):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[1])),o=r(d[2]),l=r(d[3]),c=t(r(d[4])),u=r(d[5]),s=r(d[6]);function f(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(f=function(t){return t?o:n})(t)}e.Appbar=function(t){var o=t.title,c=t.onBackAction,u=t.style,f=t.children,p=(0,s.useSelector)(function(t){return t.settingsReducer.theme});return n.default.createElement(l.Appbar.Header,{style:[{backgroundColor:p.colorPrimary},u]},c&&n.default.createElement(l.Appbar.BackAction,{onPress:c}),n.default.createElement(l.Appbar.Content,{title:o,titleStyle:{color:p.textColorPrimary}}),f)};e.SearchAppbar=function(t){var c=t.placeholder,f=t.getSearchResults,y=t.setSearchText,b=t.searchText,h=t.getNovels,x=t.setLoading,S=t.screen,C=t.openWebView,v=(0,n.useRef)(null),w=(0,u.useNavigation)(),E=(0,s.useSelector)(function(t){return t.settingsReducer.theme});return n.default.createElement(l.TouchableRipple,{borderless:!0,onPress:function(){return v.current.focus()},style:[p.searchAppbarContainer,{backgroundColor:E.searchBarColor}]},n.default.createElement(o.View,{style:{flex:1,flexDirection:"row",justifyContent:"space-between"}},n.default.createElement(o.View,{style:{flex:1,flexDirection:"row"}},"Library"===S?n.default.createElement(l.IconButton,{icon:"magnify",color:E.textColorSecondary,style:{marginLeft:0},size:23}):n.default.createElement(l.IconButton,{icon:"arrow-left",color:E.textColorSecondary,style:{marginLeft:0},size:23,onPress:function(){return w.goBack()}}),n.default.createElement(o.TextInput,{ref:v,style:{fontSize:16,color:E.textColorSecondary},placeholder:c,placeholderTextColor:E.textColorSecondary,onChangeText:function(t){y(t),"Library"===S&&f(t)},onSubmitEditing:function(){"Extension"===S&&f(b)},defaultValue:b})),""!==b&&n.default.createElement(l.IconButton,{icon:"close",color:E.textColorSecondary,style:{marginRight:0},size:23,onPress:function(){null==x||x(!0),h(),y("")}}),C&&n.default.createElement(l.IconButton,{icon:"earth",color:E.textColorSecondary,style:{marginRight:0},size:23,onPress:C})))};var p=o.StyleSheet.create({searchAppbarContainer:{marginTop:c.default.statusBarHeight+8,height:48,flexDirection:"row",alignItems:"center",paddingHorizontal:16,marginBottom:12,borderRadius:8,marginHorizontal:12,elevation:2}})},1025,[1,6,10,495,428,649,771]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/assets",width:300,height:300,scales:[1],hash:"6aa5199fac57f7b89d7d6a352198aab3",name:"logo",type:"png",fileHashes:["6aa5199fac57f7b89d7d6a352198aab3"]})},1026,[188]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),n=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=P(o);if(n&&n.has(t))return n.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var s=c?Object.getOwnPropertyDescriptor(t,u):null;s&&(s.get||s.set)?Object.defineProperty(l,u,s):l[u]=t[u]}l.default=t,n&&n.set(t,l);return l})(r(d[2])),l=r(d[3]),c=r(d[4]),u=r(d[5]),s=r(d[6]),f=r(d[7]),p=r(d[8]),h=t(r(d[9])),v=t(r(d[10])),C=t(r(d[11])),w=t(r(d[12])),y=(t(r(d[13])),r(d[14]));function P(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(P=function(t){return t?n:o})(t)}var A=function(t){var P=t.route,A=t.navigation,E=P.params,I=E.sourceId,S=E.novelUrl,k=E.novelName,x=E.followed,R=E.novelId,B=(0,f.useTheme)(),D=(0,u.useDispatch)(),T=(0,f.useNovel)(),O=T.novel,j=T.chapters,N=T.loading,M=T.updating,U=T.downloading,z=(0,n.useState)([]),H=(0,o.default)(z,2),_=H[0],F=H[1],V=(0,n.useState)(!1),W=(0,o.default)(V,2),L=W[0],Y=W[1],q=(0,n.useRef)(null),G=(0,n.useRef)(null),J=(0,n.useRef)(null),K=(0,f.usePreferences)(O.novelId),Q=K.sort,X=void 0===Q?"ORDER BY chapterId ASC":Q,Z=K.filter,$=void 0===Z?"":Z,ee=K.showChapterTitles,te=void 0!==ee&&ee,oe=(0,f.useContinueReading)(j,O.novelId),re=oe.lastReadChapter,ne=oe.position;(0,n.useEffect)(function(){D((0,s.getNovelAction)(x,I,S,R,X,$))},[s.getNovelAction]);var le=function(){D((0,s.updateNovelAction)(I,S,R,X,$)),(0,p.showToast)("Updated "+k)};return n.default.createElement(c.Provider,null,n.default.createElement(l.View,{style:[b.container,{backgroundColor:B.colorPrimaryDark}]},_.length>0?n.default.createElement(l.View,{style:{backgroundColor:B.colorPrimary,position:"absolute",zIndex:1,width:l.Dimensions.get("window").width,flexDirection:"row",alignItems:"center",paddingTop:l.StatusBar.currentHeight,paddingBottom:8}},n.default.createElement(c.Appbar.Action,{icon:"close",color:B.textColorPrimary,onPress:function(){F([])}}),n.default.createElement(c.Appbar.Content,{title:_.length,titleStyle:{color:B.textColorPrimary}}),n.default.createElement(c.Appbar.Action,{icon:"bookmark-outline",color:B.textColorPrimary,onPress:function(){D((0,s.bookmarkChapterAction)(_)),F([])}}),_.some(function(t){return 0===t.read})&&n.default.createElement(c.Appbar.Action,{icon:"check",color:B.textColorPrimary,onPress:function(){D((0,s.markChaptersRead)(_,O.novelId,X,$)),F([])}}),_.some(function(t){return 1===t.read})&&n.default.createElement(c.Appbar.Action,{icon:"check-outline",color:B.textColorPrimary,onPress:function(){D((0,s.markChapterUnreadAction)(_,O.novelId)),F([])}}),1===_.length&&n.default.createElement(c.Appbar.Action,{icon:"playlist-check",color:B.textColorPrimary,onPress:function(){D((0,s.markPreviousChaptersReadAction)(_[0].chapterId,_[0].novelId)),F([])}}),_.some(function(t){return 1===t.downloaded})&&n.default.createElement(c.Appbar.Action,{icon:"trash-can-outline",color:B.textColorPrimary,onPress:function(){D((0,s.deleteAllChaptersAction)(_)),F([])}}),_.some(function(t){return 0===t.downloaded})&&n.default.createElement(c.Appbar.Action,{icon:"download-outline",color:B.textColorPrimary,onPress:function(){D((0,s.downloadAllChaptersAction)(O.sourceId,O.novelUrl,_)),F([])}}),n.default.createElement(c.Appbar.Action,{icon:"select-all",color:B.textColorPrimary,onPress:function(){F(j)}})):n.default.createElement(l.View,{style:{position:"absolute",zIndex:1,height:l.StatusBar.currentHeight+54,width:"100%",flexDirection:"row",justifyContent:"space-between"}},n.default.createElement(c.IconButton,{icon:"arrow-left",color:"white",size:24,style:{marginTop:l.StatusBar.currentHeight+8},onPress:function(){return A.goBack()}}),n.default.createElement(y.Row,null,n.default.createElement(c.Menu,{visible:L,onDismiss:function(){return Y(!1)},anchor:n.default.createElement(c.IconButton,{icon:"download",color:"white",size:24,style:{marginTop:l.StatusBar.currentHeight+8},onPress:function(){return Y(!0)}}),contentStyle:{backgroundColor:B.menuColor}},n.default.createElement(c.Menu.Item,{title:"Download all",style:{backgroundColor:B.menuColor},titleStyle:{color:B.textColorPrimary},onPress:function(){return D((0,s.downloadAllChaptersAction)(O.sourceId,O.novelUrl,j))}}),n.default.createElement(c.Menu.Item,{title:"Delete downloads",style:{backgroundColor:B.menuColor},titleStyle:{color:B.textColorPrimary},onPress:function(){return D((0,s.deleteAllChaptersAction)(j))}})),n.default.createElement(c.IconButton,{icon:"share-variant",color:"white",size:21,style:{marginTop:l.StatusBar.currentHeight+8,marginRight:16},onPress:function(){return l.Share.share({message:O.sourceUrl})}}))),n.default.createElement(l.FlatList,{data:!N&&j,keyExtractor:function(t){return t.chapterId.toString()},removeClippedSubviews:!0,maxToRenderPerBatch:5,windowSize:15,initialNumToRender:7,renderItem:function(t){var o=t.item,l=t.index;return n.default.createElement(h.default,{theme:B,chapter:o,index:l,novelUrl:S,dispatch:D,sourceId:I,navigation:A,lastReadChapter:re,position:ne,downloading:U,selected:_,novelName:k,selected:_,setSelected:F,showChapterTitles:te,chapterActionsSheetRef:J})},ListHeaderComponent:n.default.createElement(v.default,{item:E,novel:O,theme:B,filter:$,loading:N,lastRead:re,dispatch:D,chapters:j,navigation:A,trackerSheetRef:G,chaptersSettingsSheetRef:q}),refreshControl:n.default.createElement(l.RefreshControl,{onRefresh:le,refreshing:M,colors:[B.textColorPrimary],progressBackgroundColor:B.colorPrimary})}),!N&&n.default.createElement(c.Portal,null,n.default.createElement(C.default,{novelUrl:S,bottomSheetRef:q,dispatch:D,sortAndFilterChapters:s.sortAndFilterChapters,novelId:O.novelId,sort:X,theme:B,filter:$,showChapterTitles:te}),n.default.createElement(w.default,{bottomSheetRef:G,novelId:O.novelId,novelName:O.novelName,theme:B}))))};e.default=A;var b=l.StyleSheet.create({container:{flex:1},rowBack:{alignItems:"center",flex:1,flexDirection:"row",justifyContent:"space-between"}})},1027,[1,19,6,10,495,771,798,797,842,1028,1029,1086,1089,1110,1020]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var f=c?Object.getOwnPropertyDescriptor(t,u):null;f&&(f.get||f.set)?Object.defineProperty(l,u,f):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),c=r(d[4]),u=r(d[5]),f=r(d[6]),p=r(d[7]);function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}var h=function(t){var s=t.novelUrl,h=t.novelName,C=t.chapter,I=t.sourceId,v=t.dispatch,b=t.theme,w=t.navigation,x=t.downloading,E=t.index,P=t.position,O=t.selected,D=t.setSelected,N=t.showChapterTitles,k=(t.chapterActionsSheetRef,(0,l.useState)(!1)),S=(0,o.default)(k,2),j=S[0],z=S[1],L=function(){return z(!0)},M=function(){return z(!1)},H=function(t){return O.some(function(n){return n.chapterId===t})};return l.default.createElement(u.TouchableRipple,{style:[y.chapterCardContainer,H(C.chapterId)&&{backgroundColor:b.rippleColor}],onPress:function(){0===O.length?w.navigate("Chapter",{sourceId:I,novelUrl:s,novelId:C.novelId,chapterId:C.chapterId,chapterUrl:C.chapterUrl,chapterName:C.chapterName,novelName:h}):H(C.chapterId)?D(function(t){return t.filter(function(t){return t.chapterId!==C.chapterId})}):D(function(t){return[].concat((0,n.default)(t),[C])})},onLongPress:function(){H(C.chapterId)?D(function(t){return t.filter(function(t){return t.chapterId!==C.chapterId})}):D(function(t){return[].concat((0,n.default)(t),[C])})},rippleColor:b.rippleColor},l.default.createElement(l.default.Fragment,null,l.default.createElement(c.View,null,l.default.createElement(c.View,{style:{flexDirection:"row",alignItems:"center"}},(function(){if(C.bookmark)return l.default.createElement(u.IconButton,{icon:"bookmark",color:b.colorAccent,size:18,style:{marginLeft:2}})})(),l.default.createElement(c.View,null,l.default.createElement(c.Text,{style:[{color:b.textColorPrimary},C.read&&{color:b.textColorHint}],numberOfLines:1},N?(0,p.parseChapterNumber)(C.chapterName)?"Chapter "+(0,p.parseChapterNumber)(C.chapterName):"Chapter "+E:C.chapterName.substring(0,50)),l.default.createElement(c.View,{style:{flexDirection:"row",marginTop:5}},C.releaseDate&&l.default.createElement(c.Text,{style:[{color:b.textColorSecondary,fontSize:12},C.read&&{color:b.textColorHint}],numberOfLines:1},C.releaseDate),P&&!C.read&&P[C.chapterId]&&P[C.chapterId].percentage<100&&P[C.chapterId].percentage>0&&l.default.createElement(c.Text,{style:[{color:b.textColorHint,fontSize:12,marginLeft:0},C.releaseDate&&{marginLeft:5}],numberOfLines:1},C.releaseDate&&"\u2022 ","Progress "+P[C.chapterId].percentage+"%"))))),l.default.createElement(c.View,null,-1!==x.indexOf(C.chapterId)?l.default.createElement(c.ActivityIndicator,{color:b.textColorHint,size:25,style:{margin:3.5,padding:5}}):1===C.downloaded?l.default.createElement(u.Menu,{visible:j,onDismiss:M,anchor:l.default.createElement(u.IconButton,{icon:"check-circle",animated:!0,color:b.textColorPrimary,size:25,onPress:L,style:{margin:2}}),contentStyle:{backgroundColor:b.menuColor}},l.default.createElement(u.Menu.Item,{onPress:function(){return v((0,f.deleteChapterAction)(C.chapterId,C.chapterName))},title:"Delete",titleStyle:{color:b.textColorPrimary}})):l.default.createElement(u.IconButton,{icon:"arrow-down-circle-outline",animated:!0,color:b.textColorHint,size:25,onPress:function(){return v((0,f.downloadChapterAction)(I,s,C.chapterUrl,C.chapterName,C.chapterId))},style:{margin:2}}))))};e.default=h;var y=c.StyleSheet.create({chapterCardContainer:{paddingHorizontal:15,paddingVertical:7,flexDirection:"row",justifyContent:"space-between",alignItems:"center"}})},1028,[1,27,19,6,10,495,798,974]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=r(d[2]),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var l=E(n);if(l&&l.has(t))return l.get(t);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in t)if("default"!==c&&Object.prototype.hasOwnProperty.call(t,c)){var f=u?Object.getOwnPropertyDescriptor(t,c):null;f&&(f.get||f.set)?Object.defineProperty(o,c,f):o[c]=t[c]}o.default=t,l&&l.set(t,o);return o})(r(d[3])),u=r(d[4]),c=r(d[5]),f=r(d[6]),s=r(d[7]),v=r(d[8]),p=t(r(d[9])),h=t(r(d[10])),y=r(d[11]);function E(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,l=new WeakMap;return(E=function(t){return t?l:n})(t)}var w=function(t){var E=t.item,w=t.novel,b=t.theme,N=t.filter,S=t.loading,P=t.dispatch,x=t.chapters,I=t.lastRead,T=t.navigation,j=t.trackerSheetRef,k=t.chaptersSettingsSheetRef,z=(0,f.useTrackingStatus)(),O=z.tracker,M=z.trackedNovels,R=!1;return S||(R=M.find(function(t){return t.novelId===w.novelId})),n.default.createElement(l.View,null,n.default.createElement(s.CoverImage,{source:{uri:E.novelCover},theme:b},n.default.createElement(s.NovelInfoContainer,null,n.default.createElement(s.NovelThumbnail,{source:{uri:E.novelCover}}),n.default.createElement(l.View,{style:C.novelDetails},n.default.createElement(s.NovelTitle,{theme:b,onPress:function(){return T.navigate("GlobalSearch",{novelName:E.novelName})},onLongPress:function(){l.Clipboard.setString(E.novelName),(0,y.showToast)("Copied to clipboard: "+E.novelName)}},E.novelName),!S&&n.default.createElement(n.default.Fragment,null,n.default.createElement(s.NovelAuthor,{theme:b},w.author),n.default.createElement(s.NovelInfo,{theme:b},w.status),n.default.createElement(s.NovelInfo,{theme:b},w.source))))),!S&&n.default.createElement(n.default.Fragment,null,n.default.createElement(v.Row,{style:{justifyContent:"space-around",paddingHorizontal:16,flex:1}},n.default.createElement(s.FollowButton,{theme:b,followed:w.followed,onPress:function(){return P((0,c.followNovelAction)(w))}}),O&&n.default.createElement(s.TrackerButton,{theme:b,isTracked:R,onPress:function(){return j.current.show()}}),n.default.createElement(l.View,{style:{alignItems:"center",flex:1}},n.default.createElement(u.IconButton,{icon:"swap-vertical-variant",color:b.textColorSecondary,size:24,style:{margin:0},onPress:function(){return T.navigate("MigrateNovel",{sourceId:w.sourceId,novelName:w.novelName})}}),n.default.createElement(l.Text,{style:{fontSize:12,color:b.textColorSecondary}},"Migrate")),n.default.createElement(l.View,{style:{alignItems:"center",flex:1}},n.default.createElement(u.IconButton,{icon:"earth",color:b.textColorSecondary,size:24,style:{margin:0},onPress:function(){return o.openBrowserAsync(w.sourceUrl)}}),n.default.createElement(l.Text,{style:{fontSize:12,color:b.textColorSecondary}},"WebView"))),n.default.createElement(p.default,{summary:w.novelSummary,followed:w.followed,theme:b}),n.default.createElement(s.NovelGenres,{theme:b,genre:w.genre}),n.default.createElement(h.default,{novel:w,chapters:x,navigation:T,theme:b,lastRead:I}),n.default.createElement(u.TouchableRipple,{style:C.bottomsheet,onPress:function(){return k.current.show()},rippleColor:b.rippleColor},n.default.createElement(n.default.Fragment,null,n.default.createElement(l.Text,{style:[{color:b.textColorPrimary},C.chapters]},x.length+" Chapters"),n.default.createElement(u.IconButton,{icon:"filter-variant",color:N?b.filterColor:b.textColorPrimary,size:24})))))};e.default=w;var C=l.StyleSheet.create({novelDetails:{flex:1,paddingHorizontal:16,paddingTop:8},chapters:{paddingHorizontal:16,paddingVertical:4,fontSize:16,fontWeight:"bold"},bottomsheet:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingRight:12}})},1029,[1,6,10,1030,495,798,797,1033,1020,1084,1085,842]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getCustomTabsSupportingBrowsersAsync=function(){return t.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(o.default.getCustomTabsSupportingBrowsersAsync){n.next=2;break}throw new s.UnavailabilityError('WebBrowser','getCustomTabsSupportingBrowsersAsync');case 2:if('android'===u.Platform.OS){n.next=6;break}return n.abrupt("return",c);case 6:return n.next=8,t.default.awrap(o.default.getCustomTabsSupportingBrowsersAsync());case 8:return n.abrupt("return",n.sent);case 9:case"end":return n.stop()}},null,null,null,Promise)},e.warmUpAsync=function(n){return t.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(o.default.warmUpAsync){l.next=2;break}throw new s.UnavailabilityError('WebBrowser','warmUpAsync');case 2:if('android'===u.Platform.OS){l.next=6;break}return l.abrupt("return",{});case 6:return l.next=8,t.default.awrap(o.default.warmUpAsync(n));case 8:return l.abrupt("return",l.sent);case 9:case"end":return l.stop()}},null,null,null,Promise)},e.mayInitWithUrlAsync=function(n,l){return t.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:if(o.default.mayInitWithUrlAsync){c.next=2;break}throw new s.UnavailabilityError('WebBrowser','mayInitWithUrlAsync');case 2:if('android'===u.Platform.OS){c.next=6;break}return c.abrupt("return",{});case 6:return c.next=8,t.default.awrap(o.default.mayInitWithUrlAsync(n,l));case 8:return c.abrupt("return",c.sent);case 9:case"end":return c.stop()}},null,null,null,Promise)},e.coolDownAsync=function(n){return t.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if(o.default.coolDownAsync){l.next=2;break}throw new s.UnavailabilityError('WebBrowser','coolDownAsync');case 2:if('android'===u.Platform.OS){l.next=6;break}return l.abrupt("return",{});case 6:return l.next=8,t.default.awrap(o.default.coolDownAsync(n));case 8:return l.abrupt("return",l.sent);case 9:case"end":return l.stop()}},null,null,null,Promise)},e.openBrowserAsync=p,e.dismissBrowser=function(){if(!o.default.dismissBrowser)throw new s.UnavailabilityError('WebBrowser','dismissBrowser');o.default.dismissBrowser()},e.openAuthSessionAsync=function(n,l){var c,f=arguments;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if(c=f.length>2&&void 0!==f[2]?f[2]:{},!w()){t.next=9;break}if(o.default.openAuthSessionAsync){t.next=4;break}throw new s.UnavailabilityError('WebBrowser','openAuthSessionAsync');case 4:if('web'!==u.Platform.OS){t.next=6;break}return t.abrupt("return",o.default.openAuthSessionAsync(n,l,c));case 6:return t.abrupt("return",o.default.openAuthSessionAsync(n,l));case 9:return t.abrupt("return",B(n,l,c));case 10:case"end":return t.stop()}},null,null,null,Promise)},e.dismissAuthSession=function(){if(w()){if(!o.default.dismissAuthSession)throw new s.UnavailabilityError('WebBrowser','dismissAuthSession');o.default.dismissAuthSession()}else{if(!o.default.dismissBrowser)throw new s.UnavailabilityError('WebBrowser','dismissAuthSession');o.default.dismissBrowser()}},e.maybeCompleteAuthSession=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(o.default.maybeCompleteAuthSession)return o.default.maybeCompleteAuthSession(n);return{type:'failed',message:'Not supported on this platform'}},Object.defineProperty(e,"WebBrowserResultType",{enumerable:!0,get:function(){return l.WebBrowserResultType}});var t=n(r(d[1])),s=r(d[2]),u=r(d[3]),o=n(r(d[4])),l=r(d[5]),c={defaultBrowserPackage:void 0,preferredBrowserPackage:void 0,browserPackages:[],servicePackages:[]};var f=!1;function p(n){var u,c,p=arguments;return t.default.async(function(w){for(;;)switch(w.prev=w.next){case 0:if(u=p.length>1&&void 0!==p[1]?p[1]:{},o.default.openBrowserAsync){w.next=3;break}throw new s.UnavailabilityError('WebBrowser','openBrowserAsync');case 3:if(!f){w.next=6;break}return w.abrupt("return",{type:l.WebBrowserResultType.LOCKED});case 6:return f=!0,w.prev=7,w.next=10,t.default.awrap(o.default.openBrowserAsync(n,u));case 10:c=w.sent;case 11:return w.prev=11,f=!1,w.finish(11);case 14:return w.abrupt("return",c);case 15:case"end":return w.stop()}},null,null,[[7,,11,14]],Promise)}function w(){return'android'!==u.Platform.OS&&('web'===u.Platform.OS||parseInt(String(u.Platform.Version),10)>=11)}var b=null,y=null,h=null!==u.AppState.currentState;function v(n){h?'active'===n&&y&&y():h=!0}function A(n){var s,o,c,f,w=arguments;return t.default.async(function(b){for(;;)switch(b.prev=b.next){case 0:return s=w.length>1&&void 0!==w[1]?w[1]:{},o=new Promise(function(n){y=n,u.AppState.addEventListener('change',v)}),c={type:l.WebBrowserResultType.CANCEL},b.next=5,t.default.awrap(p(n,s));case 5:if(f=b.sent,'opened'!==f.type){b.next=11;break}return b.next=10,t.default.awrap(o);case 10:c={type:l.WebBrowserResultType.DISMISS};case 11:return u.AppState.removeEventListener('change',v),y=null,b.abrupt("return",c);case 14:case"end":return b.stop()}},null,null,null,Promise)}function B(n,s){var l,c=arguments;return t.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:if(l=c.length>2&&void 0!==c[2]?c[2]:{},!b){f.next=3;break}throw new Error("The WebBrowser's auth session is in an invalid state with a redirect handler set when it should not be");case 3:if(!y){f.next=5;break}throw new Error("WebBrowser is already open, only one can be open at a time");case 5:if(f.prev=5,'android'!==u.Platform.OS){f.next=12;break}return f.next=9,t.default.awrap(Promise.race([A(n,l),S(s)]));case 9:return f.abrupt("return",f.sent);case 12:return f.next=14,t.default.awrap(Promise.race([p(n,l),S(s)]));case 14:return f.abrupt("return",f.sent);case 15:return f.prev=15,o.default.dismissBrowser&&o.default.dismissBrowser(),x(),f.finish(15);case 19:case"end":return f.stop()}},null,null,[[5,,15,19]],Promise)}function x(){if(!b)throw new Error("The WebBrowser auth session is in an invalid state with no redirect handler when one should be set");u.Linking.removeEventListener('url',b),b=null}function S(n){return new Promise(function(t){b=function(s){s.url.startsWith(n)&&t({url:s.url,type:'success'})},u.Linking.addEventListener('url',b)})}},1030,[1,106,429,10,1031,1032]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).NativeModulesProxy.ExpoWebBrowser||{};e.default=o},1031,[429]); +__d(function(g,r,i,a,m,e,d){var o;Object.defineProperty(e,"__esModule",{value:!0}),e.WebBrowserResultType=void 0,e.WebBrowserResultType=o,(function(o){o.CANCEL="cancel",o.DISMISS="dismiss",o.OPENED="opened",o.LOCKED="locked"})(o||(e.WebBrowserResultType=o={}))},1032,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.NovelGenres=e.TrackerButton=e.FollowButton=e.NovelInfo=e.NovelAuthor=e.NovelTitle=e.NovelThumbnail=e.CoverImage=e.NovelInfoContainer=void 0;var o=t(r(d[1])),n=r(d[2]),l=r(d[3]),c=(r(d[4]),r(d[5])),u=t(r(d[6])),f=t(r(d[7]));e.NovelInfoContainer=function(t){var l=t.children;return o.default.createElement(n.View,{style:v.novelInfoContainer},l)};e.CoverImage=function(t){var n=t.children,l=t.source,s=t.theme,h=(0,u.default)({colorStops:{0:{color:"rgba(0,0,0,0.2)"},1:{color:s.colorPrimaryDark}}}),y=h.colors,C=h.locations;return o.default.createElement(f.default,{source:l,style:v.coverImage},o.default.createElement(c.LinearGradient,{colors:y,locations:C,style:v.linearGradient},n))};e.NovelThumbnail=function(t){var n=t.source;return o.default.createElement(f.default,{source:n,style:v.novelThumbnail})};e.NovelTitle=function(t){var l=t.theme,c=t.children,u=t.onLongPress,f=t.onPress;return o.default.createElement(n.Text,{onLongPress:u,onPress:f,numberOfLines:2,style:[v.novelTitle,{color:l.textColorPrimary}]},c)};e.NovelAuthor=function(t){var l=t.theme,c=t.children;return o.default.createElement(n.Text,{style:[v.novelAuthor,{color:l.textColorSecondary}],numberOfLines:2},c)};e.NovelInfo=function(t){var l=t.theme,c=t.children;return o.default.createElement(n.Text,{style:[v.novelInfo,{color:l.textColorSecondary}],numberOfLines:1},c)};e.FollowButton=function(t){var c=t.theme,u=t.onPress,f=t.followed;return o.default.createElement(n.View,{style:{alignItems:"center",flex:1}},o.default.createElement(l.IconButton,{icon:f?"heart":"heart-outline",color:f?c.colorAccent:c.textColorSecondary,size:24,style:{margin:0},onPress:u}),o.default.createElement(n.Text,{style:{fontSize:12,color:f?c.colorAccent:c.textColorSecondary}},f?"In Library":"Add to library"))};e.TrackerButton=function(t){var c=t.theme,u=t.isTracked,f=t.onPress;return o.default.createElement(n.View,{style:{alignItems:"center",flex:1}},o.default.createElement(l.IconButton,{icon:u?"check":"sync",color:u?c.colorAccent:c.textColorSecondary,size:24,style:{margin:0},onPress:f}),o.default.createElement(n.Text,{style:{fontSize:12,color:u?c.colorAccent:c.textColorSecondary}},u?"Tracked":"Tracking"))};var s=function(t){var l=t.children,c=t.theme;return o.default.createElement(n.Text,{style:[v.genreChip,{color:c.colorAccent,borderColor:c.colorAccent,backgroundColor:c.colorPrimary}]},l)};e.NovelGenres=function(t){var l=t.theme,c=t.genre.split(",");return o.default.createElement(n.FlatList,{contentContainerStyle:v.novelGenres,horizontal:!0,data:c,keyExtractor:function(t){return t},renderItem:function(t){var n=t.item;return o.default.createElement(s,{theme:l},n)},showsHorizontalScrollIndicator:!1})};var v=n.StyleSheet.create({novelInfoContainer:{flex:1,flexDirection:"row",margin:16,paddingTop:90},coverImage:{height:285},linearGradient:{height:286},novelThumbnail:{height:160,width:110,margin:3.2,borderRadius:6},novelTitle:{fontWeight:"bold",fontSize:18},novelAuthor:{marginVertical:3,fontSize:14,fontWeight:"bold"},novelInfo:{marginVertical:3,fontSize:14},followButton:{height:32,justifyContent:"center",alignItems:"center",marginLeft:16,paddingLeft:4,borderWidth:0,elevation:0},novelGenres:{paddingHorizontal:16,paddingBottom:16},genreChip:{flex:1,justifyContent:"center",paddingVertical:2,paddingHorizontal:10,marginHorizontal:2,fontSize:13,borderWidth:1,borderRadius:50}})},1033,[1,6,10,495,1034,976,1082,979]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AntDesign",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"Entypo",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"EvilIcons",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Feather",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"Fontisto",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"FontAwesome",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"FontAwesome5",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"Foundation",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"Ionicons",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"MaterialCommunityIcons",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"MaterialIcons",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(e,"Octicons",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"SimpleLineIcons",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(e,"Zocial",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"createMultiStyleIconSet",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(e,"createIconSet",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(e,"createIconSetFromFontello",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(e,"createIconSetFromIcoMoon",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(e,"createMu",{enumerable:!0,get:function(){return S.default}});var t=_(r(d[0])),n=_(r(d[1])),u=_(r(d[2])),o=_(r(d[3])),f=_(r(d[4])),c=_(r(d[5])),l=_(r(d[6])),b=_(r(d[7])),y=_(r(d[8])),p=_(r(d[9])),O=_(r(d[10])),j=_(r(d[11])),P=_(r(d[12])),s=_(r(d[13])),I=_(r(d[14])),F=_(r(d[15])),M=_(r(d[16])),S=_(r(d[17]));function _(t){return t&&t.__esModule?t:{default:t}}},1034,[1035,1038,1041,1044,1047,1050,1053,1061,1064,517,1067,1070,1073,1076,1055,518,1079,1081]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2])),l=t(r(d[3])),n=(0,u.default)(l.default,'anticon',f.default);e.default=n},1035,[1,518,1036,1037]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"3a2ba31570920eeb9b1d217cabe58315",name:"AntDesign",type:"ttf",fileHashes:["3a2ba31570920eeb9b1d217cabe58315"]})},1036,[188]); +__d(function(e,o,r,a,c,l,i){c.exports={stepforward:58880,stepbackward:58881,forward:58882,banckward:58883,caretright:58884,caretleft:58885,caretdown:58886,caretup:58887,rightcircle:58888,leftcircle:58889,upcircle:58890,downcircle:58891,rightcircleo:58892,leftcircleo:58893,upcircleo:58894,downcircleo:58895,verticleleft:58896,verticleright:58897,back:58898,retweet:58899,shrink:58900,arrowsalt:58901,doubleright:58903,doubleleft:58904,arrowdown:58905,arrowup:58906,arrowright:58907,arrowleft:58908,down:58909,up:58910,right:58911,left:58912,minussquareo:58913,minuscircle:58914,minuscircleo:58915,minus:58916,pluscircleo:58917,pluscircle:58918,plus:58919,infocirlce:58920,infocirlceo:58921,info:58922,exclamation:58923,exclamationcircle:58924,exclamationcircleo:58925,closecircle:58926,closecircleo:58927,checkcircle:58928,checkcircleo:58929,check:58930,close:58931,customerservice:58932,creditcard:58933,codesquareo:58934,book:58935,barschart:58936,bars:58937,question:58938,questioncircle:58939,questioncircleo:58940,pause:58941,pausecircle:58942,pausecircleo:58943,clockcircle:58944,clockcircleo:58945,swap:58946,swapleft:58947,swapright:58948,plussquareo:58949,frown:58950,menufold:58968,mail:58969,link:58971,areachart:58972,linechart:58973,home:58974,laptop:58975,star:58976,staro:58977,filter:58979,meho:58982,meh:58983,shoppingcart:58984,save:58985,user:58986,videocamera:58987,totop:58988,team:58989,sharealt:58993,setting:58994,picture:58996,phone:58997,paperclip:58998,notification:58999,menuunfold:59001,inbox:59002,lock:59003,qrcode:59004,tags:59005,tagso:59006,cloudo:59007,cloud:59008,cloudupload:59009,clouddownload:59010,clouddownloado:59011,clouduploado:59012,enviroment:59013,enviromento:59014,eye:59015,eyeo:59016,camera:59017,camerao:59018,windows:59019,export2:59024,export:59025,circledowno:59027,circledown:59028,hdd:59034,ie:59035,delete:59039,enter:59040,pushpino:59041,pushpin:59042,heart:59043,hearto:59044,"smile-circle":59047,smileo:59048,frowno:59049,calculator:59050,chrome:59052,github:59053,iconfontdesktop:59060,caretcircleoup:59061,upload:59062,download:59063,piechart:59064,lock1:59065,unlock:59066,windowso:59068,dotchart:59069,barchart:59070,codesquare:59071,plussquare:59072,minussquare:59073,closesquare:59074,closesquareo:59075,checksquare:59076,checksquareo:59077,fastbackward:59078,fastforward:59079,upsquare:59080,downsquare:59081,leftsquare:59082,rightsquare:59083,rightsquareo:59084,leftsquareo:59085,"down-square-o":59086,"up-square-o":59087,play:59088,playcircleo:59089,tag:59090,tago:59091,addfile:59664,folder1:58978,file1:58980,switcher:59667,addfolder:59668,folderopen:59033,search1:58992,ellipsis1:58951,calendar:59067,filetext1:59032,copy1:58952,jpgfile1:59036,pdffile1:59059,exclefile1:59056,pptfile1:59057,unknowfile1:59055,wordfile1:59058,dingding:59683,"dingding-o":59685,mobile1:59e3,tablet1:58990,bells:58958,disconnect:58959,database:58960,barcode:58962,hourglass:58963,key:58964,flag:58965,layout:58966,printer:58995,USB:59095,skin:59096,tool:59097,car:59100,addusergroup:59101,carryout:59103,deleteuser:59104,deleteusergroup:59105,man:59106,isv:59107,gift:59108,idcard:59109,medicinebox:59110,redenvelopes:59111,rest:59112,Safety:59114,wallet:59115,woman:59116,adduser:59117,bank:59118,Trophy:59119,loading1:59054,loading2:58957,like2:59037,dislike2:59038,like1:58956,dislike1:58955,bulb1:58953,rocket1:59663,select1:58954,apple1:59020,"apple-o":59092,android1:59704,android:59021,"aliwangwang-o1":59023,aliwangwang:59022,"pay-circle1":59045,"pay-circle-o1":59046,poweroff:59093,trademark:58961,find:59099,copyright:59102,sound:59113,earth:59121,wifi:59094,sync:59098,login:58967,logout:58970,reload1:58902,message1:59051,shake:59727,API:59729,"appstore-o":59029,appstore1:59030,scan1:59031,exception1:58981,contacts:59120,solution1:58991,fork:59122,edit:59026,form:59798,warning:59799,table:59800,profile:59801,dashboard:59802,"indent-left":59814,"indent-right":59815,"menu-unfold":59820,"menu-fold":59821,antdesign:59826,"alipay-square":59827,"codepen-circle":59828,google:59829,amazon:59830,codepen:59831,"facebook-square":59832,dropbox:59833,googleplus:59834,"linkedin-square":59835,"medium-monogram":59836,gitlab:59837,"medium-wordmark":59838,QQ:59839,skype:59840,"taobao-square":59841,"alipay-circle":59842,youtube:59843,wechat:59844,twitter:59845,weibo:59846,HTML:59847,"taobao-circle":59123,"weibo-circle":59124,"weibo-square":59125,CodeSandbox:59860,aliyun:59892,zhihu:59139,behance:59143,dribbble:59145,"dribbble-square":59146,"behance-square":59144,"file-markdown":59140,instagram:59147,yuque:59148,slack:59141,"slack-square":59142}},1037,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2])),l=t(r(d[3])),o=(0,u.default)(l.default,'entypo',f.default);e.default=o},1038,[1,518,1039,1040]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"744ce60078c17d86006dd0edabcd59a7",name:"Entypo",type:"ttf",fileHashes:["744ce60078c17d86006dd0edabcd59a7"]})},1039,[188]); +__d(function(e,r,o,i,t,l,a){t.exports={"500px":61696,"500px-with-circle":61697,"add-to-list":61698,"add-user":61699,address:61700,adjust:61701,air:61702,aircraft:61703,"aircraft-landing":61704,"aircraft-take-off":61705,"align-bottom":61706,"align-horizontal-middle":61707,"align-left":61708,"align-right":61709,"align-top":61710,"align-vertical-middle":61711,"app-store":61712,archive:61713,"area-graph":61714,"arrow-bold-down":61715,"arrow-bold-left":61716,"arrow-bold-right":61717,"arrow-bold-up":61718,"arrow-down":61719,"arrow-left":61720,"arrow-long-down":61721,"arrow-long-left":61722,"arrow-long-right":61723,"arrow-long-up":61724,"arrow-right":61725,"arrow-up":61726,"arrow-with-circle-down":61727,"arrow-with-circle-left":61728,"arrow-with-circle-right":61729,"arrow-with-circle-up":61730,attachment:61731,"awareness-ribbon":61732,back:61733,"back-in-time":61734,baidu:61735,"bar-graph":61736,basecamp:61737,battery:61738,"beamed-note":61739,behance:61740,bell:61741,blackboard:61742,block:61743,book:61744,bookmark:61745,bookmarks:61746,bowl:61747,box:61748,briefcase:61749,browser:61750,brush:61751,bucket:61752,bug:61753,cake:61754,calculator:61755,calendar:61756,camera:61757,ccw:61758,chat:61759,check:61760,"chevron-down":61761,"chevron-left":61762,"chevron-right":61763,"chevron-small-down":61764,"chevron-small-left":61765,"chevron-small-right":61766,"chevron-small-up":61767,"chevron-thin-down":61768,"chevron-thin-left":61769,"chevron-thin-right":61770,"chevron-thin-up":61771,"chevron-up":61772,"chevron-with-circle-down":61773,"chevron-with-circle-left":61774,"chevron-with-circle-right":61775,"chevron-with-circle-up":61776,circle:61777,"circle-with-cross":61778,"circle-with-minus":61779,"circle-with-plus":61780,"circular-graph":61781,clapperboard:61782,"classic-computer":61783,clipboard:61784,clock:61785,cloud:61786,code:61787,cog:61788,colours:61789,compass:61790,"controller-fast-backward":61791,"controller-fast-forward":61792,"controller-jump-to-start":61793,"controller-next":61794,"controller-paus":61795,"controller-play":61796,"controller-record":61797,"controller-stop":61798,"controller-volume":61799,copy:61800,"creative-cloud":61801,"creative-commons":61802,"creative-commons-attribution":61803,"creative-commons-noderivs":61804,"creative-commons-noncommercial-eu":61805,"creative-commons-noncommercial-us":61806,"creative-commons-public-domain":61807,"creative-commons-remix":61808,"creative-commons-share":61809,"creative-commons-sharealike":61810,credit:61811,"credit-card":61812,crop:61813,cross:61814,cup:61815,cw:61816,cycle:61817,database:61818,"dial-pad":61819,direction:61820,document:61821,"document-landscape":61822,documents:61823,"dot-single":61824,"dots-three-horizontal":61825,"dots-three-vertical":61826,"dots-two-horizontal":61827,"dots-two-vertical":61828,download:61829,dribbble:61830,"dribbble-with-circle":61831,drink:61832,drive:61833,drop:61834,dropbox:61835,edit:61836,email:61837,"emoji-flirt":61838,"emoji-happy":61839,"emoji-neutral":61840,"emoji-sad":61841,erase:61842,eraser:61843,evernote:61844,export:61845,eye:61846,"eye-with-line":61847,facebook:61848,"facebook-with-circle":61849,feather:61850,fingerprint:61851,flag:61852,flash:61853,flashlight:61854,"flat-brush":61855,flattr:61856,flickr:61857,"flickr-with-circle":61858,"flow-branch":61859,"flow-cascade":61860,"flow-line":61861,"flow-parallel":61862,"flow-tree":61863,flower:61864,folder:61865,"folder-images":61866,"folder-music":61867,"folder-video":61868,forward:61869,foursquare:61870,funnel:61871,"game-controller":61872,gauge:61873,github:61874,"github-with-circle":61875,globe:61876,"google-":61877,"google--with-circle":61878,"google-drive":61879,"google-hangouts":61880,"google-play":61881,"graduation-cap":61882,grid:61883,grooveshark:61884,"hair-cross":61885,hand:61886,heart:61887,"heart-outlined":61888,help:61889,"help-with-circle":61890,home:61891,"hour-glass":61892,houzz:61893,icloud:61894,image:61895,"image-inverted":61896,images:61897,inbox:61898,infinity:61899,info:61900,"info-with-circle":61901,instagram:61902,"instagram-with-circle":61903,install:61904,key:61905,keyboard:61906,"lab-flask":61907,landline:61908,language:61909,laptop:61910,lastfm:61911,"lastfm-with-circle":61912,layers:61913,leaf:61914,"level-down":61915,"level-up":61916,lifebuoy:61917,"light-bulb":61918,"light-down":61919,"light-up":61920,"line-graph":61921,link:61922,linkedin:61923,"linkedin-with-circle":61924,list:61925,location:61926,"location-pin":61927,lock:61928,"lock-open":61929,"log-out":61930,login:61931,loop:61932,magnet:61933,"magnifying-glass":61934,mail:61935,"mail-with-circle":61936,man:61937,map:61938,mask:61939,medal:61940,medium:61941,"medium-with-circle":61942,megaphone:61943,menu:61944,merge:61945,message:61946,mic:61947,minus:61948,mixi:61949,mobile:61950,"modern-mic":61951,moon:61952,mouse:61953,"mouse-pointer":61954,music:61955,network:61956,new:61957,"new-message":61958,news:61959,newsletter:61960,note:61961,notification:61962,"notifications-off":61963,"old-mobile":61964,"old-phone":61965,onedrive:61966,"open-book":61967,palette:61968,"paper-plane":61969,paypal:61970,pencil:61971,phone:61972,picasa:61973,"pie-chart":61974,pin:61975,pinterest:61976,"pinterest-with-circle":61977,plus:61978,popup:61979,"power-plug":61980,"price-ribbon":61981,"price-tag":61982,print:61983,"progress-empty":61984,"progress-full":61985,"progress-one":61986,"progress-two":61987,publish:61988,qq:61989,"qq-with-circle":61990,quote:61991,radio:61992,raft:61993,"raft-with-circle":61994,rainbow:61995,rdio:61996,"rdio-with-circle":61997,"remove-user":61998,renren:61999,reply:62e3,"reply-all":62001,"resize-100-":62002,"resize-full-screen":62003,retweet:62004,rocket:62005,"round-brush":62006,rss:62007,ruler:62008,save:62009,scissors:62010,scribd:62011,"select-arrows":62012,share:62013,"share-alternative":62014,shareable:62015,shield:62016,shop:62017,"shopping-bag":62018,"shopping-basket":62019,"shopping-cart":62020,shuffle:62021,signal:62022,"sina-weibo":62023,skype:62024,"skype-with-circle":62025,slideshare:62026,smashing:62027,sound:62028,"sound-mix":62029,"sound-mute":62030,soundcloud:62031,"sports-club":62032,spotify:62033,"spotify-with-circle":62034,spreadsheet:62035,"squared-cross":62036,"squared-minus":62037,"squared-plus":62038,star:62039,"star-outlined":62040,stopwatch:62041,stumbleupon:62042,"stumbleupon-with-circle":62043,suitcase:62044,swap:62045,swarm:62046,sweden:62047,switch:62048,tablet:62049,"tablet-mobile-combo":62050,tag:62051,text:62052,"text-document":62053,"text-document-inverted":62054,thermometer:62055,"thumbs-down":62056,"thumbs-up":62057,"thunder-cloud":62058,ticket:62059,"time-slot":62060,tools:62061,"traffic-cone":62062,trash:62063,tree:62064,"triangle-down":62065,"triangle-left":62066,"triangle-right":62067,"triangle-up":62068,tripadvisor:62069,trophy:62070,tumblr:62071,"tumblr-with-circle":62072,tv:62073,twitter:62074,"twitter-with-circle":62075,typing:62076,uninstall:62077,unread:62078,untag:62079,upload:62080,"upload-to-cloud":62081,user:62082,users:62083,"v-card":62084,video:62085,"video-camera":62086,vimeo:62087,"vimeo-with-circle":62088,vine:62089,"vine-with-circle":62090,vinyl:62091,vk:62092,"vk-alternitive":62093,"vk-with-circle":62094,voicemail:62095,wallet:62096,warning:62097,water:62098,"windows-store":62099,xing:62100,"xing-with-circle":62101,yelp:62102,youko:62103,"youko-with-circle":62104,youtube:62105,"youtube-with-circle":62106}},1040,[]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[1])),u=l(r(d[2])),f=l(r(d[3])),o=(0,t.default)(f.default,'evilicons',u.default);e.default=o},1041,[1,518,1042,1043]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"140c53a7643ea949007aa9a282153849",name:"EvilIcons",type:"ttf",fileHashes:["140c53a7643ea949007aa9a282153849"]})},1042,[188]); +__d(function(e,r,c,o,s,n,a){s.exports={archive:61696,"arrow-down":61697,"arrow-left":61698,"arrow-right":61699,"arrow-up":61700,bell:61701,calendar:61702,camera:61703,cart:61704,chart:61705,check:61706,"chevron-down":61707,"chevron-left":61708,"chevron-right":61709,"chevron-up":61710,clock:61711,close:61712,"close-o":61713,comment:61714,"credit-card":61715,envelope:61716,exclamation:61717,"external-link":61718,eye:61719,gear:61720,heart:61721,image:61722,like:61723,link:61724,location:61725,lock:61726,minus:61727,navicon:61728,paperclip:61729,pencil:61730,play:61731,plus:61732,pointer:61733,question:61734,redo:61735,refresh:61736,retweet:61737,"sc-facebook":61738,"sc-github":61739,"sc-google-plus":61740,"sc-instagram":61741,"sc-linkedin":61742,"sc-odnoklassniki":61743,"sc-pinterest":61744,"sc-skype":61745,"sc-soundcloud":61746,"sc-telegram":61747,"sc-tumblr":61748,"sc-twitter":61749,"sc-vimeo":61750,"sc-vk":61751,"sc-youtube":61752,search:61753,"share-apple":61754,"share-google":61755,spinner:61756,"spinner-2":61757,"spinner-3":61758,star:61759,tag:61760,trash:61761,trophy:61762,undo:61763,unlock:61764,user:61765}},1043,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),o=(0,f.default)(l.default,'feather',u.default);e.default=o},1044,[1,518,1045,1046]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"e766963327e0a89f9ec2ba88646b6177",name:"Feather",type:"ttf",fileHashes:["e766963327e0a89f9ec2ba88646b6177"]})},1045,[188]); +__d(function(e,r,o,i,a,l,t){a.exports={activity:61696,airplay:61697,"alert-circle":61698,"alert-octagon":61699,"alert-triangle":61700,"align-center":61701,"align-justify":61702,"align-left":61703,"align-right":61704,anchor:61705,aperture:61706,archive:61707,"arrow-down":61708,"arrow-down-circle":61709,"arrow-down-left":61710,"arrow-down-right":61711,"arrow-left":61712,"arrow-left-circle":61713,"arrow-right":61714,"arrow-right-circle":61715,"arrow-up":61716,"arrow-up-circle":61717,"arrow-up-left":61718,"arrow-up-right":61719,"at-sign":61720,award:61721,"bar-chart":61722,"bar-chart-2":61723,battery:61724,"battery-charging":61725,bell:61726,"bell-off":61727,bluetooth:61728,bold:61729,book:61730,"book-open":61731,bookmark:61732,box:61733,briefcase:61734,calendar:61735,camera:61736,"camera-off":61737,cast:61738,check:61739,"check-circle":61740,"check-square":61741,"chevron-down":61742,"chevron-left":61743,"chevron-right":61744,"chevron-up":61745,"chevrons-down":61746,"chevrons-left":61747,"chevrons-right":61748,"chevrons-up":61749,chrome:61750,circle:61751,clipboard:61752,clock:61753,cloud:61754,"cloud-drizzle":61755,"cloud-lightning":61756,"cloud-off":61757,"cloud-rain":61758,"cloud-snow":61759,code:61760,codepen:61761,codesandbox:61762,coffee:61763,columns:61764,command:61765,compass:61766,copy:61767,"corner-down-left":61768,"corner-down-right":61769,"corner-left-down":61770,"corner-left-up":61771,"corner-right-down":61772,"corner-right-up":61773,"corner-up-left":61774,"corner-up-right":61775,cpu:61776,"credit-card":61777,crop:61778,crosshair:61779,database:61780,delete:61781,disc:61782,divide:61783,"divide-circle":61784,"divide-square":61785,"dollar-sign":61786,download:61787,"download-cloud":61788,dribbble:61789,droplet:61790,edit:61791,"edit-2":61792,"edit-3":61793,"external-link":61794,eye:61795,"eye-off":61796,facebook:61797,"fast-forward":61798,feather:61799,figma:61800,file:61801,"file-minus":61802,"file-plus":61803,"file-text":61804,film:61805,filter:61806,flag:61807,folder:61808,"folder-minus":61809,"folder-plus":61810,framer:61811,frown:61812,gift:61813,"git-branch":61814,"git-commit":61815,"git-merge":61816,"git-pull-request":61817,github:61818,gitlab:61819,globe:61820,grid:61821,"hard-drive":61822,hash:61823,headphones:61824,heart:61825,"help-circle":61826,hexagon:61827,home:61828,image:61829,inbox:61830,info:61831,instagram:61832,italic:61833,key:61834,layers:61835,layout:61836,"life-buoy":61837,link:61838,"link-2":61839,linkedin:61840,list:61841,loader:61842,lock:61843,"log-in":61844,"log-out":61845,mail:61846,map:61847,"map-pin":61848,maximize:61849,"maximize-2":61850,meh:61851,menu:61852,"message-circle":61853,"message-square":61854,mic:61855,"mic-off":61856,minimize:61857,"minimize-2":61858,minus:61859,"minus-circle":61860,"minus-square":61861,monitor:61862,moon:61863,"more-horizontal":61864,"more-vertical":61865,"mouse-pointer":61866,move:61867,music:61868,navigation:61869,"navigation-2":61870,octagon:61871,package:61872,paperclip:61873,pause:61874,"pause-circle":61875,"pen-tool":61876,percent:61877,phone:61878,"phone-call":61879,"phone-forwarded":61880,"phone-incoming":61881,"phone-missed":61882,"phone-off":61883,"phone-outgoing":61884,"pie-chart":61885,play:61886,"play-circle":61887,plus:61888,"plus-circle":61889,"plus-square":61890,pocket:61891,power:61892,printer:61893,radio:61894,"refresh-ccw":61895,"refresh-cw":61896,repeat:61897,rewind:61898,"rotate-ccw":61899,"rotate-cw":61900,rss:61901,save:61902,scissors:61903,search:61904,send:61905,server:61906,settings:61907,share:61908,"share-2":61909,shield:61910,"shield-off":61911,"shopping-bag":61912,"shopping-cart":61913,shuffle:61914,sidebar:61915,"skip-back":61916,"skip-forward":61917,slack:61918,slash:61919,sliders:61920,smartphone:61921,smile:61922,speaker:61923,square:61924,star:61925,"stop-circle":61926,sun:61927,sunrise:61928,sunset:61929,tablet:61930,tag:61931,target:61932,terminal:61933,thermometer:61934,"thumbs-down":61935,"thumbs-up":61936,"toggle-left":61937,"toggle-right":61938,tool:61939,trash:61940,"trash-2":61941,trello:61942,"trending-down":61943,"trending-up":61944,triangle:61945,truck:61946,tv:61947,twitch:61948,twitter:61949,type:61950,umbrella:61951,underline:61952,unlock:61953,upload:61954,"upload-cloud":61955,user:61956,"user-check":61957,"user-minus":61958,"user-plus":61959,"user-x":61960,users:61961,video:61962,"video-off":61963,voicemail:61964,volume:61965,"volume-1":61966,"volume-2":61967,"volume-x":61968,watch:61969,wifi:61970,"wifi-off":61971,wind:61972,x:61973,"x-circle":61974,"x-octagon":61975,"x-square":61976,youtube:61977,zap:61978,"zap-off":61979,"zoom-in":61980,"zoom-out":61981}},1046,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2])),l=t(r(d[3])),o=(0,u.default)(l.default,"Fontisto",f.default);e.default=o},1047,[1,518,1048,1049]); +__d(function(e,a,c,s,t,o,b){t.exports=a(b[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"b49ae8ab2dbccb02c4d11caaacf09eab",name:"Fontisto",type:"ttf",fileHashes:["b49ae8ab2dbccb02c4d11caaacf09eab"]})},1048,[188]); +__d(function(e,a,r,o,t,s,i){t.exports={"acrobat-reader":60095,applemusic:60096,atlassian:60097,aws:60098,baidu:60099,bing:60100,bower:60101,dailymotion:60102,delicious:60103,deviantart:60104,disqus:60105,flipboard:60106,graphql:60107,hexo:60108,hipchat:60109,icq:60110,invision:60111,jekyll:60112,jira:60113,json:60114,livestream:60115,messenger:60116,meteor:60117,onenote:60118,mongodb:60119,netflix:60120,nginx:60121,odnoklassniki:60122,onedrive:60123,origin:60124,pingdom:60125,rails:60126,"raspberry-pi":60127,redis:60128,redux:60129,saucelabs:60130,scorp:60131,sentry:60132,shazam:60133,shopify:60134,sinaweibo:60135,slides:60136,sublimetext:60137,swift:60138,ted:60139,telegram:60140,tesla:60141,tinder:60142,treehouse:60143,twoo:60144,udacity:60145,webstorm:60146,wix:60147,"yandex-international":60148,yandex:60149,ember:60087,cpanel:60088,viber:60089,deskpro:60090,discord:60091,discourse:60092,adobe:60059,algolia:60060,atom:60061,babel:60062,coffeescript:60063,electronjs:60064,mysql:60065,oracle:60066,php:60067,sourcetree:60068,ubuntu:60069,unity:60070,"unreal-engine":60071,webpack:60072,angelist:60026,"app-store":60027,digg:60030,dockers:60031,envato:60032,gitlab:60033,"google-drive":60034,"google-play":60035,grunt:60036,gulp:60037,"hacker-news":60038,imdb:60039,jenkins:60040,joomla:60041,kickstarter:60042,laravel:60043,less:60044,line:60045,npm:60046,periscope:60047,"product-hunt":60048,quora:60049,skyatlas:60050,stylus:60051,travis:60052,trello:60053,uber:60054,vine:60055,"visual-studio":60056,vk:60057,vuejs:60058,microsoft:60025,blogger:60028,"500px":59658,amazon:59659,ampproject:59660,android:59661,angularjs:59662,apple:59663,behance:59664,bitbucket:59665,"bluetooth-b":59666,cloudflare:59667,codepen:59668,css3:59669,dribbble:59670,dropbox:59671,facebook:59672,flickr:59673,foursquare:59674,git:59675,github:59676,"google-plus":59677,google:59678,hangout:59679,houzz:59680,html5:59681,instagram:59682,java:59683,jquery:59684,jsfiddle:59685,linkedin:59686,linux:59687,magento:59688,maxcdn:59689,medium:59690,meetup:59691,nodejs:59692,opencart:59693,pinterest:59694,playstation:59695,python:59696,react:59697,reddit:59698,ruby:59699,sass:59700,skype:59701,slack:59702,snapchat:59703,soundcloud:59704,spotify:59705,"stack-overflow":59706,steam:59707,stumbleupon:59708,svn:59709,swarm:59710,tripadvisor:59711,tumblr:59712,twitch:59713,twitter:59714,vimeo:59715,wetransfer:59716,whatsapp:59717,"wifi-logo":59718,wikipedia:59719,windows:59720,wordpress:59721,xbox:59722,yahoo:59723,yelp:59724,"youtube-play":59725,cocoapods:60200,composer:60201,yarn:60202,language:59943,"toggle-off":59948,"toggle-on":60029,anchor:60094,archive:60150,at:60151,ban:60152,"battery-half":60153,"battery-full":60154,"battery-empty":60155,"battery-quarter":60156,"battery-three-quarters":60157,"bell-alt":60158,bell:60159,"bookmark-alt":60160,bookmark:60161,bug:60162,calculator:60163,calendar:60164,crosshairs:60165,desktop:60166,download:60167,film:60168,history:60169,"hourglass-end":60170,"hourglass-half":60171,"hourglass-start":60172,hourglass:60173,info:60174,key:60175,keyboard:60176,laptop:60177,lightbulb:60178,magnet:60179,"map-marker-alt":60180,"map-marker":60181,map:60182,"mobile-alt":60183,mobile:60184,paw:60185,phone:60186,power:60187,qrcode:60188,question:60189,search:60190,sitemap:60191,"star-half":60192,stopwatch:60193,"tablet-alt":60194,tablet:60195,ticket:60196,tv:60197,upload:60198,"user-secret":60199,camera:59798,clock:59799,"close-a":59800,code:59801,comment:59802,commenting:59803,comments:59804,crop:59805,cursor:59806,database:59807,date:59808,earth:59809,email:59810,eye:59811,female:59812,favorite:59813,filter:59814,fire:59815,flag:59816,flash:59817,home:59818,link:59819,locked:59820,male:59821,"minus-a":59822,"more-v-a":59823,"more-v":59824,"move-h-a":59825,"move-h":59826,"nav-icon-a":59827,"nav-icon-grid-a":59828,"nav-icon-grid":59829,"nav-icon-list-a":59830,"nav-icon-list":59831,"nav-icon":59832,navigate:59833,"paper-plane":59834,person:59835,persons:59836,picture:59837,"plus-a":59838,print:59839,"quote-a-left":59840,"quote-a-right":59841,"quote-left":59842,"quote-right":59843,reply:59844,rss:59845,scissors:59846,"share-a":59847,share:59848,trash:59849,unlocked:59850,usb:59851,wifi:59852,"world-o":59853,world:59854,zoom:59855,adjust:60015,recycle:60016,pinboard:60093,"zoom-minus":60082,"zoom-plus":60083,check:60084,asterisk:60085,hashtag:60086,"checkbox-active":59778,"checkbox-passive":59779,"radio-btn-active":59780,"radio-btn-passive":59781,"shopping-bag-1":60011,"shopping-bag":60012,"shopping-barcode":60017,"shopping-basket-add":60018,"shopping-basket-remove":60019,"shopping-basket":60020,"shopping-package":60021,"shopping-pos-machine":60022,"shopping-sale":60023,"shopping-store":60024,"angle-dobule-down":59748,"angle-dobule-left":59749,"angle-dobule-right":59750,"angle-dobule-up":59751,"angle-down":59752,"angle-left":59753,"angle-right":59754,"angle-up":59755,"arrow-down-l":59756,"arrow-down":59757,"arrow-expand":59758,"arrow-h":59759,"arrow-left-l":59760,"arrow-left":59761,"arrow-move":59762,"arrow-resize":59763,"arrow-return-left":59764,"arrow-return-right":59765,"arrow-right-l":59766,"arrow-right":59767,"arrow-swap":59768,"arrow-up-l":59769,"arrow-up":59770,"arrow-v":59771,"caret-down":59772,"caret-left":59773,"caret-right":59774,"caret-up":59775,fi:59776,fontisto:59777,backward:59866,eject:59867,equalizer:59868,forward:59869,headphone:59870,heart:59871,mic:59872,"music-note":59873,pause:59874,"play-list":59875,play:59876,"player-settings":59877,podcast:59878,random:59879,record:59880,star:59881,"step-backwrad":59882,"step-forward":59883,stop:59884,"volume-down":59885,"volume-mute":59886,"volume-off":59887,"volume-up":59888,airplay:60008,bold:59918,"broken-link":59919,"center-align":59920,close:59921,columns:59922,copy:59923,eraser:59924,export:59925,"file-1":59926,"file-2":59927,folder:59928,font:59929,import:59930,indent:59931,italic:59932,justify:59933,"left-align":59934,link2:59935,"list-1":59936,"list-2":59937,outdent:59938,paperclip:59939,paragraph:59940,paste:59941,preview:59942,print2:59943,redo:59944,"right-align":59945,"save-1":59946,save:59947,scissors2:59948,strikethrough:59949,subscript:59950,superscript:59951,"table-1":59952,"table-2":59953,"text-height":59954,"text-width":59955,underline:59956,undo:59957,"cloud-down":59958,"cloud-refresh":59959,"cloud-up":59960,"cloudy-gusts":59961,cloudy:59962,compass:59963,"day-cloudy":59964,"day-haze":59965,"day-lightning":59966,"day-rain":59967,"day-snow":59968,"day-sunny":59969,fog:59970,"horizon-alt":59971,horizon:59972,lightning:59973,lightnings:59974,"night-alt-cloudy":59975,"night-alt-lightning":59976,"night-alt-rain":59977,"night-alt-snow":59978,"night-clear":59979,rain:59980,rainbow:59981,rains:59982,snow:59983,snows:59984,thermometer:59985,umbrella:59986,wind:59987,confused:59988,dizzy:59989,expressionless:59990,frowning:59991,"heart-eyes":59992,laughing:59993,mad:59994,nervous:59995,neutral:59996,"open-mouth":59997,rage:59998,"slightly-smile":59999,smiley:6e4,smiling:60001,"stuck-out-tongue":60002,sunglasses:60003,surprised:60004,tongue:60005,wink:60006,"zipper-mouth":60007,aids:60233,ambulance:60234,bandage:60235,"bed-patient":60236,"blood-drop":60237,"blood-test":60238,blood:60239,dna:60240,doctor:60241,"drug-pack":60242,"first-aid-alt":60243,"heart-alt":60244,"heartbeat-alt":60245,heartbeat:60246,"helicopter-ambulance":60247,hospital:60248,"injection-syringe":60249,laboratory:60250,nurse:60251,"nursing-home":60252,"paralysis-disability":60253,pills:60254,prescription:60255,pulse:60256,stethoscope:60257,"surgical-knife":60258,tablets:60259,"test-bottle":60260,"test-tube-alt":60261,"test-tube":60262,"thermometer-alt":60263,"american-express":59856,"credit-card":59857,"google-wallet":59858,iyzigo:59859,mastercard:59860,"paypal-p":59861,paypal:59862,payu:59863,troy:59864,visa:59865,"dinners-club":60010,"apple-pay":60009,discover:60013,jcb:60014,dislike:59796,like:59797,"audio-description":59648,blind:59649,braille:59650,deaf:59651,"fa-american-sign-language-interpreting":59652,"low-vision":59654,tty:59655,"universal-acces":59656,wheelchair:59657,"area-chart":59732,"bar-chart":59733,"line-chart":59734,"pie-chart-1":59735,"pie-chart-2":59736,chrome:59726,edge:59727,firefox:59728,"internet-explorer":59729,opera:59730,safari:59731,bitcoin:59737,dollar:59738,euro:59739,gbp:59740,gg:59741,ils:59742,inr:59743,krw:59744,rouble:59745,tl:59746,yen:59747,genderless:59782,intersex:59783,"mars-double":59784,"mars-stroke-h":59785,"mars-stroke-v":59786,"mars-stroke":59787,mars:59788,mercury:59789,neuter:59790,"transgender-alt":59791,transgender:59792,"venus-double":59793,"venus-mars":59794,venus:59795,automobile:59899,bicycle:59900,bus:59901,car:59902,helicopter:59903,metro:59904,motorcycle:59905,plane:59906,rocket:59907,ship:59908,subway:59909,taxi:59910,train:59911,truck:59912,yacht:59913,"beach-slipper":60203,"bus-ticket":60204,cocktail:60205,"compass-alt":60206,"direction-sign":60207,"do-not-disturb":60208,"flotation-ring":60209,"holiday-village":60210,"hot-air-balloon":60211,"hotel-alt":60212,hotel:60213,island:60214,"money-symbol":60215,parasol:60216,"passport-alt":60217,passport:60218,photograph:60219,"plane-ticket":60220,room:60221,"sait-boat":60222,snorkel:60223,"suitcase-alt":60224,suitcase:60225,sun:60226,"sunglasses-alt":60227,swimsuit:60228,tent:60229,"ticket-alt":60230,"train-ticket":60231,wallet:60232,"circle-o-notch":59889,"propeller-1":59890,"propeller-2":59891,"propeller-3":59892,"propeller-4":59893,"spinner-cog":59894,"spinner-fidget":59895,"spinner-refresh":59896,"spinner-rotate-forward":59897,spinner:59898,snowflake:60081,"snowflake-1":60073,"snowflake-2":60074,"snowflake-3":60075,"snowflake-4":60076,"snowflake-5":60077,"snowflake-6":60078,"snowflake-7":60079,"snowflake-8":60080,curve:59915,ellipse:59916,rectangle:59917,shield:59914}},1049,[]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2])),l=t(r(d[3])),o=(0,u.default)(l.default,'FontAwesome',f.default);e.default=o},1050,[1,518,1051,1052]); +__d(function(e,s,t,o,a,n,r){a.exports=s(r[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts",scales:[1],hash:"b06871f281fee6b241d60582ae9369b9",name:"FontAwesome",type:"ttf",fileHashes:["b06871f281fee6b241d60582ae9369b9"]})},1051,[188]); +__d(function(e,r,o,a,t,s,l){t.exports={glass:61440,music:61441,search:61442,"envelope-o":61443,heart:61444,star:61445,"star-o":61446,user:61447,film:61448,"th-large":61449,th:61450,"th-list":61451,check:61452,remove:61453,close:61453,times:61453,"search-plus":61454,"search-minus":61456,"power-off":61457,signal:61458,gear:61459,cog:61459,"trash-o":61460,home:61461,"file-o":61462,"clock-o":61463,road:61464,download:61465,"arrow-circle-o-down":61466,"arrow-circle-o-up":61467,inbox:61468,"play-circle-o":61469,"rotate-right":61470,repeat:61470,refresh:61473,"list-alt":61474,lock:61475,flag:61476,headphones:61477,"volume-off":61478,"volume-down":61479,"volume-up":61480,qrcode:61481,barcode:61482,tag:61483,tags:61484,book:61485,bookmark:61486,print:61487,camera:61488,font:61489,bold:61490,italic:61491,"text-height":61492,"text-width":61493,"align-left":61494,"align-center":61495,"align-right":61496,"align-justify":61497,list:61498,dedent:61499,outdent:61499,indent:61500,"video-camera":61501,photo:61502,image:61502,"picture-o":61502,pencil:61504,"map-marker":61505,adjust:61506,tint:61507,edit:61508,"pencil-square-o":61508,"share-square-o":61509,"check-square-o":61510,arrows:61511,"step-backward":61512,"fast-backward":61513,backward:61514,play:61515,pause:61516,stop:61517,forward:61518,"fast-forward":61520,"step-forward":61521,eject:61522,"chevron-left":61523,"chevron-right":61524,"plus-circle":61525,"minus-circle":61526,"times-circle":61527,"check-circle":61528,"question-circle":61529,"info-circle":61530,crosshairs:61531,"times-circle-o":61532,"check-circle-o":61533,ban:61534,"arrow-left":61536,"arrow-right":61537,"arrow-up":61538,"arrow-down":61539,"mail-forward":61540,share:61540,expand:61541,compress:61542,plus:61543,minus:61544,asterisk:61545,"exclamation-circle":61546,gift:61547,leaf:61548,fire:61549,eye:61550,"eye-slash":61552,warning:61553,"exclamation-triangle":61553,plane:61554,calendar:61555,random:61556,comment:61557,magnet:61558,"chevron-up":61559,"chevron-down":61560,retweet:61561,"shopping-cart":61562,folder:61563,"folder-open":61564,"arrows-v":61565,"arrows-h":61566,"bar-chart-o":61568,"bar-chart":61568,"twitter-square":61569,"facebook-square":61570,"camera-retro":61571,key:61572,gears:61573,cogs:61573,comments:61574,"thumbs-o-up":61575,"thumbs-o-down":61576,"star-half":61577,"heart-o":61578,"sign-out":61579,"linkedin-square":61580,"thumb-tack":61581,"external-link":61582,"sign-in":61584,trophy:61585,"github-square":61586,upload:61587,"lemon-o":61588,phone:61589,"square-o":61590,"bookmark-o":61591,"phone-square":61592,twitter:61593,"facebook-f":61594,facebook:61594,github:61595,unlock:61596,"credit-card":61597,feed:61598,rss:61598,"hdd-o":61600,bullhorn:61601,bell:61683,certificate:61603,"hand-o-right":61604,"hand-o-left":61605,"hand-o-up":61606,"hand-o-down":61607,"arrow-circle-left":61608,"arrow-circle-right":61609,"arrow-circle-up":61610,"arrow-circle-down":61611,globe:61612,wrench:61613,tasks:61614,filter:61616,briefcase:61617,"arrows-alt":61618,group:61632,users:61632,chain:61633,link:61633,cloud:61634,flask:61635,cut:61636,scissors:61636,copy:61637,"files-o":61637,paperclip:61638,save:61639,"floppy-o":61639,square:61640,navicon:61641,reorder:61641,bars:61641,"list-ul":61642,"list-ol":61643,strikethrough:61644,underline:61645,table:61646,magic:61648,truck:61649,pinterest:61650,"pinterest-square":61651,"google-plus-square":61652,"google-plus":61653,money:61654,"caret-down":61655,"caret-up":61656,"caret-left":61657,"caret-right":61658,columns:61659,unsorted:61660,sort:61660,"sort-down":61661,"sort-desc":61661,"sort-up":61662,"sort-asc":61662,envelope:61664,linkedin:61665,"rotate-left":61666,undo:61666,legal:61667,gavel:61667,dashboard:61668,tachometer:61668,"comment-o":61669,"comments-o":61670,flash:61671,bolt:61671,sitemap:61672,umbrella:61673,paste:61674,clipboard:61674,"lightbulb-o":61675,exchange:61676,"cloud-download":61677,"cloud-upload":61678,"user-md":61680,stethoscope:61681,suitcase:61682,"bell-o":61602,coffee:61684,cutlery:61685,"file-text-o":61686,"building-o":61687,"hospital-o":61688,ambulance:61689,medkit:61690,"fighter-jet":61691,beer:61692,"h-square":61693,"plus-square":61694,"angle-double-left":61696,"angle-double-right":61697,"angle-double-up":61698,"angle-double-down":61699,"angle-left":61700,"angle-right":61701,"angle-up":61702,"angle-down":61703,desktop:61704,laptop:61705,tablet:61706,"mobile-phone":61707,mobile:61707,"circle-o":61708,"quote-left":61709,"quote-right":61710,spinner:61712,circle:61713,"mail-reply":61714,reply:61714,"github-alt":61715,"folder-o":61716,"folder-open-o":61717,"smile-o":61720,"frown-o":61721,"meh-o":61722,gamepad:61723,"keyboard-o":61724,"flag-o":61725,"flag-checkered":61726,terminal:61728,code:61729,"mail-reply-all":61730,"reply-all":61730,"star-half-empty":61731,"star-half-full":61731,"star-half-o":61731,"location-arrow":61732,crop:61733,"code-fork":61734,unlink:61735,"chain-broken":61735,question:61736,info:61737,exclamation:61738,superscript:61739,subscript:61740,eraser:61741,"puzzle-piece":61742,microphone:61744,"microphone-slash":61745,shield:61746,"calendar-o":61747,"fire-extinguisher":61748,rocket:61749,maxcdn:61750,"chevron-circle-left":61751,"chevron-circle-right":61752,"chevron-circle-up":61753,"chevron-circle-down":61754,html5:61755,css3:61756,anchor:61757,"unlock-alt":61758,bullseye:61760,"ellipsis-h":61761,"ellipsis-v":61762,"rss-square":61763,"play-circle":61764,ticket:61765,"minus-square":61766,"minus-square-o":61767,"level-up":61768,"level-down":61769,"check-square":61770,"pencil-square":61771,"external-link-square":61772,"share-square":61773,compass:61774,"toggle-down":61776,"caret-square-o-down":61776,"toggle-up":61777,"caret-square-o-up":61777,"toggle-right":61778,"caret-square-o-right":61778,euro:61779,eur:61779,gbp:61780,dollar:61781,usd:61781,rupee:61782,inr:61782,cny:61783,rmb:61783,yen:61783,jpy:61783,ruble:61784,rouble:61784,rub:61784,won:61785,krw:61785,bitcoin:61786,btc:61786,file:61787,"file-text":61788,"sort-alpha-asc":61789,"sort-alpha-desc":61790,"sort-amount-asc":61792,"sort-amount-desc":61793,"sort-numeric-asc":61794,"sort-numeric-desc":61795,"thumbs-up":61796,"thumbs-down":61797,"youtube-square":61798,youtube:61799,xing:61800,"xing-square":61801,"youtube-play":61802,dropbox:61803,"stack-overflow":61804,instagram:61805,flickr:61806,adn:61808,bitbucket:61809,"bitbucket-square":61810,tumblr:61811,"tumblr-square":61812,"long-arrow-down":61813,"long-arrow-up":61814,"long-arrow-left":61815,"long-arrow-right":61816,apple:61817,windows:61818,android:61819,linux:61820,dribbble:61821,skype:61822,foursquare:61824,trello:61825,female:61826,male:61827,gittip:61828,gratipay:61828,"sun-o":61829,"moon-o":61830,archive:61831,bug:61832,vk:61833,weibo:61834,renren:61835,pagelines:61836,"stack-exchange":61837,"arrow-circle-o-right":61838,"arrow-circle-o-left":61840,"toggle-left":61841,"caret-square-o-left":61841,"dot-circle-o":61842,wheelchair:61843,"vimeo-square":61844,"turkish-lira":61845,try:61845,"plus-square-o":61846,"space-shuttle":61847,slack:61848,"envelope-square":61849,wordpress:61850,openid:61851,institution:61852,bank:61852,university:61852,"mortar-board":61853,"graduation-cap":61853,yahoo:61854,google:61856,reddit:61857,"reddit-square":61858,"stumbleupon-circle":61859,stumbleupon:61860,delicious:61861,digg:61862,"pied-piper-pp":61863,"pied-piper-alt":61864,drupal:61865,joomla:61866,language:61867,fax:61868,building:61869,child:61870,paw:61872,spoon:61873,cube:61874,cubes:61875,behance:61876,"behance-square":61877,steam:61878,"steam-square":61879,recycle:61880,automobile:61881,car:61881,cab:61882,taxi:61882,tree:61883,spotify:61884,deviantart:61885,soundcloud:61886,database:61888,"file-pdf-o":61889,"file-word-o":61890,"file-excel-o":61891,"file-powerpoint-o":61892,"file-photo-o":61893,"file-picture-o":61893,"file-image-o":61893,"file-zip-o":61894,"file-archive-o":61894,"file-sound-o":61895,"file-audio-o":61895,"file-movie-o":61896,"file-video-o":61896,"file-code-o":61897,vine:61898,codepen:61899,jsfiddle:61900,"life-bouy":61901,"life-buoy":61901,"life-saver":61901,support:61901,"life-ring":61901,"circle-o-notch":61902,ra:61904,resistance:61904,rebel:61904,ge:61905,empire:61905,"git-square":61906,git:61907,"y-combinator-square":61908,"yc-square":61908,"hacker-news":61908,"tencent-weibo":61909,qq:61910,wechat:61911,weixin:61911,send:61912,"paper-plane":61912,"send-o":61913,"paper-plane-o":61913,history:61914,"circle-thin":61915,header:61916,paragraph:61917,sliders:61918,"share-alt":61920,"share-alt-square":61921,bomb:61922,"soccer-ball-o":61923,"futbol-o":61923,tty:61924,binoculars:61925,plug:61926,slideshare:61927,twitch:61928,yelp:61929,"newspaper-o":61930,wifi:61931,calculator:61932,paypal:61933,"google-wallet":61934,"cc-visa":61936,"cc-mastercard":61937,"cc-discover":61938,"cc-amex":61939,"cc-paypal":61940,"cc-stripe":61941,"bell-slash":61942,"bell-slash-o":61943,trash:61944,copyright:61945,at:61946,eyedropper:61947,"paint-brush":61948,"birthday-cake":61949,"area-chart":61950,"pie-chart":61952,"line-chart":61953,lastfm:61954,"lastfm-square":61955,"toggle-off":61956,"toggle-on":61957,bicycle:61958,bus:61959,ioxhost:61960,angellist:61961,cc:61962,shekel:61963,sheqel:61963,ils:61963,meanpath:61964,buysellads:61965,connectdevelop:61966,dashcube:61968,forumbee:61969,leanpub:61970,sellsy:61971,shirtsinbulk:61972,simplybuilt:61973,skyatlas:61974,"cart-plus":61975,"cart-arrow-down":61976,diamond:61977,ship:61978,"user-secret":61979,motorcycle:61980,"street-view":61981,heartbeat:61982,venus:61985,mars:61986,mercury:61987,intersex:61988,transgender:61988,"transgender-alt":61989,"venus-double":61990,"mars-double":61991,"venus-mars":61992,"mars-stroke":61993,"mars-stroke-v":61994,"mars-stroke-h":61995,neuter:61996,genderless:61997,"facebook-official":62e3,"pinterest-p":62001,whatsapp:62002,server:62003,"user-plus":62004,"user-times":62005,hotel:62006,bed:62006,viacoin:62007,train:62008,subway:62009,medium:62010,yc:62011,"y-combinator":62011,"optin-monster":62012,opencart:62013,expeditedssl:62014,"battery-4":62016,battery:62016,"battery-full":62016,"battery-3":62017,"battery-three-quarters":62017,"battery-2":62018,"battery-half":62018,"battery-1":62019,"battery-quarter":62019,"battery-0":62020,"battery-empty":62020,"mouse-pointer":62021,"i-cursor":62022,"object-group":62023,"object-ungroup":62024,"sticky-note":62025,"sticky-note-o":62026,"cc-jcb":62027,"cc-diners-club":62028,clone:62029,"balance-scale":62030,"hourglass-o":62032,"hourglass-1":62033,"hourglass-start":62033,"hourglass-2":62034,"hourglass-half":62034,"hourglass-3":62035,"hourglass-end":62035,hourglass:62036,"hand-grab-o":62037,"hand-rock-o":62037,"hand-stop-o":62038,"hand-paper-o":62038,"hand-scissors-o":62039,"hand-lizard-o":62040,"hand-spock-o":62041,"hand-pointer-o":62042,"hand-peace-o":62043,trademark:62044,registered:62045,"creative-commons":62046,gg:62048,"gg-circle":62049,tripadvisor:62050,odnoklassniki:62051,"odnoklassniki-square":62052,"get-pocket":62053,"wikipedia-w":62054,safari:62055,chrome:62056,firefox:62057,opera:62058,"internet-explorer":62059,tv:62060,television:62060,contao:62061,"500px":62062,amazon:62064,"calendar-plus-o":62065,"calendar-minus-o":62066,"calendar-times-o":62067,"calendar-check-o":62068,industry:62069,"map-pin":62070,"map-signs":62071,"map-o":62072,map:62073,commenting:62074,"commenting-o":62075,houzz:62076,vimeo:62077,"black-tie":62078,fonticons:62080,"reddit-alien":62081,edge:62082,"credit-card-alt":62083,codiepie:62084,modx:62085,"fort-awesome":62086,usb:62087,"product-hunt":62088,mixcloud:62089,scribd:62090,"pause-circle":62091,"pause-circle-o":62092,"stop-circle":62093,"stop-circle-o":62094,"shopping-bag":62096,"shopping-basket":62097,hashtag:62098,bluetooth:62099,"bluetooth-b":62100,percent:62101,gitlab:62102,wpbeginner:62103,wpforms:62104,envira:62105,"universal-access":62106,"wheelchair-alt":62107,"question-circle-o":62108,blind:62109,"audio-description":62110,"volume-control-phone":62112,braille:62113,"assistive-listening-systems":62114,"asl-interpreting":62115,"american-sign-language-interpreting":62115,deafness:62116,"hard-of-hearing":62116,deaf:62116,glide:62117,"glide-g":62118,signing:62119,"sign-language":62119,"low-vision":62120,viadeo:62121,"viadeo-square":62122,snapchat:62123,"snapchat-ghost":62124,"snapchat-square":62125,"pied-piper":62126,"first-order":62128,yoast:62129,themeisle:62130,"google-plus-circle":62131,"google-plus-official":62131,fa:62132,"font-awesome":62132,"handshake-o":62133,"envelope-open":62134,"envelope-open-o":62135,linode:62136,"address-book":62137,"address-book-o":62138,vcard:62139,"address-card":62139,"vcard-o":62140,"address-card-o":62140,"user-circle":62141,"user-circle-o":62142,"user-o":62144,"id-badge":62145,"drivers-license":62146,"id-card":62146,"drivers-license-o":62147,"id-card-o":62147,quora:62148,"free-code-camp":62149,telegram:62150,"thermometer-4":62151,thermometer:62151,"thermometer-full":62151,"thermometer-3":62152,"thermometer-three-quarters":62152,"thermometer-2":62153,"thermometer-half":62153,"thermometer-1":62154,"thermometer-quarter":62154,"thermometer-0":62155,"thermometer-empty":62155,shower:62156,bathtub:62157,s15:62157,bath:62157,podcast:62158,"window-maximize":62160,"window-minimize":62161,"window-restore":62162,"times-rectangle":62163,"window-close":62163,"times-rectangle-o":62164,"window-close-o":62164,bandcamp:62165,grav:62166,etsy:62167,imdb:62168,ravelry:62169,eercast:62170,microchip:62171,"snowflake-o":62172,superpowers:62173,wpexplorer:62174,meetup:62176}},1052,[]); +__d(function(g,r,i,a,m,e,d){var l=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.FA5Style=void 0;var t=r(d[1]),u=l(r(d[2])),o=l(r(d[3])),n={Regular:r(d[4]),Light:r(d[4]),Solid:r(d[5]),Brand:r(d[6])};e.FA5Style={regular:'regular',light:'light',solid:'solid',brand:'brand'};var f=(0,t.createFA5iconSet)(u.default,o.default,n,!1);e.default=f},1053,[1,1054,1056,1057,1058,1059,1060]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createFA5iconSet=function(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=arguments.length>2?arguments[2]:void 0,f=arguments.length>3&&void 0!==arguments[3]&&arguments[3],v=Object.keys(o),h="FontAwesome5"+(f?'Pro':'Free');function c(l,o){var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h,v=u[l];return{fontFamily:f+"-"+l,fontFile:v,fontStyle:n.Platform.select({ios:{fontWeight:o},default:{}}),glyphMap:t}}var b=c('Brand','400'),s=c('Light','100'),y=c('Regular','400'),F=c('Solid','700');return(0,l.default)({brand:b,light:s,regular:y,solid:F},{defaultStyle:'regular',fallbackFamily:function(t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},O=Object.keys(t);if(0===O.length)throw new Error('You need to add at least one style');var b=h({defaultStyle:O[0],fallbackFamily:function(t){return O[0]},glyphValidator:function(t,n){return!0}},s),j=O.reduce(function(n,u){var o=t[u];return n[u]=(0,y.default)(o.glyphMap||{},o.fontFamily||'',o.fontFile||'',o.fontStyle||{}),n},{});function P(t){return Object.keys(t).reduce(function(n,u){return-1!==O.indexOf(u)&&!0===t[u]?u:n},b.defaultStyle)}function w(t){var n=t.name,u=P(t);if(b.glyphValidator(n,u))return j[u];var o=b.fallbackFamily(n);return-1===O.indexOf(o)?b.defaultStyle:j[o]}function S(t){return Object.keys(t).reduce(function(n,u){return-1===O.indexOf(u)&&(n[u]=t[u]),n},{})}function k(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';return-1===O.indexOf(t)?j[b.defaultStyle]:n?w((0,c.default)({name:n},t,!0)):j[P((0,c.default)({},t,!0))]}function F(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b.defaultStyle;return k(t).getFontFamily()}function M(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b.defaultStyle;return k(t).getRawGlyphMap()}function R(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b.defaultStyle;return b.glyphValidator(t,n)}function D(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',y=(function(t){(0,o.default)(h,t);var y,s,O=(y=h,s=v(),function(){var t,n=(0,l.default)(y);if(s){var u=(0,l.default)(this).constructor;t=Reflect.construct(n,arguments,u)}else t=n.apply(this,arguments);return(0,f.default)(this,t)});function h(){return(0,n.default)(this,h),O.apply(this,arguments)}return(0,u.default)(h,[{key:"render",value:function(){var t,n,u=w(this.props),o=(t=u,(n=c).length>0?t[n]:t),f=S(this.props);return p.default.createElement(o,f)}}]),h})(p.PureComponent);return y.defaultProps=O.reduce(function(t,n){return t[n]=!1,t},{}),y.font=Object.values(t).reduce(function(t,n){return t[n.fontFamily]=n.fontFile,t},{}),y.StyledIconSet=k,y.getFontFamily=F,y.getRawGlyphMap=M,y.hasIcon=R,y}var _=D();return _.Button=D('Button'),_};var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6])),p=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var u=s(n);if(u&&u.has(t))return u.get(t);var o={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var c=f?Object.getOwnPropertyDescriptor(t,l):null;c&&(c.get||c.set)?Object.defineProperty(o,l,c):o[l]=t[l]}o.default=t,u&&u.set(t,o);return o})(r(d[7])),y=t(r(d[8]));function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,u=new WeakMap;return(s=function(t){return t?u:n})(t)}function v(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function O(t,n){var u=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),u.push.apply(u,o)}return u}function h(t){for(var n=1;n0&&(v?o.default.createElement(n.Button,{color:"white",style:[{backgroundColor:s.colorAccent},u.startButton],uppercase:!1,labelStyle:{letterSpacing:0,color:s.colorButtonText},onPress:function(){l.navigate("Chapter",{chapterId:v.chapterId,chapterUrl:v.chapterUrl,novelUrl:c.novelUrl,novelId:v.novelId,sourceId:c.sourceId,chapterName:v.chapterName,novelName:c.novelName})}},c.unread?"Start reading ":"Continue reading ",v.chapterName):o.default.createElement(n.Button,{color:s.textColorHint,style:[u.startButton,{backgroundColor:s.colorDisabled}],uppercase:!1,labelStyle:{letterSpacing:0}},"All chapters read"))};e.default=c;var u=l.StyleSheet.create({startButton:{marginTop:8,marginBottom:16,marginHorizontal:16}})},1085,[1,6,10,495]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),n=t(r(d[2])),l=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=y(o);if(n&&n.has(t))return n.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var f=c?Object.getOwnPropertyDescriptor(t,u):null;f&&(f.get||f.set)?Object.defineProperty(l,u,f):l[u]=t[u]}l.default=t,n&&n.set(t,l);return l})(r(d[3])),c=r(d[4]),u=r(d[5]),f=t(r(d[6])),s=(t(r(d[7])),r(d[8])),h=r(d[9]),p=r(d[10]),b=r(d[11]);function y(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(y=function(t){return t?n:o})(t)}var C=function(t){var y=t.bottomSheetRef,C=t.novelId,S=t.sortAndFilterChapters,A=t.dispatch,D=t.sort,w=t.filter,v=t.theme,E=t.showChapterTitles,R=function(t){return A(S(C,t,w))},x=function(t){return A(S(C,D,t))},N=(0,l.useState)(new c.Animated.Value(0)),P=(0,n.default)(N,1)[0],O=(0,u.SceneMap)({first:function(){return l.default.createElement(c.View,{style:{flex:1}},l.default.createElement(b.Checkbox.Item,{label:"Downloaded",labelStyle:{fontSize:14,color:v.textColorPrimary},color:v.colorAccent,uncheckedColor:v.textColorHint,status:w.match("AND downloaded=1")?"checked":"unchecked",onPress:function(){return w.match("AND downloaded=1")?x(w.replace(" AND downloaded=1","")):x(w+" AND downloaded=1")}}),l.default.createElement(b.Checkbox.Item,{label:"Unread",labelStyle:{fontSize:14,color:v.textColorPrimary},color:v.colorAccent,uncheckedColor:v.textColorHint,status:w.match("AND `read`=0")?"checked":w.match("AND `read`=1")?"indeterminate":"unchecked",onPress:function(){w.match("AND `read`=0")?x(w.replace(" AND `read`=0"," AND `read`=1")):w.match("AND `read`=1")?x(w.replace(" AND `read`=1","")):x(w+" AND `read`=0")}}),l.default.createElement(b.Checkbox.Item,{label:"Bookmarked",labelStyle:{fontSize:14,color:v.textColorPrimary},color:v.colorAccent,uncheckedColor:v.textColorHint,status:w.match("AND bookmark=1")?"checked":"unchecked",onPress:function(){w.match("AND bookmark=1")?x(w.replace(" AND bookmark=1","")):x(w+" AND bookmark=1")}}))},second:function(){return l.default.createElement(c.View,{style:{flex:1}},l.default.createElement(h.ListItem,{style:{paddingVertical:10},title:"By source",titleStyle:{fontSize:14},theme:v,right:"ORDER BY chapterId ASC"===D?"arrow-up":"arrow-down",iconColor:v.colorAccent,onPress:function(){return R("ORDER BY chapterId ASC"===D?"ORDER BY chapterId DESC":"ORDER BY chapterId ASC")}}))},third:function(){return l.default.createElement(c.View,{style:{flex:1,padding:8}},l.default.createElement(p.RadioButtonGroup,{onValueChange:function(t){return A((0,s.showChapterTitlesAction)(C,t))},value:E},l.default.createElement(p.RadioButton,{value:!1,label:"Source title",theme:v,labelStyle:{fontSize:14}}),l.default.createElement(p.RadioButton,{value:!0,label:"Chapter number",theme:v,labelStyle:{fontSize:14}})))}}),B=(0,c.useWindowDimensions)(),I=(0,l.useState)(0),T=(0,n.default)(I,2),V=T[0],j=T[1],z=(0,l.useState)([{key:"first",title:"Filter"},{key:"second",title:"Sort"},{key:"third",title:"Display"}]),M=(0,n.default)(z,1)[0];return l.default.createElement(f.default,{animatedValue:P,ref:y,draggableRange:{top:220,bottom:0},snappingPoints:[0,220]},l.default.createElement(c.View,{style:[k.contentContainer,{backgroundColor:v.colorPrimary}]},l.default.createElement(u.TabView,{navigationState:{index:V,routes:M},renderTabBar:function(t){return l.default.createElement(u.TabBar,(0,o.default)({},t,{indicatorStyle:{backgroundColor:v.colorAccent},style:{backgroundColor:v.colorPrimary},renderLabel:function(t){var o=t.route,n=(t.focused,t.color);return l.default.createElement(c.Text,{style:{color:n,margin:8}},o.title)},inactiveColor:v.textColorSecondary,activeColor:v.colorAccent,pressColor:v.rippleColor}))},renderScene:O,onIndexChange:j,initialLayout:{width:B.width},style:{borderTopRightRadius:8,borderTopLeftRadius:8}})))};e.default=C;var k=c.StyleSheet.create({contentContainer:{flex:1,borderTopRightRadius:8,borderTopLeftRadius:8}})},1086,[1,9,19,6,10,987,1002,1087,798,1010,1088,495]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),l=r(d[2]),n=function(t){var n=t.theme;return o.default.createElement(l.View,{style:{backgroundColor:n.textColorHint,height:5,width:30,borderRadius:50,top:10,alignSelf:"center"}})};e.default=n},1087,[1,6,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RadioButton=e.RadioButtonGroup=void 0;var o=t(r(d[1])),n=r(d[2]),l=r(d[3]);e.RadioButtonGroup=function(t){var n=t.children,u=t.value,c=t.onValueChange;return o.default.createElement(l.RadioButton.Group,{onValueChange:c,value:u},n)};e.RadioButton=function(t){var c=t.value,f=t.label,v=t.theme,B=t.labelStyle;return o.default.createElement(n.View,{style:u.radioButtonContainer},o.default.createElement(l.RadioButton,{value:c,color:v.colorAccent,uncheckedColor:v.textColorSecondary}),o.default.createElement(n.Text,{style:[u.radioButtonLabel,{color:v.textColorPrimary},B]},f))};var u=n.StyleSheet.create({radioButtonContainer:{flexDirection:"row",alignItems:"center",paddingVertical:8},radioButtonLabel:{marginLeft:16,fontSize:16}})},1088,[1,6,10,495]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),c=t(r(d[2])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var c=h(n);if(c&&c.has(t))return c.get(t);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var s=u?Object.getOwnPropertyDescriptor(t,l):null;s&&(s.get||s.set)?Object.defineProperty(o,l,s):o[l]=t[l]}o.default=t,c&&c.set(t,o);return o})(r(d[3])),u=r(d[4]),l=r(d[5]),s=t(r(d[6])),f=r(d[7]),p=r(d[8]),k=t(r(d[9])),y=t(r(d[10])),_=t(r(d[11])),O=t(r(d[12])),b=r(d[13]);function h(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,c=new WeakMap;return(h=function(t){return t?c:n})(t)}function S(t,n){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),c.push.apply(c,o)}return c}function v(t){for(var c=1;c0&&void 0!==arguments[0]?arguments[0]:'',n=arguments.length>1?arguments[1]:void 0,u=arguments.length>2?arguments[2]:void 0;return k(t,{queryParams:n,scheme:u,isTripleSlashed:!0})},e.createURL=k,e.parse=E,e.addEventListener=q,e.removeEventListener=A,e.parseInitialURLAsync=function(){var t;return u.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u.default.awrap(b.default.getInitialURL());case 2:if(t=n.sent){n.next=5;break}return n.abrupt("return",{scheme:null,hostname:null,path:null,queryParams:null});case 5:return n.abrupt("return",E(t));case 6:case"end":return n.stop()}},null,null,null,Promise)},e.sendIntent=function(t,n){return u.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:if('android'!==o.Platform.OS){l.next=4;break}return l.next=3,u.default.awrap(b.default.sendIntent(t,n));case 3:return l.abrupt("return",l.sent);case 4:throw new o.UnavailabilityError('Linking','sendIntent');case 5:case"end":return l.stop()}},null,null,null,Promise)},e.openSettings=function(){return u.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if('web'!==o.Platform.OS){t.next=2;break}throw new o.UnavailabilityError('Linking','openSettings');case 2:if(!b.default.openSettings){t.next=6;break}return t.next=5,u.default.awrap(b.default.openSettings());case 5:return t.abrupt("return",t.sent);case 6:return t.next=8,u.default.awrap(_('app-settings:'));case 8:case"end":return t.stop()}},null,null,null,Promise)},e.getInitialURL=D,e.openURL=_,e.canOpenURL=function(t){return u.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return L(t),n.next=3,u.default.awrap(b.default.canOpenURL(t));case 3:return n.abrupt("return",n.sent);case 4:case"end":return n.stop()}},null,null,null,Promise)},e.useURL=W,e.useUrl=function(){return console.warn("Linking.useUrl has been deprecated in favor of Linking.useURL. This API will be removed in SDK 44."),W()};var u=t(r(d[1])),l=t(r(d[2])),s=t(r(d[3])),o=r(d[4]),c=t(r(d[5])),f=t(r(d[6])),p=t(r(d[7])),v=r(d[8]),h=t(r(d[9])),b=t(r(d[10])),y=r(d[11]),U=r(d[12]);function O(t,n){var u=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),u.push.apply(u,l)}return u}function w(t){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:{},c=s.scheme,f=s.queryParams,v=void 0===f?{}:f,h=s.isTripleSlashed,b=void 0!==h&&h;if('web'===o.Platform.OS){if(!o.Platform.isDOMAvailable)return'';var U=(n=window.location.origin,u=!1,(l=n.endsWith('/'))&&!u?n.substring(0,n.length-1):!l&&u?n+"/":n),O=p.default.stringify(v);O&&(O="?"+O);var L=t;return L&&(L=I(t,!0)),encodeURI(""+U+L+O)}var R=(0,y.resolveScheme)({scheme:c}),j=P()||'';(0,y.hasCustomScheme)()&&x()&&(j=''),t?(x()&&j&&(t="/--/"+S(t)),b&&!t.startsWith('/')&&(t="/"+t)):t='';var k='',E=j.match(/(.*)\?(.+)/);if(E){j=E[1],k=E[2];var q={};try{var A=p.default.parse(k);'object'==typeof A&&(q=A)}catch(t){}v=w(w({},v),q)}return(k=p.default.stringify(v))&&(k="?"+k),j=I(j,!b),encodeURI(R+":"+(b?'/':'')+"/"+j+t+k)}function E(t){L(t);var n=(0,h.default)(t,!0);for(var u in n.query)n.query[u]=decodeURIComponent(n.query[u]);var l=n.query,s=R(j(P()||'')),o=n.pathname||null,c=n.hostname||null,f=n.protocol||null;if(f&&(f=f.substring(0,f.length-1)),o){o=S(o);var p=null;if(s)p=s.split('/').slice(1).concat(['--/']).join('/');x()&&!(0,y.hasCustomScheme)()&&p&&o.startsWith(p)?(o=o.substring(p.length),c=null):o.indexOf('+')>-1&&(o=o.substring(o.indexOf('+')+1))}return{hostname:c,path:o,queryParams:l,scheme:f}}function q(t,n){b.default.addEventListener(t,n)}function A(t,n){b.default.removeEventListener(t,n)}function D(){var t;return u.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u.default.awrap(b.default.getInitialURL());case 2:if(n.t0=t=n.sent,null==n.t0){n.next=7;break}n.t1=t,n.next=8;break;case 7:n.t1=null;case 8:return n.abrupt("return",n.t1);case 9:case"end":return n.stop()}},null,null,null,Promise)}function _(t){return u.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return L(t),n.next=3,u.default.awrap(b.default.openURL(t));case 3:return n.abrupt("return",n.sent);case 4:case"end":return n.stop()}},null,null,null,Promise)}function W(){var t=(0,v.useState)(null),n=(0,l.default)(t,2),u=n[0],s=n[1];function o(t){s(t.url)}return(0,v.useEffect)(function(){return D().then(function(t){return s(t)}),q('url',o),function(){return A('url',o)}},[]),u}Object.keys(U).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in e&&e[t]===U[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return U[t]}}))})},1092,[1,106,19,54,429,428,11,1093,6,454,1100,1101,1103]); +__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),t=r(d[1]),f=r(d[2]);m.exports={formats:f,parse:t,stringify:s}},1093,[1094,1099,1098]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),n=r(d[2]),l=Object.prototype.hasOwnProperty,f={brackets:function(t){return t+'[]'},comma:'comma',indices:function(t,o){return t+'['+o+']'},repeat:function(t){return t}},s=Array.isArray,c=Array.prototype.push,u=function(t,o){c.apply(t,s(o)?o:[o])},y=Date.prototype.toISOString,p=n.default,v={addQueryPrefix:!1,allowDots:!1,charset:'utf-8',charsetSentinel:!1,delimiter:'&',encode:!0,encoder:o.encode,encodeValuesOnly:!1,format:p,formatter:n.formatters[p],indices:!1,serializeDate:function(t){return y.call(t)},skipNulls:!1,strictNullHandling:!1},h=function n(l,f,c,y,p,h,b,w,D,k,N,O,S,j,x){var P,z=l;if(x.has(l))throw new RangeError('Cyclic object value');if('function'==typeof b?z=b(f,z):z instanceof Date?z=k(z):'comma'===c&&s(z)&&(z=o.maybeMap(z,function(t){return t instanceof Date?k(t):t})),null===z){if(y)return h&&!S?h(f,v.encoder,j,'key',N):f;z=''}if('string'==typeof(P=z)||'number'==typeof P||'boolean'==typeof P||'symbol'==typeof P||'bigint'==typeof P||o.isBuffer(z))return h?[O(S?f:h(f,v.encoder,j,'key',N))+'='+O(h(z,v.encoder,j,'value',N))]:[O(f)+'='+O(String(z))];var E,H=[];if(void 0===z)return H;if('comma'===c&&s(z))E=[{value:z.length>0?z.join(',')||null:void 0}];else if(s(b))E=b;else{var Q=Object.keys(z);E=w?Q.sort(w):Q}for(var V=0;V0?S+O:''}},1094,[1095,1097,1098]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),f=t('%TypeError%'),u=t('%WeakMap%',!0),p=t('%Map%',!0),c=n('WeakMap.prototype.get',!0),s=n('WeakMap.prototype.set',!0),y=n('WeakMap.prototype.has',!0),l=n('Map.prototype.get',!0),x=n('Map.prototype.set',!0),v=n('Map.prototype.has',!0),M=function(t,n){for(var o,f=t;null!==(o=f.next);f=o)if(o.key===n)return f.next=o.next,o.next=t.next,t.next=o,o},k=function(t,n){var o=M(t,n);return o&&o.value},h=function(t,n,o){var f=M(t,n);f?f.value=o:t.next={key:n,next:t.next,value:o}},w=function(t,n){return!!M(t,n)};m.exports=function(){var t,n,M,W={assert:function(t){if(!W.has(t))throw new f('Side channel does not contain '+o(t))},get:function(o){if(u&&o&&('object'==typeof o||'function'==typeof o)){if(t)return c(t,o)}else if(p){if(n)return l(n,o)}else if(M)return k(M,o)},has:function(o){if(u&&o&&('object'==typeof o||'function'==typeof o)){if(t)return y(t,o)}else if(p){if(n)return v(n,o)}else if(M)return w(M,o);return!1},set:function(o,f){u&&o&&('object'==typeof o||'function'==typeof o)?(t||(t=new u),s(t,o,f)):p?(n||(n=new p),x(n,o,f)):(M||(M={key:{},next:null}),h(M,o,f))}};return W}},1095,[861,860,1096]); +__d(function(g,r,i,a,m,e,d){var t='function'==typeof Map&&Map.prototype,n=Object.getOwnPropertyDescriptor&&t?Object.getOwnPropertyDescriptor(Map.prototype,'size'):null,o=t&&n&&'function'==typeof n.get?n.get:null,u=t&&Map.prototype.forEach,c='function'==typeof Set&&Set.prototype,f=Object.getOwnPropertyDescriptor&&c?Object.getOwnPropertyDescriptor(Set.prototype,'size'):null,p=c&&f&&'function'==typeof f.get?f.get:null,l=c&&Set.prototype.forEach,y='function'==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,b='function'==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,s='function'==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,h=Boolean.prototype.valueOf,S=Object.prototype.toString,j=Function.prototype.toString,v=String.prototype.match,O='function'==typeof BigInt?BigInt.prototype.valueOf:null,w=Object.getOwnPropertySymbols,x='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?Symbol.prototype.toString:null,k=Object.prototype.propertyIsEnumerable,W=('function'==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null),L=r(d[0]).custom,M=L&&D(L)?L:null,E='function'==typeof Symbol&&'symbol'==typeof Symbol.toStringTag?Symbol.toStringTag:null;function _(t,n,o){var u='double'===(o.quoteStyle||n)?'"':"'";return u+t+u}function q(t){return String(t).replace(/"/g,'"')}function I(t){return!('[object Array]'!==F(t)||E&&'object'==typeof t&&E in t)}function N(t){return!('[object Date]'!==F(t)||E&&'object'==typeof t&&E in t)}function P(t){return!('[object RegExp]'!==F(t)||E&&'object'==typeof t&&E in t)}function T(t){return!('[object Error]'!==F(t)||E&&'object'==typeof t&&E in t)}function A(t){return!('[object String]'!==F(t)||E&&'object'==typeof t&&E in t)}function R(t){return!('[object Number]'!==F(t)||E&&'object'==typeof t&&E in t)}function C(t){return!('[object Boolean]'!==F(t)||E&&'object'==typeof t&&E in t)}function D(t){if('symbol'==typeof t)return!0;if(!t||'object'!=typeof t||!x)return!1;try{return x.call(t),!0}catch(t){}return!1}function B(t){if(!t||'object'!=typeof t||!O)return!1;try{return O.call(t),!0}catch(t){}return!1}m.exports=function t(n,c,f,y){var b=c||{};if(z(b,'quoteStyle')&&'single'!==b.quoteStyle&&'double'!==b.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(z(b,'maxStringLength')&&('number'==typeof b.maxStringLength?b.maxStringLength<0&&b.maxStringLength!==1/0:null!==b.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var s=!z(b,'customInspect')||b.customInspect;if('boolean'!=typeof s)throw new TypeError('option "customInspect", if provided, must be `true` or `false`');if(z(b,'indent')&&null!==b.indent&&'\t'!==b.indent&&!(parseInt(b.indent,10)===b.indent&&b.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(void 0===n)return'undefined';if(null===n)return'null';if('boolean'==typeof n)return n?'true':'false';if('string'==typeof n)return Y(n,b);if('number'==typeof n)return 0===n?1/0/n>0?'0':'-0':String(n);if('bigint'==typeof n)return String(n)+'n';var S=void 0===b.depth?5:b.depth;if(void 0===f&&(f=0),f>=S&&S>0&&'object'==typeof n)return I(n)?'[Array]':'[Object]';var j=ot(b,f);if(void 0===y)y=[];else if(U(y,n)>=0)return'[Circular]';function v(n,o,u){if(o&&(y=y.slice()).push(o),u){var c={depth:b.depth};return z(b,'quoteStyle')&&(c.quoteStyle=b.quoteStyle),t(n,c,f+1,y)}return t(n,b,f+1,y)}if('function'==typeof n){var w=H(n),k=ut(n,v);return'[Function'+(w?': '+w:' (anonymous)')+']'+(k.length>0?' { '+k.join(', ')+' }':'')}if(D(n)){var L=x.call(n);return'object'==typeof n?tt(L):L}if(X(n)){for(var $='<'+String(n.nodeName).toLowerCase(),Z=n.attributes||[],ct=0;ct'}if(I(n)){if(0===n.length)return'[]';var ft=ut(n,v);return j&&!rt(ft)?'['+it(ft,j)+']':'[ '+ft.join(', ')+' ]'}if(T(n)){var pt=ut(n,v);return 0===pt.length?'['+String(n)+']':'{ ['+String(n)+'] '+pt.join(', ')+' }'}if('object'==typeof n&&s){if(M&&'function'==typeof n[M])return n[M]();if('function'==typeof n.inspect)return n.inspect()}if(G(n)){var lt=[];return u.call(n,function(t,o){lt.push(v(o,n,!0)+' => '+v(t,n))}),nt('Map',o.call(n),lt,j)}if(Q(n)){var at=[];return l.call(n,function(t){at.push(v(t,n))}),nt('Set',p.call(n),at,j)}if(J(n))return et('WeakMap');if(V(n))return et('WeakSet');if(K(n))return et('WeakRef');if(R(n))return tt(v(Number(n)));if(B(n))return tt(v(O.call(n)));if(C(n))return tt(h.call(n));if(A(n))return tt(v(String(n)));if(!N(n)&&!P(n)){var yt=ut(n,v),gt=W?W(n)===Object.prototype:n instanceof Object||n.constructor===Object,bt=n instanceof Object?'':'null prototype',st=!gt&&E&&Object(n)===n&&E in n?F(n).slice(8,-1):bt?'Object':'',ht=(gt||'function'!=typeof n.constructor?'':n.constructor.name?n.constructor.name+' ':'')+(st||bt?'['+[].concat(st||[],bt||[]).join(': ')+'] ':'');return 0===yt.length?ht+'{}':j?ht+'{'+it(yt,j)+'}':ht+'{ '+yt.join(', ')+' }'}return String(n)};var $=Object.prototype.hasOwnProperty||function(t){return t in this};function z(t,n){return $.call(t,n)}function F(t){return S.call(t)}function H(t){if(t.name)return t.name;var n=v.call(j.call(t),/^function\s*([\w$]+)/);return n?n[1]:null}function U(t,n){if(t.indexOf)return t.indexOf(n);for(var o=0,u=t.length;on.maxStringLength){var o=t.length-n.maxStringLength,u='... '+o+' more character'+(o>1?'s':'');return Y(t.slice(0,n.maxStringLength),n)+u}return _(t.replace(/(['\\])/g,'\\$1').replace(/[\x00-\x1f]/g,Z),'single',n)}function Z(t){var n=t.charCodeAt(0),o={8:'b',9:'t',10:'n',12:'f',13:'r'}[n];return o?'\\'+o:'\\x'+(n<16?'0':'')+n.toString(16).toUpperCase()}function tt(t){return'Object('+t+')'}function et(t){return t+' { ? }'}function nt(t,n,o,u){return t+' ('+n+') {'+(u?it(o,u):o.join(', '))+'}'}function rt(t){for(var n=0;n=0)return!1;return!0}function ot(t,n){var o;if('\t'===t.indent)o='\t';else{if(!('number'==typeof t.indent&&t.indent>0))return null;o=Array(t.indent+1).join(' ')}return{base:o,prev:Array(n+1).join(o)}}function it(t,n){if(0===t.length)return'';var o='\n'+n.prev+n.base;return o+t.join(','+o)+'\n'+n.prev}function ut(t,n){var o=I(t),u=[];if(o){u.length=t.length;for(var c=0;c1;){var o=t.pop(),c=o.obj[o.prop];if(n(c)){for(var u=[],f=0;f=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122||p===t.RFC1738&&(40===y||41===y)?l+=s.charAt(b):y<128?l+=c[y]:y<2048?l+=c[192|y>>6]+c[128|63&y]:y<55296||y>=57344?l+=c[224|y>>12]+c[128|y>>6&63]+c[128|63&y]:(b+=1,y=65536+((1023&y)<<10|1023&s.charCodeAt(b)),l+=c[240|y>>18]+c[128|y>>12&63]+c[128|y>>6&63]+c[128|63&y])}return l},isBuffer:function(t){return!(!t||'object'!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isRegExp:function(t){return'[object RegExp]'===Object.prototype.toString.call(t)},maybeMap:function(t,o){if(n(t)){for(var c=[],u=0;u-1?t.split(','):t},p=function(p,u){var f,y={},h=u.ignoreQueryPrefix?p.replace(/^\?/,''):p,b=u.parameterLimit===1/0?void 0:u.parameterLimit,w=h.split(u.delimiter,b),O=-1,v=u.charset;if(u.charsetSentinel)for(f=0;f-1&&(x=n(x)?[x]:x),o.call(y,j)?y[j]=t.combine(y[j],x):y[j]=x}return y},u=function(t,o,n,l){for(var c=l?o:s(o,n),p=t.length-1;p>=0;--p){var u,f=t[p];if('[]'===f&&n.parseArrays)u=[].concat(c);else{u=n.plainObjects?Object.create(null):{};var y='['===f.charAt(0)&&']'===f.charAt(f.length-1)?f.slice(1,-1):f,h=parseInt(y,10);n.parseArrays||''!==y?!isNaN(h)&&f!==y&&String(h)===y&&h>=0&&n.parseArrays&&h<=n.arrayLimit?(u=[])[h]=c:u[y]=c:u={0:c}}c=u}return c},f=function(t,n,l,c){if(t){var s=l.allowDots?t.replace(/\.([^.[]+)/g,'[$1]'):t,p=/(\[[^[\]]*])/g,f=l.depth>0&&/(\[[^[\]]*])/.exec(s),y=f?s.slice(0,f.index):s,h=[];if(y){if(!l.plainObjects&&o.call(Object.prototype,y)&&!l.allowPrototypes)return;h.push(y)}for(var b=0;l.depth>0&&null!==(f=p.exec(s))&&b=u.height-40&&(G((0,w.markChapterReadAction)(R,A)),n=(0,E.parseChapterNumber)(W),Z&&n&&Number.isInteger(n)&&n>Z.my_list_status.num_chapters_read&&G((0,S.updateChaptersRead)(Z.id,Q.access_token,n)))},showsVerticalScrollIndicator:!1},ue?l.default.createElement(c.View,{style:{flex:1,justifyContent:"center"}},l.default.createElement(I.default,{icon:"(-_-;)\u30fb\u30fb\u30fb",description:ue,style:{color:(0,C.errorTextColor)(q.theme)}},l.default.createElement(f.IconButton,{icon:"reload",size:25,style:{margin:0,marginTop:16},color:(0,C.errorTextColor)(q.theme),onPress:function(){Pe(R),le(!0),se()}}),l.default.createElement(c.Text,{style:{color:(0,C.errorTextColor)(q.theme)}},"Retry"))):oe?l.default.createElement(c.View,{style:{flex:1,justifyContent:"center"}},l.default.createElement(c.ActivityIndicator,{size:50,color:L.colorAccent})):l.default.createElement(c.View,{style:{flex:1}},Ee.length>0&&Ee.map(function(t,n){return l.default.createElement(O.default,{source:{uri:t}})}),l.default.createElement(c.Text,{style:Oe,onLayout:function(){c.StatusBar.setHidden(!0),(0,_.hideNavigationBar)(),Y&&ye&&(Y.percentage<100&&H.getNode().scrollTo({x:0,y:Y.position,animated:!1}),ve(!1))},selectable:be},te.chapterText.trim().replace(/\[https.*?\]/g,""))),l.default.createElement(f.Portal,null,l.default.createElement(P.default,{theme:L,reader:q,dispatch:G,bottomSheetRef:U,selectText:be,setSelectText:Ce,showScrollPercentage:J}))),scrollPercentageVisible&&l.default.createElement(c.Text,{style:[N.scrollPercentage,{color:(0,C.readerTextColor)(q.theme)}]},he+"%"))};e.default=B;var N=c.StyleSheet.create({screenContainer:{flexGrow:1,paddingVertical:10},scrollPercentage:{position:"absolute",bottom:12,alignSelf:"center",fontFamily:"noto-sans",fontWeight:"bold",zIndex:1}})},1111,[1,106,19,6,10,771,428,495,1112,933,841,842,797,1090,1018,1115,798,1116,800,1117,1118,980,1121,1122]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"withCollapsibleHeader",{enumerable:!0,get:function(){return l.withCollapsibleHeader}}),e.CollapsibleHeaderSectionList=e.CollapsibleHeaderFlatList=e.CollapsibleHeaderScrollView=void 0;var l=r(d[0]),t=r(d[1]),o=(0,l.withCollapsibleHeader)(t.ScrollView);e.CollapsibleHeaderScrollView=o;var s=(0,l.withCollapsibleHeader)(t.FlatList);e.CollapsibleHeaderFlatList=s;var b=(0,l.withCollapsibleHeader)(t.SectionList);e.CollapsibleHeaderSectionList=b},1112,[1113,10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withCollapsibleHeader=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=t(r(d[6])),p=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=v(n);if(o&&o.has(t))return o.get(t);var l={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var c=s?Object.getOwnPropertyDescriptor(t,u):null;c&&(c.get||c.set)?Object.defineProperty(l,u,c):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[7])),f=t(r(d[8])),h=r(d[9]);function v(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(v=function(t){return t?o:n})(t)}function H(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var S=this&&this.__rest||function(t,n){var o={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&n.indexOf(l)<0&&(o[l]=t[l]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(l=Object.getOwnPropertySymbols(t);sc&&n.clampedScrollValue>(c-l)/2?n.offsetValue+c:n.offsetValue-c),u(t)},n.interpolatedHeaderTranslation=function(t,o){var l=n.props,s=l.headerHeight,u=l.statusBarHeight;return n.clampedScroll.interpolate({inputRange:[0,s-u],outputRange:[t,o],extrapolate:'clamp'})},n.animatedComponent=function(){return n.wrappedComponent.current},n.getNode=function(){return n.wrappedComponent.current.getNode()},n.showHeader=function(t){n.moveHeader(n.offsetValue-n.props.headerHeight,!w.isAnimationConfig(t)||t.animated)},n.hideHeader=function(t){var o=n.props.headerHeight;n.moveHeader(n.offsetValue+(n.scrollValue>o?o:n.scrollValue),!w.isAnimationConfig(t)||t.animated)};var l=t.headerHeight,s=t.statusBarHeight;return n.initAnimations(l,s),n}return(0,l.default)(w,[{key:"initAnimations",value:function(t,n){var o=this;this.scrollAnim.addListener(function(l){var s=l.value,u=s-o.scrollValue;o.scrollValue=s,o.clampedScrollValue=Math.min(Math.max(o.clampedScrollValue+u,0),t-n)}),this.offsetAnim.addListener(function(t){var n=t.value;o.offsetValue=n}),this.clampedScroll=h.Animated.diffClamp(h.Animated.add(this.scrollAnim.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolateLeft:'clamp'}),this.offsetAnim),0,t-n),this.headerTranslation=this.clampedScroll.interpolate({inputRange:[0,t-n],outputRange:[0,-(t-n)],extrapolate:'clamp'}),this.currentHeaderHeight=t,this.currentStatusBarHeight=n}},{key:"cleanupAnimations",value:function(){this.scrollAnim.removeAllListeners(),this.offsetAnim.removeAllListeners(),clearTimeout(this.scrollEndTimer),this.headerSnap&&this.headerSnap.stop()}},{key:"resetAnimations",value:function(t,n){this.currentHeaderHeight===t&&this.currentStatusBarHeight===n||(this.cleanupAnimations(),this.initAnimations(t,n))}},{key:"componentWillUnmount",value:function(){this.cleanupAnimations()}},{key:"render",value:function(){var t=this.props,o=t.statusBarHeight,l=t.CollapsibleHeaderComponent,s=t.contentContainerStyle,u=t.headerHeight,c=t.onScroll,f=t.headerContainerBackgroundColor,H=t.clipHeader,y=S(t,["statusBarHeight","CollapsibleHeaderComponent","contentContainerStyle","headerHeight","onScroll","headerContainerBackgroundColor","clipHeader"]);this.resetAnimations(u,o);var C={interpolatedHeaderTranslation:this.interpolatedHeaderTranslation,showHeader:this.showHeader,hideHeader:this.hideHeader},b=l,w=A(u,o,f,H);return p.createElement(h.View,{style:w.fill},p.createElement(v,(0,n.default)({bounces:!1,overScrollMode:'never',scrollEventThrottle:1},y,{ref:this.wrappedComponent,contentContainerStyle:[s,w.container],onMomentumScrollBegin:this.onMomentumScrollBegin,onMomentumScrollEnd:this.onMomentumScrollEnd,onScrollEndDrag:this.onScrollEndDrag,onScroll:h.Animated.event([{nativeEvent:{contentOffset:{y:this.scrollAnim}}}],{useNativeDriver:!0,listener:c})})),p.createElement(h.Animated.View,{style:[w.header,[{transform:[{translateY:this.headerTranslation}]}]]},p.isValidElement(b)?b:p.createElement(b,C)))}},{key:"moveHeader",value:function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.headerSnap&&this.headerSnap.stop(),n?(this.headerSnap=h.Animated.timing(this.offsetAnim,{toValue:t,duration:this.props.headerAnimationDuration,useNativeDriver:!0}),this.headerSnap.start()):this.offsetAnim.setValue(t)}}],[{key:"isAnimationConfig",value:function(t){return t&&void 0!==t.animated}}]),w})(p.Component)).defaultProps={statusBarHeight:0,disableHeaderMomentum:!1,headerMomentumDuration:350,headerContainerBackgroundColor:'white'},f};var A=(0,f.default)(function(t,n,o,l){return h.StyleSheet.create({fill:{flex:1,overflow:l?'hidden':void 0},header:{position:'absolute',top:0,left:0,right:0,height:t,paddingTop:n,backgroundColor:o},container:{paddingTop:t}})})},1113,[1,9,31,32,42,44,41,6,1114,10]); +__d(function(g,r,i,a,m,e,d){function t(t,n,c,o){var u,s=null==(u=o)||'number'==typeof u||'boolean'==typeof u?o:c(o),h=n.get(s);return void 0===h&&(h=t.call(this,o),n.set(s,h)),h}function n(t,n,c){var o=Array.prototype.slice.call(arguments,3),u=c(o),s=n.get(u);return void 0===s&&(s=t.apply(this,o),n.set(u,s)),s}function c(t,n,c,o,u){return c.bind(n,t,o,u)}function o(o,u){return c(o,this,1===o.length?t:n,u.cache.create(),u.serializer)}function u(){return JSON.stringify(arguments)}function s(){this.cache=Object.create(null)}s.prototype.has=function(t){return t in this.cache},s.prototype.get=function(t){return this.cache[t]},s.prototype.set=function(t,n){this.cache[t]=n};var h={create:function(){return new s}};m.exports=function(t,n){var c=n&&n.cache?n.cache:h,s=n&&n.serializer?n.serializer:u;return(n&&n.strategy?n.strategy:o)(t,{cache:c,serializer:s})},m.exports.strategies={variadic:function(t,o){return c(t,this,n,o.cache.create(),o.serializer)},monadic:function(n,o){return c(n,this,t,o.cache.create(),o.serializer)}}},1114,[]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.errorTextColor=e.readerLineHeight=e.readerTextColor=e.readerBackground=void 0;e.readerBackground=function(n){var o;return null!=(o={1:"#000000",2:"#FFFFFF",3:"#F4ECD8",4:"#444444"}[n])?o:"#FFFFFF"};e.readerTextColor=function(n){return 1===n?"rgba(255,255,255,0.7)":4===n?"#FFFFFF":"#000000"};e.readerLineHeight=function(n,o){var F=n*o;return F=Math.round(F)};e.errorTextColor=function(n){return 1===n?"rgba(255,255,255,0.7)":"rgba(0,0,0,0.54)"}},1115,[]); +__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.saveScrollPosition=void 0;var o=n(r(d[1])),t=r(d[2]);e.saveScrollPosition=function(n,l,c,s){return function(u){return o.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:u({type:t.SAVE_SCROLL_POSITION,payload:{position:n,percentage:l,chapterId:c,novelId:s}});case 1:case"end":return o.stop()}},null,null,null,Promise)}}},1116,[1,106,935]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=p(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var f=c?Object.getOwnPropertyDescriptor(t,u):null;f&&(f.get||f.set)?Object.defineProperty(l,u,f):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[3])),c=r(d[4]),u=r(d[5]);function p(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(p=function(t){return t?o:n})(t)}var f=function(t){var p=t.navigation,f=t.sourceId,s=t.novelId,F=t.novelName,h=t.novelUrl,v=t.chapterId,b=t.chapterName,y=(t.theme,t.readerSheetRef),P=(0,l.useState)({}),I=(0,o.default)(P,2),A=I[0],w=I[1],N=(0,l.useState)({}),O=(0,o.default)(N,2),j=O[0],E=O[1];(0,l.useEffect)(function(){var t,o;n.default.async(function(l){for(;;)switch(l.prev=l.next){case 0:return l.next=2,n.default.awrap((0,u.getNextChapterFromDB)(s,v));case 2:return t=l.sent,l.next=5,n.default.awrap((0,u.getPrevChapterFromDB)(s,v));case 5:o=l.sent,w(t),E(o);case 8:case"end":return l.stop()}},null,null,null,Promise)},[]);return l.default.createElement(c.Appbar.Header,{style:{backgroundColor:"transparent",elevation:0}},l.default.createElement(c.Appbar.BackAction,{onPress:function(){return p.goBack()},color:"#FFFFFF",size:26,style:{marginRight:0}}),l.default.createElement(c.Appbar.Content,{title:F,titleStyle:{color:"#FFFFFF"},subtitle:b,subtitleStyle:{color:"rgba(255, 255, 255, 0.7)"}}),l.default.createElement(c.Appbar.Action,{icon:"chevron-left",size:26,disabled:!j,onPress:function(){return p.replace("Chapter",{chapterUrl:j.chapterUrl,chapterId:j.chapterId,sourceId:f,novelUrl:h,novelId:s,chapterName:j.chapterName,novelName:F})},color:"#FFFFFF"}),l.default.createElement(c.Appbar.Action,{icon:"chevron-right",size:26,disabled:!A,onPress:function(){return p.replace("Chapter",{chapterUrl:A.chapterUrl,sourceId:f,novelUrl:h,novelId:s,chapterId:A.chapterId,chapterName:A.chapterName,novelName:F})},color:"#FFFFFF"}),l.default.createElement(c.Appbar.Action,{icon:"dots-vertical",size:26,onPress:function(){return y.current.show()},color:"#FFFFFF"}))};e.default=f},1117,[1,106,19,6,495,933]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=y(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var s=c?Object.getOwnPropertyDescriptor(t,u):null;s&&(s.get||s.set)?Object.defineProperty(l,u,s):l[u]=t[u]}l.default=t,o&&o.set(t,l);return l})(r(d[2])),l=r(d[3]),c=r(d[4]),u=t(r(d[5])),s=t(r(d[6])),f=r(d[7]),h=r(d[8]),p=t(r(d[9])),F=r(d[10]);function y(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(y=function(t){return t?o:n})(t)}var b=function(t){var y=t.theme,b=t.reader,E=t.dispatch,R=t.bottomSheetRef,T=t.selectText,C=t.setSelectText,S=t.showScrollPercentage,v=(0,o.useState)(!1),z=(0,n.default)(v,2),H=z[0],k=z[1],x=function(t){var n=t.title;return o.default.createElement(l.Text,{style:w.title},n)};return o.default.createElement(s.default,{ref:R,draggableRange:{top:450,bottom:0},snappingPoints:[0,450],showBackdrop:!0,backdropOpacity:0},o.default.createElement(l.View,{style:w.contentContainer},o.default.createElement(p.default,{theme:y}),o.default.createElement(l.View,{style:w.readerSettingsContainer},o.default.createElement(x,{title:"Text Size"}),o.default.createElement(u.default,{style:{width:l.Dimensions.get("window").width,height:40},value:b.textSize,minimumValue:12,maximumValue:20,step:2,minimumTrackTintColor:y.colorAccent,maximumTrackTintColor:"#000000",thumbTintColor:y.colorAccent,onValueChange:function(t){return E((0,h.setReaderSettings)("textSize",t))}}),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16}},o.default.createElement(x,{title:"Reader Theme"}),o.default.createElement(F.Row,null,o.default.createElement(c.ToggleButton.Row,{onValueChange:function(t){E((0,h.setReaderSettings)("theme",null!=t?t:b.theme))},value:b.theme},o.default.createElement(c.ToggleButton,{icon:1===b.theme&&"check",color:"#FFFFFF",value:1,style:{backgroundColor:"#000000",marginHorizontal:10,borderRadius:50,borderTopRightRadius:50,borderBottomRightRadius:50}}),o.default.createElement(c.ToggleButton,{icon:4===b.theme&&"check",color:"#FFFFFF",value:4,style:{backgroundColor:"#444444",marginHorizontal:10,borderWidth:0,borderRadius:50,borderTopRightRadius:50,borderBottomRightRadius:50}}),o.default.createElement(c.ToggleButton,{icon:2===b.theme&&"check",color:"#000000",value:2,style:{backgroundColor:"#FFFFFF",marginHorizontal:10,borderRadius:50}}),o.default.createElement(c.ToggleButton,{icon:3===b.theme&&"check",color:"#000000",value:3,style:{backgroundColor:"#F4ECD8",marginHorizontal:10,borderRadius:50,borderTopLeftRadius:50,borderBottomLeftRadius:50}})))),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16,marginTop:16}},o.default.createElement(x,{title:"Text Align"}),o.default.createElement(F.Row,null,o.default.createElement(c.ToggleButton.Row,{onValueChange:function(t){return E((0,h.setReaderSettings)("textAlign",null!=t?t:b.textAlign))},value:b.textAlign},o.default.createElement(c.ToggleButton,{icon:"format-align-left",color:"left"===b.textAlign?y.colorAccent:"#FFFFFF",value:"left",style:{backgroundColor:"transparent",marginHorizontal:10,borderWidth:0,borderTopRightRadius:4,borderBottomRightRadius:4}}),o.default.createElement(c.ToggleButton,{icon:"format-align-justify",color:"justify"===b.textAlign?y.colorAccent:"#FFFFFF",value:"justify",style:{backgroundColor:"transparent",marginHorizontal:10,borderWidth:0,borderRadius:4}}),o.default.createElement(c.ToggleButton,{icon:"format-align-right",color:"right"===b.textAlign?y.colorAccent:"#FFFFFF",value:"right",style:{backgroundColor:"transparent",marginHorizontal:10,borderWidth:0,borderTopLeftRadius:4,borderBottomLeftRadius:4}})))),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16,marginTop:16}},o.default.createElement(x,{title:"Padding"}),o.default.createElement(F.Row,null,o.default.createElement(c.IconButton,{icon:"minus",color:y.colorAccent,size:26,disabled:b.padding<=0,onPress:function(){return E((0,h.setReaderSettings)("padding",b.padding-1))},style:{marginVertical:0}}),o.default.createElement(l.Text,{style:{color:"#FFFFFF",paddingHorizontal:24}},b.padding+"%"),o.default.createElement(c.IconButton,{icon:"plus",color:y.colorAccent,size:26,disabled:b.padding>=10,onPress:function(){return E((0,h.setReaderSettings)("padding",b.padding+1))},style:{marginVertical:0}}))),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16,marginTop:16}},o.default.createElement(x,{title:"Line Height"}),o.default.createElement(F.Row,null,o.default.createElement(c.IconButton,{icon:"minus",color:y.colorAccent,size:26,disabled:b.lineHeight<=1.3,onPress:function(){return E((0,h.setReaderSettings)("lineHeight",b.lineHeight-.1))},style:{marginVertical:0}}),o.default.createElement(l.Text,{style:{color:"#FFFFFF",paddingHorizontal:24}},Math.round(10*b.lineHeight)/10+"%"),o.default.createElement(c.IconButton,{icon:"plus",color:y.colorAccent,size:26,disabled:b.lineHeight>=2,onPress:function(){return E((0,h.setReaderSettings)("lineHeight",b.lineHeight+.1))},style:{marginVertical:0}}))),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16,marginTop:16}},o.default.createElement(x,{title:"Font Style"}),o.default.createElement(c.Menu,{visible:H,onDismiss:function(){return k(!1)},contentStyle:{backgroundColor:y.menuColor},anchor:o.default.createElement(l.Text,{onPress:function(){return k(!0)},style:{color:"white",paddingHorizontal:16,fontSize:16,fontFamily:b.fontFamily}},f.fonts.find(function(t){return t.fontFamily===b.fontFamily}).name||"Default")},f.fonts.map(function(t){return o.default.createElement(c.Menu.Item,{key:t.fontFamily,onPress:function(){return E((0,h.setReaderSettings)("fontFamily",t.fontFamily))},icon:t.fontFamily===b.fontFamily&&"check",title:t.name,style:{backgroundColor:y.menuColor},titleStyle:{color:y.textColorPrimary}})}))),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16,marginTop:16}},o.default.createElement(x,{title:"Show Progress Percentage"}),o.default.createElement(c.Switch,{value:S,onValueChange:function(){return E(setAppSettings("showScrollPercentage",!S))},color:y.colorAccent})),o.default.createElement(F.Row,{style:{justifyContent:"space-between",width:"100%",paddingHorizontal:16,marginTop:16}},o.default.createElement(l.View,null,o.default.createElement(x,{title:"Select Text "}),o.default.createElement(l.Text,{style:{fontSize:14,color:"white"}},"(Justify does not work with selectable text)")),o.default.createElement(c.Switch,{value:T,onValueChange:C,color:y.colorAccent})))))};e.default=b;var w=l.StyleSheet.create({contentContainer:{flex:1,borderTopLeftRadius:8,borderTopRightRadius:8,backgroundColor:"rgba(0,0,0,0.7)"},readerSettingsContainer:{flex:1,alignItems:"center",paddingTop:30},title:{color:"#FFFFFF",fontWeight:"bold"}})},1118,[1,19,6,10,495,1119,1002,1015,972,1087,1020]); +__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n,l=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),s=r(d[4]),S=t(r(d[5])),f=o.default.forwardRef(function(t,f){var v=s.StyleSheet.compose(n.slider,t.style),c=t.onValueChange,h=t.onSlidingStart,C=t.onSlidingComplete,b=(0,u.default)(t,["onValueChange","onSlidingStart","onSlidingComplete"]),p=c?function(t){var n=!0;'android'===s.Platform.OS&&(n=null!=t.nativeEvent.fromUser&&t.nativeEvent.fromUser),n&&c(t.nativeEvent.value)}:null,R=p,y=h?function(t){h(t.nativeEvent.value)}:null,E=C?function(t){C(t.nativeEvent.value)}:null;return o.default.createElement(S.default,(0,l.default)({},b,{thumbImage:'web'===s.Platform.OS?t.thumbImage:s.Image.resolveAssetSource(t.thumbImage),ref:f,style:v,onChange:R,onRNCSliderSlidingStart:y,onRNCSliderSlidingComplete:E,onRNCSliderValueChange:p,enabled:!t.disabled,onStartShouldSetResponder:function(){return!0},onResponderTerminationRequest:function(){return!1},__source:{fileName:"/Users/michalchudziak/Projects/react-native/react-native-slider/src/js/Slider.js",lineNumber:270}}))});f.defaultProps={disabled:!1,value:0,minimumValue:0,maximumValue:1,step:0,inverted:!1},n='ios'===s.Platform.OS?s.StyleSheet.create({slider:{height:40}}):s.StyleSheet.create({slider:{}});var v=f;e.default=v},1119,[1,9,60,6,10,1120]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).requireNativeComponent)('RNCSlider');e.default=t},1120,[10]); +__d(function(g,r,i,a,m,e,d){"use strict";var t,o=this&&this.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])},function(o,n){function s(){this.constructor=o}t(o,n),o.prototype=null===n?Object.create(n):(s.prototype=n.prototype,new s)}),n=this&&this.__assign||Object.assign||function(t){for(var o,n=1,s=arguments.length;n0&&void 0!==arguments[0]?arguments[0]:String,v=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if('android'===o.Platform.OS){var h=!!v;n.changeNavigationBarColor(t,h,l)}};e.hideNavigationBar=function(){return'android'===o.Platform.OS&&n.hideNavigationBar()};e.showNavigationBar=function(){if('android'!==o.Platform.OS)return!1;n.showNavigationBar()}},1123,[10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=b(r(d[3])),c=r(d[4]),l=b(r(d[5])),s=t(r(d[6])),f=(t(r(d[7])),r(d[8])),p=r(d[9]),v=t(r(d[10])),h=r(d[11]),y=t(r(d[12]));function w(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(w=function(t){return t?o:n})(t)}function b(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=w(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var s=c?Object.getOwnPropertyDescriptor(t,l):null;s&&(s.get||s.set)?Object.defineProperty(u,l,s):u[l]=t[l]}return u.default=t,o&&o.set(t,u),u}var x=function(t){var w=t.navigation,b=t.route.params,x=b.sourceId,S=b.sourceName,j=b.sourceUrl,E=(0,p.useTheme)(),O=(0,p.useLibrary)(),k=(0,u.useState)(!0),C=(0,o.default)(k,2),I=C[0],M=C[1],_=(0,u.useState)(),N=(0,o.default)(_,2),T=N[0],U=N[1],A=(0,u.useState)(),W=(0,o.default)(A,2),B=W[0],D=W[1],L=(0,u.useState)(""),V=(0,o.default)(L,2),R=V[0],z=V[1],q=function(){var t,o,u;return n.default.async(function(c){for(;;)switch(c.prev=c.next){case 0:return c.prev=0,t=1===x?"https://lnreader-extensions.vercel.app/api/1/novels/1/?o=rating":"https://lnreader-extensions.vercel.app/api/"+x+"/novels/",c.next=4,n.default.awrap(fetch(t));case 4:return o=c.sent,c.next=7,n.default.awrap(o.json());case 7:u=c.sent,U(u),M(!1),c.next=18;break;case 12:c.prev=12,c.t0=c.catch(0),D(c.t0.message),U([]),M(!1),(0,h.showToast)(c.t0.message);case 18:case"end":return c.stop()}},null,null,[[0,12]],Promise)};(0,u.useEffect)(function(){q()},[]);return u.default.createElement(c.View,{style:[P.container,{backgroundColor:E.colorPrimaryDark}]},u.default.createElement(f.Searchbar,{theme:E,placeholder:"Search "+S,left:"arrow-left",onPressLeft:function(){return w.goBack()},searchText:R,onChangeText:function(t){return z(t)},onSubmitEditing:function(){M(!0),fetch(1===x?"https://lnreader-extensions.vercel.app/api/1/search/?s="+R+"&?o=rating":"https://lnreader-extensions.vercel.app/api/"+x+"/search/?s="+R).then(function(t){return t.json()}).then(function(t){U(t),M(!1)}).catch(function(t){U([]),M(!1),(0,h.showToast)(t.message)})},clearSearchbar:function(){q(),M(!0),z("")},right:"earth",displayMenu:!0,onPressRight:function(){return l.openBrowserAsync(j)}}),I?u.default.createElement(c.View,{style:{flex:1,justifyContent:"center"}},u.default.createElement(c.ActivityIndicator,{size:60,color:E.colorAccent})):u.default.createElement(v.default,{data:T,renderItem:function(t){var n,o,c=t.item;return u.default.createElement(s.default,{item:c,onPress:function(){return w.navigate("Novel",{novelName:c.novelName,novelCover:c.novelCover,novelUrl:c.novelUrl,sourceId:c.extensionId})},libraryStatus:(n=c.extensionId,o=c.novelUrl,O.some(function(t){return t.novelUrl===o&&t.sourceId===n}))})},ListEmptyComponent:u.default.createElement(y.default,{error:B||"No results found",onRetry:function(){q(),M(!0),D()},openWebView:function(){return l.openBrowserAsync(j)},theme:E})}))};e.default=x;var P=c.StyleSheet.create({container:{flex:1},contentContainer:{flex:1}})},1124,[1,106,19,6,10,1030,975,980,796,797,973,842,1125]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),l=r(d[2]),n=r(d[3]),c=(r(d[4]),t(r(d[5]))),u=function(t){var u=t.theme,f=t.onRetry,y=t.error;t.openWebView;return o.default.createElement(l.View,{style:{flex:1,justifyContent:"center"}},o.default.createElement(c.default,{icon:"(\uff1b\uffe3\u0414\uffe3)",description:y,style:{color:u.textColorSecondary}},o.default.createElement(n.IconButton,{icon:"reload",size:25,style:{margin:0,marginTop:24},color:u.textColorSecondary,onPress:f}),o.default.createElement(l.Text,{style:{color:u.textColorPrimary}},"Retry")))};e.default=u},1125,[1,6,10,495,1020,980]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=(function(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=E(n);if(o&&o.has(t))return o.get(t);var u={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in t)if("default"!==l&&Object.prototype.hasOwnProperty.call(t,l)){var f=c?Object.getOwnPropertyDescriptor(t,l):null;f&&(f.get||f.set)?Object.defineProperty(u,l,f):u[l]=t[l]}u.default=t,o&&o.set(t,u);return u})(r(d[3])),c=r(d[4]),l=r(d[5]),f=r(d[6]),s=r(d[7]),p=(t(r(d[8])),t(r(d[9])),t(r(d[10]))),y=t(r(d[11])),v=r(d[12]),h=r(d[13]);function E(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(E=function(t){return t?o:n})(t)}var S=function(t){var E=t.route,S=t.navigation,x=(0,l.useTheme)(),w="";E.params&&(w=E.params.novelName);var P=(0,u.useState)(!1),L=(0,o.default)(P,2),O=L[0],j=L[1],I=(0,u.useState)(w),k=(0,o.default)(I,2),C=k[0],_=k[1],N=(0,u.useState)(""),T=(0,o.default)(N,2),D=T[0],M=T[1],F=(0,f.useSelector)(function(t){return t.sourceReducer}),V=F.sources,A=F.pinned,W=(0,u.useState)(0),z=(0,o.default)(W,2),B=z[0],G=z[1],R=(0,l.useLibrary)(),q=V.filter(function(t){return-1!==A.indexOf(t.sourceId)});(0,u.useEffect)(function(){w&&H()},[]);var H=function(){M(""),q.map(function(t,o){return setTimeout(function(){var o;j(!0),fetch((o=t.sourceId,1===o?"https://lnreader-extensions.vercel.app/api/1/search/?s="+C+"&?o=rating":"https://lnreader-extensions.vercel.app/api/"+o+"/search/?s="+C)).then(function(t){return t.json()}).then(function(o){M(function(u){return[].concat((0,n.default)(u),[{sourceId:t.sourceId,sourceName:t.sourceName,sourceLanguage:t.sourceLanguage,novels:o}])}),j(!1)}).catch(function(o){(0,h.showToast)(o.message),M(function(o){return[].concat((0,n.default)(o),[{sourceId:t.sourceId,sourceName:t.sourceName,sourceLanguage:t.sourceLanguage,novels:[]}])}),j(!1)}).finally(function(){return G(function(t){return t+1/q.length})})},1e3*o)})};return u.default.createElement(c.View,{style:[b.container,{backgroundColor:x.colorPrimaryDark}]},u.default.createElement(s.Searchbar,{theme:x,placeholder:"Global Search",left:"arrow-left",onPressLeft:function(){return S.goBack()},searchText:C,onChangeText:function(t){return _(t)},onSubmitEditing:H,clearSearchbar:function(){_("")}}),B<1&&B>0&&A&&u.default.createElement(v.ProgressBar,{color:B>.9?x.colorPrimaryDark:x.colorAccent,progress:B}),u.default.createElement(c.FlatList,{contentContainerStyle:{flexGrow:1,padding:4},data:D,keyExtractor:function(t){return t.sourceId.toString()},renderItem:function(t){var n=t.item;return u.default.createElement(u.default.Fragment,null,u.default.createElement(c.View,{style:{padding:8,paddingVertical:16}},u.default.createElement(c.Text,{style:{color:x.textColorPrimary}},n.sourceName),u.default.createElement(c.Text,{style:{color:x.textColorSecondary,fontSize:12}},n.sourceLanguage)),u.default.createElement(y.default,{data:n.novels,theme:x,library:R,navigation:S}))},extraData:A,ListEmptyComponent:u.default.createElement(u.default.Fragment,null,!O&&u.default.createElement(p.default,{icon:"__\u03c6(\uff0e\uff0e)",description:"Search a novel in your pinned sources "+(0===A.length?"(No sources pinned)":"")})),ListFooterComponent:O&&u.default.createElement(c.View,{style:{flex:1,justifyContent:"center",padding:16}},u.default.createElement(c.ActivityIndicator,{size:"large",color:x.colorAccent}))}))};e.default=S;var b=c.StyleSheet.create({container:{flex:1}})},1126,[1,27,19,6,10,797,771,796,975,973,980,1127,495,842]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=r(d[3]),c=t(r(d[4]));function u(t,n){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);n&&(l=l.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o.push.apply(o,l)}return o}function f(t){for(var o=1;o0&&void 0!==arguments[0]?arguments[0]:'auto',l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n();l||(l='light');var o=t;'auto'===t?o='light'===l?'dark':'light':'inverted'===t&&(o='light'===l?'light':'dark');return'light'===o?'light-content':'dark-content'};var t=r(d[0]);function n(){return t.Appearance?t.Appearance.getColorScheme():'light'}},1151,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){t.StatusBar.setTranslucent(n)};var t=r(d[0])},1152,[10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var c=t.style,f=t.animated,s=t.hidden,b=t.backgroundColor,v=t.translucent,_=null==v||v,y=(0,o.default)(),h=(0,u.default)(c,y),k=b;_&&!k&&(k='transparent');return n.default.createElement(l.StatusBar,{translucent:_,barStyle:h,backgroundColor:k,animated:f,hidden:s})};var n=t(r(d[1])),l=r(d[2]),u=t(r(d[3])),o=t(r(d[4]))},1153,[1,6,10,1151,1154]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=r(d[0]),l=null!=u.useColorScheme?u.useColorScheme:function(){return'light'};e.default=l},1154,[10]); +__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),n=t.NativeModules.RNImmersiveMode,o=function(){if('android'===t.Platform.OS&&!n)throw Error('RNImmersiveMode is not properly linked');return'android'===t.Platform.OS&&n},s={fullLayout:function(t){o()&&n.fullLayout(t)},setBarMode:function(t){o()&&n.setBarMode(t)},setBarStyle:function(t){o()&&n.setBarStyle(t)},setBarTranslucent:function(t){o()&&n.setBarTranslucent(t)},setBarColor:function(t){o()&&('string'==typeof t&&(9===t.length?t='#'+t.substr(7,2)+t.substr(1,6):4===t.length&&(t='#'+t[1]+t[1]+t[2]+t[2]+t[3]+t[3])),n.setBarColor(t))},setBarDefaultColor:function(){o()&&n.setBarColor(null)},addEventListener:function(s){if(o()){if('function'!=typeof s)return;return n.setOnSystemUiVisibilityChangeListener(),t.DeviceEventEmitter.addListener(n.OnSystemUiVisibilityChange,function(t){return s(t)})}}};e.default=s},1155,[10]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),n=(function(t,o){if(!o&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var n=f(o);if(n&&n.has(t))return n.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var p=c?Object.getOwnPropertyDescriptor(t,u):null;p&&(p.get||p.set)?Object.defineProperty(l,u,p):l[u]=t[u]}l.default=t,n&&n.set(t,l);return l})(r(d[2])),l=r(d[3]),c=r(d[4]),u=r(d[5]);function f(t){if("function"!=typeof WeakMap)return null;var o=new WeakMap,n=new WeakMap;return(f=function(t){return t?n:o})(t)}var p=function(t){var f=t.dispatch,p=t.accentColorModal,y=t.hideAccentColorModal,v=t.theme,C=(0,n.useState)(v.colorAccent),b=(0,o.default)(C,2),h=b[0],x=b[1],P=(0,n.useState)(),O=(0,o.default)(P,2),S=O[0],M=O[1];return n.default.createElement(c.Portal,null,n.default.createElement(c.Modal,{visible:p,onDismiss:function(){y(),x(),M()},contentContainerStyle:[s.containerStyle,{backgroundColor:v.colorPrimary}]},n.default.createElement(l.Text,{style:[s.dialogTitle,{color:v.textColorPrimary}]},"Hex Color Code"),n.default.createElement(c.TextInput,{value:h,defaultValue:v.colorAccent,onChangeText:function(t){return x(t)},onSubmitEditing:function(){h.match(/^#([0-9a-f]{6}|[0-9a-f]{3})$/i)?(f((0,u.setAccentColor)(h)),y()):M("Enter a valid hex color code")},mode:"outlined",theme:{colors:{primary:v.colorAccent,placeholder:v.textColorHint,text:v.textColorPrimary,background:"transparent"}},underlineColor:v.textColorHint,dense:!0,error:S}),n.default.createElement(l.Text,{style:{color:"#FF0033",paddingTop:8}},S)))};e.default=p;var s=l.StyleSheet.create({containerStyle:{margin:30,padding:20,borderRadius:8},dialogTitle:{fontSize:18,marginBottom:16}})},1156,[1,19,6,10,495,972]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setStatusBarStyle=void 0;var u=r(d[1]),l=r(d[2]),s=t(r(d[3]));e.setStatusBarStyle=function(){var t=(0,l.useTheme)();(0,u.setStatusBarStyle)(1===t.id?"dark":"light"),(0,s.default)(t.colorPrimary)}},1157,[1,1145,797,1122]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.githubUpdateChecker=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=r(d[3]);e.githubUpdateChecker=function(){var t,l,o,c=(0,u.useState)(!0),f=(0,s.default)(c,2),p=f[0],h=f[1],_=(0,u.useState)(),v=(0,s.default)(_,2),b=v[0],w=v[1];if((0,u.useEffect)(function(){var t,s;n.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,n.default.awrap(fetch("https://api.github.com/repos/rajarsheechatterjee/lnreader/releases/latest"));case 2:return t=u.sent,u.next=5,n.default.awrap(t.json());case 5:t=u.sent,s={tag_name:t.tag_name,body:t.body,downloadUrl:t.assets[0].browser_download_url},w(s),h(!1);case 9:case"end":return u.stop()}},null,null,null,Promise)},[]),!p)return{latestRelease:b,isNewVersion:(t=b.tag_name,l="v1.0.20",o=/[^\\d.]/,t.replace(o,"")!==(l=l.replace(o,"")))}}},1158,[1,106,19,6]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=y(r(d[2])),l=r(d[3]),c=r(d[4]),u=y(r(d[5])),f=r(d[6]);function s(t){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(s=function(t){return t?o:n})(t)}function y(t,n){if(!n&&t&&t.__esModule)return t;if(null===t||"object"!=typeof t&&"function"!=typeof t)return{default:t};var o=s(n);if(o&&o.has(t))return o.get(t);var l={},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var f=c?Object.getOwnPropertyDescriptor(t,u):null;f&&(f.get||f.set)?Object.defineProperty(l,u,f):l[u]=t[u]}return l.default=t,o&&o.set(t,l),l}var p=function(t){var s=t.newVersion,y=(0,o.useState)(!0),p=(0,n.default)(y,2),v=p[0],S=p[1],P=(0,f.useTheme)();return o.default.createElement(c.Portal,null,o.default.createElement(c.Modal,{visible:v,onDismiss:function(){return S(!1)},contentContainerStyle:[b.containerStyle,{backgroundColor:P.colorPrimaryDark}]},o.default.createElement(l.Text,{style:[b.modalHeader,{color:P.textColorPrimary}]},"New update available "+s.tag_name),o.default.createElement(l.Text,{style:{color:P.textColorSecondary,fontSize:16}},s.body),o.default.createElement(l.View,{style:{flexDirection:"row",marginTop:30,justifyContent:"flex-end"}},o.default.createElement(c.Button,{labelStyle:{color:P.colorAccent,letterSpacing:0,textTransform:"none"},theme:{colors:{primary:P.colorAccent}},onPress:function(){return S(!1)}},"Cancel"),o.default.createElement(c.Button,{labelStyle:{color:P.colorAccent,letterSpacing:0,textTransform:"none"},theme:{colors:{primary:P.colorAccent}},onPress:function(){return u.openURL(s.downloadUrl)}},"Install"))))};e.default=p;var b=l.StyleSheet.create({containerStyle:{padding:20,margin:20,borderRadius:6},modalHeader:{fontSize:20,marginBottom:10}})},1159,[1,19,6,10,495,1092,797]); +__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.PersistGate=void 0;var t=(function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,n):{};s.get||s.set?Object.defineProperty(o,n,s):o[n]=t[n]}return o.default=t,o})(r(d[0]));function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(t,o){if(!(t instanceof o))throw new TypeError("Cannot call a class as a function")}function s(t,o){for(var n=0;n createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } + + @Override + public List createNativeModules( + ReactApplicationContext reactContext) { + List modules = new ArrayList<>(); + + modules.add(new FullScreenModule(reactContext)); + + return modules; + } + +} \ No newline at end of file diff --git a/android/app/src/main/java/com/rajarsheechatterjee/LNReader/MainActivity.java b/android/app/src/main/java/com/rajarsheechatterjee/LNReader/MainActivity.java new file mode 100644 index 00000000..eac0f423 --- /dev/null +++ b/android/app/src/main/java/com/rajarsheechatterjee/LNReader/MainActivity.java @@ -0,0 +1,62 @@ +package com.rajarsheechatterjee.LNReader; +import android.content.res.Configuration; +import android.content.Intent; + +import android.os.Bundle; +import android.view.WindowManager; +import android.os.Build; + +import com.facebook.react.ReactActivity; +import com.facebook.react.ReactActivityDelegate; +import com.facebook.react.ReactRootView; +import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView; + +import expo.modules.splashscreen.singletons.SplashScreen; +import expo.modules.splashscreen.SplashScreenImageResizeMode; + + +public class MainActivity extends ReactActivity { + + // Added automatically by Expo Config + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + Intent intent = new Intent("onConfigurationChanged"); + intent.putExtra("newConfig", newConfig); + sendBroadcast(intent); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + // SplashScreen.show(...) has to be called after super.onCreate(...) + // Below line is handled by '@expo/configure-splash-screen' command and it's discouraged to modify it manually + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); + layoutParams.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; + getWindow().setAttributes(layoutParams); + } + super.onCreate(savedInstanceState); + SplashScreen.show(this, SplashScreenImageResizeMode.COVER, ReactRootView.class, false); + + } + + + /** + * Returns the name of the main component registered from JavaScript. + * This is used to schedule rendering of the component. + */ + @Override + protected String getMainComponentName() { + return "main"; + } + + @Override + protected ReactActivityDelegate createReactActivityDelegate() { + return new ReactActivityDelegate(this, getMainComponentName()) { + @Override + protected ReactRootView createRootView() { + return new RNGestureHandlerEnabledRootView(MainActivity.this); + } + }; + } +} diff --git a/android/app/src/main/java/com/rajarsheechatterjee/LNReader/MainApplication.java b/android/app/src/main/java/com/rajarsheechatterjee/LNReader/MainApplication.java new file mode 100644 index 00000000..a6c73317 --- /dev/null +++ b/android/app/src/main/java/com/rajarsheechatterjee/LNReader/MainApplication.java @@ -0,0 +1,132 @@ +package com.rajarsheechatterjee.LNReader; + +import android.app.Application; +import android.content.Context; +import android.net.Uri; + +import com.facebook.react.PackageList; +import com.facebook.react.ReactApplication; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.shell.MainReactPackage; +import com.facebook.soloader.SoLoader; +import com.rajarsheechatterjee.LNReader.generated.BasePackageList; + +import org.unimodules.adapters.react.ReactAdapterPackage; +import org.unimodules.adapters.react.ModuleRegistryAdapter; +import org.unimodules.adapters.react.ReactModuleRegistryProvider; +import org.unimodules.core.interfaces.Package; +import org.unimodules.core.interfaces.SingletonModule; +import expo.modules.constants.ConstantsPackage; +import expo.modules.permissions.PermissionsPackage; +import expo.modules.filesystem.FileSystemPackage; +import expo.modules.updates.UpdatesController; + +import com.facebook.react.bridge.JSIModulePackage; +import com.swmansion.reanimated.ReanimatedJSIModulePackage; + +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.List; +import javax.annotation.Nullable; + +import com.rajarsheechatterjee.LNReader.FullScreenPackage; + + +public class MainApplication extends Application implements ReactApplication { + private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider( + new BasePackageList().getPackageList() + ); + + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { + @Override + public boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + List packages = new PackageList(this).getPackages(); + packages.add(new ModuleRegistryAdapter(mModuleRegistryProvider)); + packages.add(new FullScreenPackage()); + return packages; + } + + @Override + protected String getJSMainModuleName() { + return "index"; + } + + @Override + protected JSIModulePackage getJSIModulePackage() { + return new ReanimatedJSIModulePackage(); + } + + @Override + protected @Nullable String getJSBundleFile() { + if (BuildConfig.DEBUG) { + return super.getJSBundleFile(); + } else { + return UpdatesController.getInstance().getLaunchAssetFile(); + } + } + + @Override + protected @Nullable String getBundleAssetName() { + if (BuildConfig.DEBUG) { + return super.getBundleAssetName(); + } else { + return UpdatesController.getInstance().getBundleAssetName(); + } + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, /* native exopackage */ false); + + if (!BuildConfig.DEBUG) { + UpdatesController.initialize(this); + } + + initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); + } + + /** + * Loads Flipper in React Native templates. Call this in the onCreate method with something like + * initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); + * + * @param context + * @param reactInstanceManager + */ + private static void initializeFlipper( + Context context, ReactInstanceManager reactInstanceManager) { + if (BuildConfig.DEBUG) { + try { + /* + We use reflection here to pick up the class that initializes Flipper, + since Flipper library is not available in release mode + */ + Class aClass = Class.forName("com.rajarsheechatterjee.LNReader.ReactNativeFlipper"); + aClass + .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) + .invoke(null, context, reactInstanceManager); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + } + } +} diff --git a/android/app/src/main/java/com/rajarsheechatterjee/LNReader/generated/BasePackageList.java b/android/app/src/main/java/com/rajarsheechatterjee/LNReader/generated/BasePackageList.java new file mode 100644 index 00000000..9b4855f7 --- /dev/null +++ b/android/app/src/main/java/com/rajarsheechatterjee/LNReader/generated/BasePackageList.java @@ -0,0 +1,30 @@ +package com.rajarsheechatterjee.LNReader.generated; + +import java.util.Arrays; +import java.util.List; +import org.unimodules.core.interfaces.Package; + +public class BasePackageList { + public List getPackageList() { + return Arrays.asList( + new expo.modules.application.ApplicationPackage(), + new expo.modules.backgroundfetch.BackgroundFetchPackage(), + new expo.modules.constants.ConstantsPackage(), + new expo.modules.documentpicker.DocumentPickerPackage(), + new expo.modules.errorrecovery.ErrorRecoveryPackage(), + new expo.modules.filesystem.FileSystemPackage(), + new expo.modules.font.FontLoaderPackage(), + new expo.modules.imageloader.ImageLoaderPackage(), + new expo.modules.keepawake.KeepAwakePackage(), + new expo.modules.lineargradient.LinearGradientPackage(), + new expo.modules.notifications.NotificationsPackage(), + new expo.modules.permissions.PermissionsPackage(), + new expo.modules.sharing.SharingPackage(), + new expo.modules.splashscreen.SplashScreenPackage(), + new expo.modules.sqlite.SQLitePackage(), + new expo.modules.taskManager.TaskManagerPackage(), + new expo.modules.updates.UpdatesPackage(), + new expo.modules.webbrowser.WebBrowserPackage() + ); + } +} diff --git a/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png b/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png new file mode 100644 index 00000000..2e43828c Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png differ diff --git a/android/app/src/main/res/drawable/notification_icon.png b/android/app/src/main/res/drawable/notification_icon.png new file mode 100644 index 00000000..b9cbe0c5 Binary files /dev/null and b/android/app/src/main/res/drawable/notification_icon.png differ diff --git a/android/app/src/main/res/drawable/splashscreen.xml b/android/app/src/main/res/drawable/splashscreen.xml new file mode 100644 index 00000000..9f19c56e --- /dev/null +++ b/android/app/src/main/res/drawable/splashscreen.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..3941bea9 --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..3941bea9 --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 00000000..06b0a64f Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 00000000..06b0a64f Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 00000000..9f66dd6b Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 00000000..336847cb Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 00000000..336847cb Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 00000000..bb91906e Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 00000000..0a022b24 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 00000000..0a022b24 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 00000000..55170a2e Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 00000000..7596221e Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 00000000..7596221e Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 00000000..bc6b2a2f Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 00000000..b3283a0b Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 00000000..b3283a0b Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 00000000..bc1074a1 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..6766f7fb --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,9 @@ + + + #FFFFFF + #000000 + #023c69 + #00000000 + #000000 + #00adb5 + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..1f698d29 --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + LNReader + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..9c3df470 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 00000000..4ff87f3b --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,38 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = "29.0.3" + minSdkVersion = 21 + compileSdkVersion = 30 + targetSdkVersion = 30 + } + repositories { + google() + jcenter() + } + dependencies { + classpath("com.android.tools.build:gradle:4.1.0") + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + mavenLocal() + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url("$rootDir/../node_modules/react-native/android") + } + maven { + // Android JSC is installed from npm + url("$rootDir/../node_modules/jsc-android/dist") + } + + google() + jcenter() + maven { url 'https://www.jitpack.io' } + } +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 00000000..85e31407 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,29 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true + +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true + +# Version of flipper SDK to use with React Native +FLIPPER_VERSION=0.54.0 \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..2c6137b8 Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..80cf08e7 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew new file mode 100644 index 00000000..2fe81a7d --- /dev/null +++ b/android/gradlew @@ -0,0 +1,183 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 00000000..62bd9b9c --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,103 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 00000000..c24a8f0e --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,9 @@ +rootProject.name = 'LNReader' + +apply from: '../node_modules/react-native-unimodules/gradle.groovy' +includeUnimodulesProjects() + +apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); +applyNativeModulesSettingsGradle(settings) + +include ':app' diff --git a/app.json b/app.json new file mode 100644 index 00000000..a71a269f --- /dev/null +++ b/app.json @@ -0,0 +1,46 @@ +{ + "expo": { + "name": "LNReader", + "slug": "LNReader", + "scheme": "lnreader", + "version": "1.0.21", + "orientation": "default", + "icon": "./assets/icon.png", + "splash": { + "image": "./assets/splash.png", + "resizeMode": "cover", + "backgroundColor": "#000000" + }, + "updates": { + "fallbackToCacheTimeout": 0, + "enabled": false + }, + "notification": { + "icon": "./assets/notification.png", + "color": "#00adb5" + }, + "assetBundlePatterns": ["**/*"], + "ios": { + "supportsTablet": true + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/icon.png", + "backgroundColor": "#FFFFFF" + }, + "package": "com.rajarsheechatterjee.LNReader" + }, + "androidStatusBar": { + "barStyle": "light-content", + "backgroundColor": "#00000000", + "translucent": true + }, + "androidNavigationBar": { + "barStyle": "light-content", + "backgroundColor": "#000000" + }, + "web": { + "favicon": "./assets/favicon.png" + } + } +} diff --git a/assets/adaptive-icon.png b/assets/adaptive-icon.png new file mode 100644 index 00000000..03d6f6b6 Binary files /dev/null and b/assets/adaptive-icon.png differ diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 00000000..e75f697b Binary files /dev/null and b/assets/favicon.png differ diff --git a/assets/fonts/ArbutusSlab-Regular.ttf b/assets/fonts/ArbutusSlab-Regular.ttf new file mode 100644 index 00000000..010b97d5 Binary files /dev/null and b/assets/fonts/ArbutusSlab-Regular.ttf differ diff --git a/assets/fonts/Domine-VariableFont_wght.ttf b/assets/fonts/Domine-VariableFont_wght.ttf new file mode 100644 index 00000000..022ebb25 Binary files /dev/null and b/assets/fonts/Domine-VariableFont_wght.ttf differ diff --git a/assets/fonts/Lato-Regular.ttf b/assets/fonts/Lato-Regular.ttf new file mode 100644 index 00000000..33eba8b1 Binary files /dev/null and b/assets/fonts/Lato-Regular.ttf differ diff --git a/assets/fonts/NotoSans-Bold.ttf b/assets/fonts/NotoSans-Bold.ttf new file mode 100644 index 00000000..54ad879b Binary files /dev/null and b/assets/fonts/NotoSans-Bold.ttf differ diff --git a/assets/fonts/NotoSans-Regular.ttf b/assets/fonts/NotoSans-Regular.ttf new file mode 100644 index 00000000..10589e27 Binary files /dev/null and b/assets/fonts/NotoSans-Regular.ttf differ diff --git a/assets/fonts/OpenSans-Regular.ttf b/assets/fonts/OpenSans-Regular.ttf new file mode 100644 index 00000000..29bfd35a Binary files /dev/null and b/assets/fonts/OpenSans-Regular.ttf differ diff --git a/assets/fonts/PTSansNarrow-Bold.ttf b/assets/fonts/PTSansNarrow-Bold.ttf new file mode 100644 index 00000000..30a67b82 Binary files /dev/null and b/assets/fonts/PTSansNarrow-Bold.ttf differ diff --git a/assets/fonts/PTSerif-Regular.ttf b/assets/fonts/PTSerif-Regular.ttf new file mode 100644 index 00000000..24af4785 Binary files /dev/null and b/assets/fonts/PTSerif-Regular.ttf differ diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 00000000..b281eeee Binary files /dev/null and b/assets/icon.png differ diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 00000000..a8e109cb Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/mal.png b/assets/mal.png new file mode 100644 index 00000000..31c8ed07 Binary files /dev/null and b/assets/mal.png differ diff --git a/assets/notification.png b/assets/notification.png new file mode 100644 index 00000000..b9cbe0c5 Binary files /dev/null and b/assets/notification.png differ diff --git a/assets/novelupdates.png b/assets/novelupdates.png new file mode 100644 index 00000000..85558d31 Binary files /dev/null and b/assets/novelupdates.png differ diff --git a/assets/splash.png b/assets/splash.png new file mode 100644 index 00000000..2e43828c Binary files /dev/null and b/assets/splash.png differ diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 00000000..2900afe9 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,6 @@ +module.exports = function(api) { + api.cache(true); + return { + presets: ['babel-preset-expo'], + }; +}; diff --git a/index.js b/index.js new file mode 100644 index 00000000..d689463b --- /dev/null +++ b/index.js @@ -0,0 +1,9 @@ +import 'react-native-gesture-handler'; +import { registerRootComponent } from 'expo'; + +import App from './App'; + +// registerRootComponent calls AppRegistry.registerComponent('main', () => App); +// It also ensures that whether you load the app in Expo Go or in a native build, +// the environment is set up appropriately +registerRootComponent(App); diff --git a/metro.config.js b/metro.config.js new file mode 100644 index 00000000..9430b0f9 --- /dev/null +++ b/metro.config.js @@ -0,0 +1,4 @@ +// Learn more https://docs.expo.io/guides/customizing-metro +const { getDefaultConfig } = require('expo/metro-config'); + +module.exports = getDefaultConfig(__dirname); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..f1cc69f4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8780 @@ +{ + "name": "lnreader-eject", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==" + }, + "@babel/core": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/generator": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.0.tgz", + "integrity": "sha512-C6u00HbmsrNPug6A+CiNl8rEys7TsdcXwg12BHi2ca5rUfAs3+UwZsuDQSXnc+wCElCXMB8gMaJ3YXDdh8fAlg==", + "requires": { + "@babel/types": "^7.14.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", + "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", + "requires": { + "@babel/compat-data": "^7.13.15", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.0.tgz", + "integrity": "sha512-6pXDPguA5zC40Y8oI5mqr+jEUpjMJonKvknvA+vD8CYDz5uuXEwWBK8sRAsE/t3gfb1k15AQb9RhwpscC4nUJQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", + "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", + "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", + "requires": { + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", + "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.14.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helpers": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + } + }, + "@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "@babel/parser": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.0.tgz", + "integrity": "sha512-AHbfoxesfBALg33idaTBVUkLnfXtsgvJREf93p4p0Lwsz4ppfE7g1tpEXVm4vrxUcH4DVhAa9Z1m1zqf9WUC7Q==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz", + "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.13.15.tgz", + "integrity": "sha512-ibAMAqUm97yzi+LPgdr5Nqb9CMkeieGHvwPg1ywSGjZrZHQEGqE01HmOio8kxRpA/+VtOHouIVy2FMpBbtltjA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.11", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-decorators": "^7.12.13" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.13.tgz", + "integrity": "sha512-idIsBT+DGXdOHL82U+8bwX4goHm/z10g8sGGrQroh+HCRcm7mDv/luaGdWJQMTuCX2FsdXS7X0Nyyzp4znAPJA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-default-from": "^7.12.13" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz", + "integrity": "sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.12.13.tgz", + "integrity": "sha512-gVry0zqoums0hA+EniCYK3gABhjYSLX1dVuwYpPw9DrLNA4/GovXySHVg4FGRsZht09ON/5C2NVx3keq+qqVGQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", + "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", + "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", + "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", + "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-flow": "^7.12.13" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz", + "integrity": "sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==", + "requires": { + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", + "requires": { + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.13.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", + "requires": { + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-assign": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.13.tgz", + "integrity": "sha512-4QxDMc0lAOkIBSfCrnSGbAJ+4epDBF2XXwcLXuBcG1xl9u7LrktNVD4+LwhL47XuKVPQ7R25e/WdcV+h97HyZA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", + "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.13.12" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz", + "integrity": "sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz", + "integrity": "sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz", + "integrity": "sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==", + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz", + "integrity": "sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-typescript": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.17.tgz", + "integrity": "sha512-9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg==", + "requires": { + "@babel/compat-data": "^7.12.13", + "@babel/helper-compilation-targets": "^7.12.17", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", + "@babel/plugin-proposal-dynamic-import": "^7.12.17", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.12.13", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.12.13", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", + "@babel/plugin-proposal-optional-chaining": "^7.12.17", + "@babel/plugin-proposal-private-methods": "^7.12.13", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.12.13", + "@babel/plugin-transform-async-to-generator": "^7.12.13", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.12.13", + "@babel/plugin-transform-computed-properties": "^7.12.13", + "@babel/plugin-transform-destructuring": "^7.12.13", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.12.13", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.12.13", + "@babel/plugin-transform-modules-commonjs": "^7.12.13", + "@babel/plugin-transform-modules-systemjs": "^7.12.13", + "@babel/plugin-transform-modules-umd": "^7.12.13", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.12.13", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.12.13", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.12.13", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.17", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/preset-flow": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.13.13.tgz", + "integrity": "sha512-MDtwtamMifqq3R2mC7l3A3uFalUb3NH5TIBQWjN/epEPlZktcLq4se3J+ivckKrLMGsR7H9LW8+pYuIUN9tsKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-transform-flow-strip-types": "^7.13.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-typescript": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.17.tgz", + "integrity": "sha512-T513uT4VSThRcmWeqcLkITKJ1oGQho9wfWuhQm10paClQkp1qyd0Wf8mvC8Se7UYssMyRSj4tZYpVTkCmAK/mA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-transform-typescript": "^7.12.17" + } + }, + "@babel/register": { + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.13.16.tgz", + "integrity": "sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg==", + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", + "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.0", + "@babel/types": "^7.14.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.0.tgz", + "integrity": "sha512-O2LVLdcnWplaGxiPBz12d0HcdN8QdxdsWYhz5LSeuukV/5mn2xUUc3gBeU4QBYPJ18g/UToe8F532XJ608prmg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "@callstack/react-theme-provider": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.5.tgz", + "integrity": "sha512-Iec+ybWN0FvNj87sD3oWo/49edGUP0UOSdMnzCJEFJIDYr992ECIuOV89burAAh2/ibPCxgLiK6dmgv2mO/8Tg==", + "requires": { + "deepmerge": "^3.2.0", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "requires": { + "@types/hammerjs": "^2.0.36" + } + }, + "@expo/config": { + "version": "3.3.38", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-3.3.38.tgz", + "integrity": "sha512-0SsvF7yTy+kdJaAc2W75yhwnaXIRasnA1Vygna83tlPhCx6ynIBzTbJAvdkddSk5euUTJpXc5nePaflGvNboXw==", + "requires": { + "@babel/core": "7.9.0", + "@babel/plugin-proposal-class-properties": "~7.12.13", + "@babel/preset-env": "~7.12.13", + "@babel/preset-typescript": "~7.12.13", + "@expo/config-plugins": "1.0.28", + "@expo/config-types": "^40.0.0-beta.2", + "@expo/json-file": "8.2.29", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "require-from-string": "^2.0.2", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "slugify": "^1.3.4" + } + }, + "@expo/config-plugins": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.28.tgz", + "integrity": "sha512-i5SpC6U3LjRQlwi1xM4SRj8dR2Qm+0dykPo0GeesByB7IvT36AT1ZjI7VjecuoZ6yKbLpaa5tWvU3JGObxIPSw==", + "requires": { + "@expo/config-types": "^40.0.0-beta.2", + "@expo/configure-splash-screen": "0.3.4", + "@expo/image-utils": "0.3.13", + "@expo/json-file": "8.2.29", + "@expo/plist": "0.0.12", + "find-up": "~5.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "glob": "7.1.6", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "slugify": "^1.3.4", + "xcode": "^3.0.1", + "xml2js": "^0.4.23" + } + }, + "@expo/config-types": { + "version": "40.0.0-beta.2", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.2.tgz", + "integrity": "sha512-t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==" + }, + "@expo/configure-splash-screen": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.3.4.tgz", + "integrity": "sha512-HsukM03X5/EXSucVsLN/oLqyFq/1jAjpADkgU1HLaezFpkr+TOquI6yDwdDp1450kcm891PE/SYJ+mCdPxzDLw==", + "requires": { + "color-string": "^1.5.3", + "commander": "^5.1.0", + "core-js": "^3.6.5", + "deep-equal": "^2.0.3", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "lodash": "^4.17.15", + "pngjs": "^5.0.0", + "xcode": "^3.0.0", + "xml-js": "^1.6.11" + } + }, + "@expo/image-utils": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.13.tgz", + "integrity": "sha512-BpKoFVJBjG9H5AU040Skrm3R2uDGpWXBU/4TivB5H10cyJphoJKp3GNJVPHYLOVc70OtAxjWDIhLMW6xsWfrgw==", + "requires": { + "@expo/spawn-async": "1.5.0", + "chalk": "^4.0.0", + "fs-extra": "9.0.0", + "getenv": "^1.0.0", + "jimp": "0.12.1", + "mime": "^2.4.4", + "node-fetch": "^2.6.0", + "parse-png": "^2.1.0", + "resolve-from": "^5.0.0", + "semver": "7.3.2", + "tempy": "0.3.0" + } + }, + "@expo/json-file": { + "version": "8.2.29", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.29.tgz", + "integrity": "sha512-9C8XwpJiJN9fyClnnNDSTh034zJU9hon6MCUqbBa4dZYQN7OZ00KFZEpbtjy+FndE7YD+KagDxRD6O1HS5vU0g==", + "requires": { + "@babel/code-frame": "~7.10.4", + "fs-extra": "9.0.0", + "json5": "^1.0.1", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "@expo/metro-config": { + "version": "0.1.64", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.64.tgz", + "integrity": "sha512-ooD+XOVGnKPIIZbyfVTvMeQ3p9HpRt4aNCehSM6H1ueQm8+IpVwrhw8sJjL5xr+FVxFqj0+Ga9DI8d0AXS8U4g==", + "requires": { + "@expo/config": "3.3.38", + "chalk": "^4.1.0", + "getenv": "^1.0.0", + "metro-react-native-babel-transformer": "^0.59.0" + } + }, + "@expo/plist": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.12.tgz", + "integrity": "sha512-anGvLk58fxfeHY2PbtH79VxhrLDPGd+173pHYYXNg9HlfbrEVLI2Vo0ZBOrr/cYr7cgU5A/WNcMphRoO/KfYZQ==", + "requires": { + "base64-js": "^1.2.3", + "xmlbuilder": "^14.0.0", + "xmldom": "~0.5.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", + "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==" + } + } + }, + "@expo/spawn-async": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", + "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", + "requires": { + "cross-spawn": "^6.0.5" + } + }, + "@expo/vector-icons": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-12.0.4.tgz", + "integrity": "sha512-/EFbXri7jZmqj1jTY6wpauvMN0DY0Epic003d43yWqrScLlVERaxXrOR07BNuCZvVMHBAzXN4VbOzUUUTq6j8g==", + "requires": { + "lodash.frompairs": "^4.0.1", + "lodash.isequal": "^4.5.0", + "lodash.isstring": "^4.0.1", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "lodash.template": "^4.5.0" + } + }, + "@expo/websql": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@expo/websql/-/websql-1.0.1.tgz", + "integrity": "sha1-//DPnBuqH3D54dZYt8OaQg2bEKk=", + "requires": { + "argsarray": "^0.0.1", + "immediate": "^3.2.2", + "noop-fn": "^1.0.0", + "pouchdb-collections": "^1.0.1", + "tiny-queue": "^0.2.1" + } + }, + "@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@ide/backoff": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@ide/backoff/-/backoff-1.0.0.tgz", + "integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g==" + }, + "@jest/create-cache-key-function": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-26.6.2.tgz", + "integrity": "sha512-LgEuqU1f/7WEIPYqwLPIvvHuc1sB6gMVbT6zWhin3txYUNYK/kGQrC1F2WR4gR34YlI9bBtViTm5z98RqVZAaw==", + "requires": { + "@jest/types": "^26.6.2" + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@jimp/bmp": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.12.1.tgz", + "integrity": "sha512-t16IamuBMv4GiGa1VAMzsgrVKVANxXG81wXECzbikOUkUv7pKJ2vHZDgkLBEsZQ9sAvFCneM1+yoSRpuENrfVQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "bmp-js": "^0.1.0" + } + }, + "@jimp/core": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.12.1.tgz", + "integrity": "sha512-mWfjExYEjHxBal+1gPesGChOQBSpxO7WUQkrO9KM7orboitOdQ15G5UA75ce7XVZ+5t+FQPOLmVkVZzzTQSEJA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/custom": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.12.1.tgz", + "integrity": "sha512-bVClp8FEJ/11GFTKeRTrfH7NgUWvVO5/tQzO/68aOwMIhbz9BOYQGh533K9+mSy29VjZJo8jxZ0C9ZwYHuFwfA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.12.1" + } + }, + "@jimp/gif": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.12.1.tgz", + "integrity": "sha512-cGn/AcvMGUGcqR6ByClGSnrja4AYmTwsGVXTQ1+EmfAdTiy6ztGgZCTDpZ/tq4SpdHXwm9wDHez7damKhTrH0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.12.1.tgz", + "integrity": "sha512-UoCUHbKLj2CDCETd7LrJnmK/ExDsSfJXmc1pKkfgomvepjXogdl2KTHf141wL6D+9CfSD2VBWQLC5TvjMvcr9A==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "jpeg-js": "^0.4.0" + } + }, + "@jimp/plugin-blit": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.12.1.tgz", + "integrity": "sha512-VRBB6bx6EpQuaH0WX8ytlGNqUQcmuxXBbzL3e+cD0W6MluYibzQy089okvXcyUS72Q+qpSMmUDCVr3pDqLAsSA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-blur": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.12.1.tgz", + "integrity": "sha512-rTFY0yrwVJFNgNsAlYGn2GYCRLVEcPQ6cqAuhNylXuR/7oH3Acul+ZWafeKtvN8D8uMlth/6VP74gruXvwffZw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-circle": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.12.1.tgz", + "integrity": "sha512-+/OiBDjby7RBbQoDX8ZsqJRr1PaGPdTaaKUVGAsrE7KCNO9ODYNFAizB9lpidXkGgJ4Wx5R4mJy21i22oY/a4Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-color": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.12.1.tgz", + "integrity": "sha512-xlnK/msWN4uZ+Bu7+UrCs9oMzTSA9QE0jWFnF3h0aBsD8t1LGxozkckHe8nHtC/y/sxIa8BGKSfkiaW+r6FbnA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.12.1.tgz", + "integrity": "sha512-WZ/D6G0jhnBh2bkBh610PEh/caGhAUIAxYLsQsfSSlOxPsDhbj3S6hMbFKRgnDvf0hsd5zTIA0j1B0UG4kh18A==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-cover": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.12.1.tgz", + "integrity": "sha512-ddWwTQO40GcabJ2UwUYCeuNxnjV4rBTiLprnjGMqAJCzdz3q3Sp20FkRf+H+E22k2v2LHss8dIOFOF4i6ycr9Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-crop": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.12.1.tgz", + "integrity": "sha512-CKjVkrNO8FDZKYVpMireQW4SgKBSOdF+Ip/1sWssHHe77+jGEKqOjhYju+VhT3dZJ3+75rJNI9II7Kethp+rTw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-displace": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.12.1.tgz", + "integrity": "sha512-MQAw2iuf1/bVJ6P95WWTLA+WBjvIZ7TeGBerkvBaTK8oWdj+NSLNRIYOIoyPbZ7DTL8f1SN4Vd6KD6BZaoWrwg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-dither": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.12.1.tgz", + "integrity": "sha512-mCrBHdx2ViTLJDLcrobqGLlGhZF/Mq41bURWlElQ2ArvrQ3/xR52We9DNDfC08oQ2JVb6q3v1GnCCdn0KNojGQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-fisheye": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.12.1.tgz", + "integrity": "sha512-CHvYSXtHNplzkkYzB44tENPDmvfUHiYCnAETTY+Hx58kZ0w8ERZ+OiLhUmiBcvH/QHm/US1iiNjgGUAfeQX6dg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-flip": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.12.1.tgz", + "integrity": "sha512-xi+Yayrnln8A/C9E3yQBExjxwBSeCkt/ZQg1CxLgszVyX/3Zo8+nkV8MJYpkTpj8LCZGTOKlsE05mxu/a3lbJQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.12.1.tgz", + "integrity": "sha512-7O6eKlhL37hsLfV6WAX1Cvce7vOqSwL1oWbBveC1agutDlrtvcTh1s2mQ4Pde654hCJu55mq1Ur10+ote5j3qw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-invert": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.12.1.tgz", + "integrity": "sha512-JTAs7A1Erbxwl+7ph7tgcb2PZ4WzB+3nb2WbfiWU8iCrKj17mMDSc5soaCCycn8wfwqvgB1vhRfGpseOLWxsuQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-mask": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.12.1.tgz", + "integrity": "sha512-bnDdY0RO/x5Mhqoy+056SN1wEj++sD4muAKqLD2CIT8Zq5M/0TA4hkdf/+lwFy3H2C0YTK39PSE9xyb4jPX3kA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-normalize": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.12.1.tgz", + "integrity": "sha512-4kSaI4JLM/PNjHwbnAHgyh51V5IlPfPxYvsZyZ1US32pebWtocxSMaSuOaJUg7OGSkwSDBv81UR2h5D+Dz1b5A==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-print": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.12.1.tgz", + "integrity": "sha512-T0lNS3qU9SwCHOEz7AGrdp50+gqiWGZibOL3350/X/dqoFs1EvGDjKVeWncsGCyLlpfd7M/AibHZgu8Fx2bWng==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "load-bmfont": "^1.4.0" + } + }, + "@jimp/plugin-resize": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.12.1.tgz", + "integrity": "sha512-sbNn4tdBGcgGlPt9XFxCuDl4ZOoxa8/Re8nAikyxYhRss2Dqz91ARbBQxOf1vlUGeicQMsjEuWbPQAogTSJRug==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-rotate": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.12.1.tgz", + "integrity": "sha512-RYkLzwG2ervG6hHy8iepbIVeWdT1kz4Qz044eloqo6c66MK0KAqp228YI8+CAKm0joQnVDC/A0FgRIj/K8uyAw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-scale": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.12.1.tgz", + "integrity": "sha512-zjNVI1fUj+ywfG78T1ZU33g9a5sk4rhEQkkhtny8koAscnVsDN2YaZEKoFli54kqaWh5kSS5DDL7a/9pEfXnFQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-shadow": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.12.1.tgz", + "integrity": "sha512-Z82IwvunXWQ2jXegd3W3TYUXpfJcEvNbHodr7Z+oVnwhM1OoQ5QC6RSRQwsj2qXIhbGffQjH8eguHgEgAV+u5w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugin-threshold": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.12.1.tgz", + "integrity": "sha512-PFezt5fSk0q+xKvdpuv0eLggy2I7EgYotrK8TRZOT0jimuYFXPF0Z514c6szumoW5kEsRz04L1HkPT1FqI97Yg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1" + } + }, + "@jimp/plugins": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.12.1.tgz", + "integrity": "sha512-7+Yp29T6BbYo+Oqnc+m7A5AH+O+Oy5xnxvxlfmsp48+SuwEZ4akJp13Gu2PSmRlylENzR7MlWOxzhas5ERNlIg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.12.1", + "@jimp/plugin-blur": "^0.12.1", + "@jimp/plugin-circle": "^0.12.1", + "@jimp/plugin-color": "^0.12.1", + "@jimp/plugin-contain": "^0.12.1", + "@jimp/plugin-cover": "^0.12.1", + "@jimp/plugin-crop": "^0.12.1", + "@jimp/plugin-displace": "^0.12.1", + "@jimp/plugin-dither": "^0.12.1", + "@jimp/plugin-fisheye": "^0.12.1", + "@jimp/plugin-flip": "^0.12.1", + "@jimp/plugin-gaussian": "^0.12.1", + "@jimp/plugin-invert": "^0.12.1", + "@jimp/plugin-mask": "^0.12.1", + "@jimp/plugin-normalize": "^0.12.1", + "@jimp/plugin-print": "^0.12.1", + "@jimp/plugin-resize": "^0.12.1", + "@jimp/plugin-rotate": "^0.12.1", + "@jimp/plugin-scale": "^0.12.1", + "@jimp/plugin-shadow": "^0.12.1", + "@jimp/plugin-threshold": "^0.12.1", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.12.1.tgz", + "integrity": "sha512-tOUSJMJzcMAN82F9/Q20IToquIVWzvOe/7NIpVQJn6m+Lq6TtVmd7d8gdcna9AEFm2FIza5lhq2Kta6Xj0KXhQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.12.1", + "pngjs": "^3.3.3" + }, + "dependencies": { + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + } + } + }, + "@jimp/tiff": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.12.1.tgz", + "integrity": "sha512-bzWDgv3202TKhaBGzV9OFF0PVQWEb4194h9kv5js348SSnbCusz/tzTE1EwKrnbDZThZPgTB1ryKs7D+Q9Mhmg==", + "requires": { + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.12.1.tgz", + "integrity": "sha512-hg5OKXpWWeKGuDrfibrjWWhr7hqb7f552wqnPWSLQpVrdWgjH+hpOv6cOzdo9bsU78qGTelZJPxr0ERRoc+MhQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.12.1", + "@jimp/gif": "^0.12.1", + "@jimp/jpeg": "^0.12.1", + "@jimp/png": "^0.12.1", + "@jimp/tiff": "^0.12.1", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.12.1.tgz", + "integrity": "sha512-EjPkDQOzV/oZfbolEUgFT6SE++PtCccVBvjuACkttyCfl0P2jnpR49SwstyVLc2u8AwBAZEHHAw9lPYaMjtbXQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" + } + }, + "@react-native-async-storage/async-storage": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.15.4.tgz", + "integrity": "sha512-pC0MS6UBuv/YiVAxtzi7CgUed8oCQNYMtGt0yb/I9fI/BWTiJK5cj4YtW2XtL95K5IuvPX/6uGWaouZ8KqXwdg==", + "requires": { + "deep-assign": "^3.0.0" + } + }, + "@react-native-community/cli-debugger-ui": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-5.0.1.tgz", + "integrity": "sha512-5gGKaaXYOVE423BUqxIfvfAVSj5Cg1cU/TpGbeg/iqpy2CfqyWqJB3tTuVUbOOiOvR5wbU8tti6pIi1pchJ+oA==", + "requires": { + "serve-static": "^1.13.1" + } + }, + "@react-native-community/cli-hermes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-5.0.1.tgz", + "integrity": "sha512-nD+ZOFvu5MfjLB18eDJ01MNiFrzj8SDtENjGpf0ZRFndOWASDAmU54/UlU/wj8OzTToK1+S1KY7j2P2M1gleww==", + "requires": { + "@react-native-community/cli-platform-android": "^5.0.1", + "@react-native-community/cli-tools": "^5.0.1", + "chalk": "^3.0.0", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-platform-android": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-5.0.1.tgz", + "integrity": "sha512-qv9GJX6BJ+Y4qvV34vgxKwwN1cnveXUdP6y2YmTW7XoAYs5YUzKqHajpY58EyucAL2y++6+573t5y4U/9IIoww==", + "requires": { + "@react-native-community/cli-tools": "^5.0.1", + "chalk": "^3.0.0", + "execa": "^1.0.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "jetifier": "^1.6.2", + "lodash": "^4.17.15", + "logkitty": "^0.7.1", + "slash": "^3.0.0", + "xmldoc": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "@react-native-community/cli-platform-ios": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-5.0.1.tgz", + "integrity": "sha512-Nr/edBEYJfElgBNvjDevs2BuDicsvQaM8nYkTGgp33pyuCZRBxsYxQqfsNmnLalTzcYaebjWj6AnjUSxzQBWqg==", + "requires": { + "@react-native-community/cli-tools": "^5.0.1", + "chalk": "^3.0.0", + "glob": "^7.1.3", + "js-yaml": "^3.13.1", + "lodash": "^4.17.15", + "plist": "^3.0.1", + "xcode": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "xcode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz", + "integrity": "sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==", + "requires": { + "simple-plist": "^1.0.0", + "uuid": "^3.3.2" + } + } + } + }, + "@react-native-community/cli-server-api": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-5.0.1.tgz", + "integrity": "sha512-OOxL+y9AOZayQzmSW+h5T54wQe+QBc/f67Y9QlWzzJhkKJdYx+S4VOooHoD5PFJzGbYaxhu2YF17p517pcEIIA==", + "requires": { + "@react-native-community/cli-debugger-ui": "^5.0.1", + "@react-native-community/cli-tools": "^5.0.1", + "compression": "^1.7.1", + "connect": "^3.6.5", + "errorhandler": "^1.5.0", + "nocache": "^2.1.0", + "pretty-format": "^26.6.2", + "serve-static": "^1.13.1", + "ws": "^1.1.0" + }, + "dependencies": { + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + } + } + }, + "@react-native-community/cli-tools": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-5.0.1.tgz", + "integrity": "sha512-XOX5w98oSE8+KnkMZZPMRT7I5TaP8fLbDl0tCu40S7Epz+Zz924n80fmdu6nUDIfPT1nV6yH1hmHmWAWTDOR+Q==", + "requires": { + "chalk": "^3.0.0", + "lodash": "^4.17.15", + "mime": "^2.4.1", + "node-fetch": "^2.6.0", + "open": "^6.2.0", + "shell-quote": "1.6.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-5.0.1.tgz", + "integrity": "sha512-BesXnuFFlU/d1F3+sHhvKt8fUxbQlAbZ3hhMEImp9A6sopl8TEtryUGJ1dbazGjRXcADutxvjwT/i3LJVTIQug==", + "requires": { + "ora": "^3.4.0" + } + }, + "@react-native-community/masked-view": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.10.tgz", + "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==" + }, + "@react-native-community/netinfo": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-6.0.0.tgz", + "integrity": "sha512-Z9M8VGcF2IZVOo2x+oUStvpCW/8HjIRi4+iQCu5n+PhC7OqCQX58KYAzdBr///alIfRXiu6oMb+lK+rXQH1FvQ==" + }, + "@react-native-community/slider": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-3.0.3.tgz", + "integrity": "sha512-8IeHfDwJ9/CTUwFs6x90VlobV3BfuPgNLjTgC6dRZovfCWigaZwVNIFFJnHBakK3pW2xErAPwhdvNR4JeNoYbw==" + }, + "@react-native/assets": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz", + "integrity": "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==" + }, + "@react-native/normalize-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-1.0.0.tgz", + "integrity": "sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg==" + }, + "@react-native/polyfills": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-1.0.0.tgz", + "integrity": "sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w==" + }, + "@react-navigation/core": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.15.3.tgz", + "integrity": "sha512-3ZdyDInh8qg1kygCNkmh9lFgpDf29lTvPsaMe2mm/qvmxLKSgttWBz07P2fc181aV9jTdgQpzYfWZ5KWT036zw==", + "requires": { + "@react-navigation/routers": "^5.7.2", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.15", + "query-string": "^6.13.6", + "react-is": "^16.13.0" + } + }, + "@react-navigation/material-bottom-tabs": { + "version": "5.3.15", + "resolved": "https://registry.npmjs.org/@react-navigation/material-bottom-tabs/-/material-bottom-tabs-5.3.15.tgz", + "integrity": "sha512-SpCSJxnDqN1a8oHNm3oTt3OYulDEPbeWP1FGwb9zeXW8El2kgwD+69D4KhnUNLYVSKNLu9HadgFOrG3ezp4HPQ==" + }, + "@react-navigation/native": { + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-5.9.4.tgz", + "integrity": "sha512-BUCrOXfZDdKWBqM8OhOKQhCX5we4HUo5XG6tCQtVqQAep+7UcApZmMUuemUXDxVe8NPESUpoUlB0RaEpyIdfTQ==", + "requires": { + "@react-navigation/core": "^5.15.3", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.15" + } + }, + "@react-navigation/routers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.7.2.tgz", + "integrity": "sha512-BxNSMLHpU+oS37Xok0ql6rc9U7IC8aUD4+U5ZPbjDJ0pwzZxGGh0YOEBzfV4k/Ig3cbPdvVWbc1C9HHbCVr2oQ==", + "requires": { + "nanoid": "^3.1.15" + } + }, + "@react-navigation/stack": { + "version": "5.14.4", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-5.14.4.tgz", + "integrity": "sha512-gQjWK8JHtVkD1p7wzjtSPuScJI0mSAk/N/gzgjQZo+rDUwgM8rOTDcVNRbtEOqCEgLQcZrZQHwhOjkrJirehjQ==", + "requires": { + "color": "^3.1.3", + "react-native-iphone-x-helper": "^1.3.0" + } + }, + "@redux-saga/core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.1.3.tgz", + "integrity": "sha512-8tInBftak8TPzE6X13ABmEtRJGjtK17w7VUs7qV17S8hCO5S3+aUTWZ/DBsBJPdE8Z5jOPwYALyvofgq1Ws+kg==", + "requires": { + "@babel/runtime": "^7.6.3", + "@redux-saga/deferred": "^1.1.2", + "@redux-saga/delay-p": "^1.1.2", + "@redux-saga/is": "^1.1.2", + "@redux-saga/symbols": "^1.1.2", + "@redux-saga/types": "^1.1.0", + "redux": "^4.0.4", + "typescript-tuple": "^2.2.1" + } + }, + "@redux-saga/deferred": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.1.2.tgz", + "integrity": "sha512-908rDLHFN2UUzt2jb4uOzj6afpjgJe3MjICaUNO3bvkV/kN/cNeI9PMr8BsFXB/MR8WTAZQq/PlTq8Kww3TBSQ==" + }, + "@redux-saga/delay-p": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.1.2.tgz", + "integrity": "sha512-ojc+1IoC6OP65Ts5+ZHbEYdrohmIw1j9P7HS9MOJezqMYtCDgpkoqB5enAAZrNtnbSL6gVCWPHaoaTY5KeO0/g==", + "requires": { + "@redux-saga/symbols": "^1.1.2" + } + }, + "@redux-saga/is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.2.tgz", + "integrity": "sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w==", + "requires": { + "@redux-saga/symbols": "^1.1.2", + "@redux-saga/types": "^1.1.0" + } + }, + "@redux-saga/symbols": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.2.tgz", + "integrity": "sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ==" + }, + "@redux-saga/types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.1.0.tgz", + "integrity": "sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg==" + }, + "@sideway/address": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", + "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/hammerjs": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.39.tgz", + "integrity": "sha512-lYR2Y/tV2ujpk/WyUc7S0VLI0a9hrtVIN9EwnrNo5oSEJI2cK2/XrgwOQmXLL3eTulOESvh9qP6si9+DWM9cOA==" + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", + "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/react": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz", + "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-redux": { + "version": "7.1.16", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz", + "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==", + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "@types/scheduler": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", + "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" + }, + "@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + }, + "@unimodules/core": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@unimodules/core/-/core-7.1.0.tgz", + "integrity": "sha512-oLRT4Bkah3GEopkxmTgpHsRTRp+NJ1907ZjE9y/HLh32q7O/3mcbpY77Uvm+EXW0Vh14gOlU+bmkpC0hz3we0w==", + "requires": { + "compare-versions": "^3.4.0" + } + }, + "@unimodules/react-native-adapter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-6.2.2.tgz", + "integrity": "sha512-hBXL+IX3u+4TcAHu9lIItdycA7pYWZn3Tt7s5TTna9QKHjyrwo0zVss27LkpJ40tXRHyh/GJ8VzN2CD+0M5I2A==", + "requires": { + "invariant": "^2.2.4" + } + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "absolute-path": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", + "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" + }, + "ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "requires": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "appdirsjs": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.4.tgz", + "integrity": "sha512-WO5StDORR6JF/xYnXk/Fm0yu+iULaV5ULKuUw0Tu+jbgiTlSquaWBCgbpnsHLMXldf+fM3Gxn5p7vjond7He6w==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argsarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", + "integrity": "sha1-bnIHtOzbObCviDA/pa4ivajfYcs=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "requires": { + "tslib": "^2.0.1" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "requires": { + "array-filter": "^1.0.0" + } + }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==" + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", + "requires": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", + "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.0", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", + "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0", + "core-js-compat": "^3.9.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", + "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0" + } + }, + "babel-plugin-react-native-web": { + "version": "0.13.18", + "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.13.18.tgz", + "integrity": "sha512-f8pAxyKqXBNRIh8l4Sqju055BNec+DQlItdtutByYxULU0iJ1F7evIYE3skPKAkTB/xJH17l+n3Z8dVabGIIGg==" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + }, + "babel-preset-expo": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-8.3.0.tgz", + "integrity": "sha512-KmoFiEJ0A8QUH0OTh+mj3RBvv069FQsQ1hvZDi6tVMSzrW+Y/imsJMXgVboZN+XGOYnWFaGEKQ8BqNvBX+zKjA==", + "requires": { + "@babel/plugin-proposal-decorators": "^7.6.0", + "@babel/preset-env": "^7.6.3", + "babel-plugin-module-resolver": "^3.2.0", + "babel-plugin-react-native-web": "~0.13.6", + "metro-react-native-babel-preset": "~0.59.0" + } + }, + "babel-preset-fbjs": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz", + "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + } + }, + "badgin": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/badgin/-/badgin-1.2.2.tgz", + "integrity": "sha512-XtoSjNhy2D09qGiLhFWBJmBwBlmleQuwyYyjddWNCJ3gqGRBOBR25VGcd8CAOSghpEUmghB3LD4NpHrUG89zCg==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "blueimp-md5": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz", + "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==" + }, + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "bplist-creator": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz", + "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==", + "requires": { + "stream-buffers": "~2.2.0" + } + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caniuse-lite": { + "version": "1.0.30001219", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", + "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "compare-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz", + "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==", + "requires": { + "normalize-url": "^2.0.1" + } + }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.1.tgz", + "integrity": "sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ==" + }, + "core-js-compat": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.1.tgz", + "integrity": "sha512-aZ0e4tmlG/aOBHj92/TuOuZwp6jFvn1WNabU5VOVixzhu5t5Ao+JZkQOPlgNXu6ynwLrwJxklT4Gw1G1VGEh+g==", + "requires": { + "browserslist": "^4.16.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-react-class": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", + "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "requires": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" + }, + "dayjs": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", + "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-3.0.0.tgz", + "integrity": "sha512-YX2i9XjJ7h5q/aQ/IM9PEwEnDqETAIYbggmdDB3HLTlSgo1CxPsj6pvhPG68rq6SVE0+p+6Ywsm5fTYNrYtBWw==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "requires": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + } + }, + "deepmerge": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.725", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.725.tgz", + "integrity": "sha512-2BbeAESz7kc6KBzs7WVrMc1BY5waUphk4D4DX5dSQXJhsc3tP5ZFaiyuL0AB7vUKzDYpIeYwTYlEfxyjsGUrhw==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + } + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "requires": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + } + }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "eventemitter2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-1.0.5.tgz", + "integrity": "sha1-+YNhBRexc3wLncZDvsqTiTwE3xg=" + }, + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expo": { + "version": "41.0.1", + "resolved": "https://registry.npmjs.org/expo/-/expo-41.0.1.tgz", + "integrity": "sha512-Lk4Xdst+OfsLgBNeu89hxk0qFrZnHwwXFmBbJkYLlZkdC3tvNJ8jgGHsKg6jYpsnal/z0uVc+uk2ev91qXQykg==", + "requires": { + "@babel/runtime": "^7.1.2", + "@expo/metro-config": "^0.1.63", + "@expo/vector-icons": "^12.0.4", + "@unimodules/core": "~7.1.0", + "@unimodules/react-native-adapter": "~6.2.2", + "babel-preset-expo": "~8.3.0", + "cross-spawn": "^6.0.5", + "expo-application": "~3.1.2", + "expo-asset": "~8.3.1", + "expo-constants": "~10.1.3", + "expo-error-recovery": "~2.1.0", + "expo-file-system": "~11.0.2", + "expo-font": "~9.1.0", + "expo-keep-awake": "~9.1.2", + "fbemitter": "^2.1.1", + "invariant": "^2.2.2", + "md5-file": "^3.2.3", + "pretty-format": "^26.4.0", + "react-native-safe-area-context": "3.2.0", + "serialize-error": "^2.1.0", + "uuid": "^3.4.0" + } + }, + "expo-application": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-3.1.2.tgz", + "integrity": "sha512-JZcKUpGmqzQ1zLxRxUditGzPqnPCXY6JT/Pbq4nyV4VPzjDd8wihVPuud+cuv8gHgdj8QLvKs/lcJJqN94EX5Q==" + }, + "expo-asset": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.3.2.tgz", + "integrity": "sha512-MKOwkkN0lnQRcOdn5moqkHPmLgFoUSIYyrvMAJ767vTXvLvZgoQgvBwqCAXsXitIwEitG0Az3XZ23SfKJpFbFg==", + "requires": { + "blueimp-md5": "^2.10.0", + "invariant": "^2.2.4", + "md5-file": "^3.2.3", + "path-browserify": "^1.0.0", + "url-parse": "^1.4.4" + } + }, + "expo-background-fetch": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/expo-background-fetch/-/expo-background-fetch-9.1.0.tgz", + "integrity": "sha512-vBA+qTugxTYhAlNcXQxUUXTR6Qm2H/6QA3OzfgZUFL2bvnATuJ6BLoA29mrxHRUtSIcPDjHD9PVBnGBOEyCnwA==", + "requires": { + "@expo/config-plugins": "^1.0.18", + "expo-task-manager": "~9.1.0" + } + }, + "expo-constants": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-10.1.3.tgz", + "integrity": "sha512-Eq/xeshnhSoe4ok89d5lrHvI9jq3bMe1FhJUbiHVGcGmW8mGCotwbQBIfDkkMrAKnSOwQq/Qfyg0XBxnG2XFjw==", + "requires": { + "@expo/config": "^3.3.35", + "uuid": "^3.3.2" + } + }, + "expo-document-picker": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/expo-document-picker/-/expo-document-picker-9.1.2.tgz", + "integrity": "sha512-I4xq90HZg3JML40AfUv1Uk/dTSRDd3Cy3qLV1P+wAiSudp54ockHMR1Pwow12WCtbihHW5DlHT0TU+fz5jJb7g==", + "requires": { + "@expo/config-plugins": "^1.0.18", + "uuid": "^3.3.2" + } + }, + "expo-error-recovery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-2.1.0.tgz", + "integrity": "sha512-N5g2QKtdNntUNGQVnB/tG1jHdtJP1+kLMWDS+7ZKRcKfulm3JX/M3l460fsEtqg84n/latxPkBT0yfKw2DSq+Q==" + }, + "expo-file-system": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-11.0.2.tgz", + "integrity": "sha512-nodNvUVa+US4N4xnj5BFw8W9ZF/qCHJVC2t45cHWrBiwkVVxz45wjE7uSHUmkMWyWT7a/7AJuL3XJfYp7h90IQ==", + "requires": { + "@expo/config-plugins": "^1.0.18", + "uuid": "^3.4.0" + } + }, + "expo-font": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-9.1.0.tgz", + "integrity": "sha512-owzbbfrQet7mawTGKMXpVCIA9k56MGhtriO41AW4Zo65dd2Ikm4LoymuHKp2ZlHuIFjRnjECKWz7RXgy/C1yAg==", + "requires": { + "fontfaceobserver": "^2.1.0" + } + }, + "expo-image-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-2.1.1.tgz", + "integrity": "sha512-EeItNIsmw4g+FIb9S9AHE7FAWQkuiIguFMua/RQ2mFHKFZYa/BU32MGagY+e4LzasBVbDKWgd3NHO+EYC6XeEA==" + }, + "expo-keep-awake": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-9.1.2.tgz", + "integrity": "sha512-CCuEOQUNLYtMA0rt0sQ9u5LlIMH7lDJG7dImoorfKMsP95yHXy8dl3oCdtaz2zbsPgggVYeom9gE+gQu+Ki4rQ==" + }, + "expo-linear-gradient": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-9.1.0.tgz", + "integrity": "sha512-9W4TxaDrZUzmLzd18+Eo2Ef7ONnuLrHKX0PRyHEGY2/rJCtGiPJtJuR6AS5dkX7WB/Pxlx0zK/p/qDHHw09Uxg==" + }, + "expo-linking": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-2.2.3.tgz", + "integrity": "sha512-1NqL8sY4EzwRPVnBxbvNKBCfsG/tNZm72tVwzjoLxhO0XA6VTtZcb72Jaku4IlqEyH0lejxV2YAU0rbLv1pAVA==", + "requires": { + "expo-constants": "~10.1.3", + "invariant": "^2.2.4", + "qs": "^6.5.0", + "url-parse": "^1.4.4" + } + }, + "expo-notifications": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.11.6.tgz", + "integrity": "sha512-skVEOHXKXrXBWofCQ/Zn7yKhAFA2EN0fd9mXqpkbF6nE4NKE7pn63gTWpyCy6sXC9M3YUal8yT0vp9GkD2FsmA==", + "requires": { + "@expo/config-plugins": "^1.0.18", + "@expo/image-utils": "^0.3.10", + "@ide/backoff": "^1.0.0", + "abort-controller": "^3.0.0", + "assert": "^2.0.0", + "badgin": "^1.1.5", + "expo-application": "~3.1.2", + "expo-constants": "10.1.3", + "fs-extra": "^9.0.1", + "unimodules-permissions-interface": "~6.1.0", + "uuid": "^3.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, + "expo-permissions": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/expo-permissions/-/expo-permissions-12.0.1.tgz", + "integrity": "sha512-TtypNPPLG4SdVEKBlrArLLZIyhlhE+3B4dhz2HaY1Mve2rcvKE0C7z/e1WoUVU8+LgcdKoNGwg/wRVeCkxeEhg==" + }, + "expo-sharing": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/expo-sharing/-/expo-sharing-9.1.2.tgz", + "integrity": "sha512-IFBQPimeZtdqtvmqQZEmiI0D4j9xE53tSZxLFrFPplNWzgDefk+dP+flof3duf9JgCQTsvOUU2h2/XwjD3vBTA==" + }, + "expo-splash-screen": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.10.2.tgz", + "integrity": "sha512-ngelW7g5yFqk3LWbyLDDxi3LYXEfgGFCJddL/Q8S/C1pMUc5foW2j9i/q+akK8i5mjYtSx3+Bk/qbyX92QIF/w==", + "requires": { + "@expo/configure-splash-screen": "0.3.4" + } + }, + "expo-sqlite": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/expo-sqlite/-/expo-sqlite-9.1.0.tgz", + "integrity": "sha512-nr6rHm2GCm+MrMAuMoL0mGbGw8aIHT/UNg/zMDb2/QjFU1ZHj7c/lI+vmmQx0ObZ+NfJfu+tyW6HqxsdMnkeog==", + "requires": { + "@expo/websql": "^1.0.1", + "lodash": "^4.17.15" + } + }, + "expo-status-bar": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.0.4.tgz", + "integrity": "sha512-s7nc496D/Zn1NGiMJ5wu6HyIdXxbgGtmZZtbHm7rpbcmLdf28GmMSNHDx7M0t00BMhky7VAurTCUo+BJs8ugsw==" + }, + "expo-structured-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/expo-structured-headers/-/expo-structured-headers-1.0.1.tgz", + "integrity": "sha512-U4frE8rT5x1LqZv5Ru/9CtzY8gh0wp1MfwTu5hetPydnwxXfWchuXvKgWRjEHglFU2X/29kYFY/J1UkPvCN8xg==" + }, + "expo-task-manager": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/expo-task-manager/-/expo-task-manager-9.1.0.tgz", + "integrity": "sha512-mCWpjsBrlP/8B97UUpEoimSlFY67qNlblL5RQoL07UTYG14CCVmoIwMwOgxkE3lw+078gPOiwDuDQvYibbLyRw==", + "requires": { + "@expo/config-plugins": "^1.0.18", + "unimodules-app-loader": "~2.1.0" + } + }, + "expo-updates": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.5.5.tgz", + "integrity": "sha512-1R8EKkT3GoDjMRQnDaTYv31gIYIaYQGHOrjHJfwq8ai9f1W1AHux6KAH2/H6sc2o9a7roWVwjDn2kKwCm9AeHg==", + "requires": { + "@expo/config-plugins": "^1.0.18", + "@expo/metro-config": "^0.1.59", + "expo-structured-headers": "~1.0.1", + "fbemitter": "^2.1.1", + "resolve-from": "^5.0.0", + "uuid": "^3.4.0" + } + }, + "expo-web-browser": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-9.1.0.tgz", + "integrity": "sha512-1UkOHWUBshY7n/R9xc4Q0LN0Dxqdvvotlp8sCM/6bUB/aE+9B+duoimKtUhlnzcvfAFWgF5y5x+bIf7j6PF7ig==", + "requires": { + "compare-urls": "^2.0.0" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==" + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fbemitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "requires": { + "fbjs": "^0.8.4" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", + "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", + "requires": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flow-parser": { + "version": "0.121.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.121.0.tgz", + "integrity": "sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==" + }, + "fontfaceobserver": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz", + "integrity": "sha512-ReOsO2F66jUa0jmv2nlM/s1MiutJx/srhAe2+TE8dJCMi02ZZOcCTxTCQFr3Yet+uODUtnr4Mewg+tNQ+4V1Ng==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getenv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", + "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hermes-engine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.7.2.tgz", + "integrity": "sha512-E2DkRaO97gwL98LPhgfkMqhHiNsrAjIfEk3wWYn2Y31xdkdWn0572H7RnVcGujMJVqZNJvtknxlpsUb8Wzc3KA==" + }, + "hermes-profile-transformer": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", + "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", + "requires": { + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "htmlparser2-without-node-native": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2-without-node-native/-/htmlparser2-without-node-native-3.9.2.tgz", + "integrity": "sha1-s+0FDYd9D/NGWWnjOYd7f59mMfY=", + "requires": { + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "eventemitter2": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "image-size": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", + "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inline-style-prefixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz", + "integrity": "sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg==", + "requires": { + "css-in-js-utils": "^2.0.0" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==" + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakset": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", + "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==" + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + } + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jetifier": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz", + "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==" + }, + "jimp": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.12.1.tgz", + "integrity": "sha512-0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.12.1", + "@jimp/plugins": "^0.12.1", + "@jimp/types": "^0.12.1", + "regenerator-runtime": "^0.13.3" + } + }, + "joi": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz", + "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "jpeg-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", + "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsc-android": { + "version": "245459.0.0", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-245459.0.0.tgz", + "integrity": "sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==" + }, + "jscodeshift": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.11.0.tgz", + "integrity": "sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g==", + "requires": { + "@babel/core": "^7.1.6", + "@babel/parser": "^7.1.6", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.1.0", + "@babel/plugin-proposal-optional-chaining": "^7.1.0", + "@babel/plugin-transform-modules-commonjs": "^7.1.0", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-typescript": "^7.1.0", + "@babel/register": "^7.0.0", + "babel-core": "^7.0.0-bridge.0", + "colors": "^1.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^3.1.10", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.20.3", + "temp": "^0.8.1", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.frompairs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz", + "integrity": "sha1-vE5SB/onV8E25XNhTpZkUGsrG9I=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "logkitty": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", + "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", + "requires": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^15.1.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5-file": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", + "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "requires": { + "buffer-alloc": "^1.1.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "metro": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.64.0.tgz", + "integrity": "sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/parser": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "absolute-path": "^0.0.0", + "accepts": "^1.3.7", + "async": "^2.4.0", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "error-stack-parser": "^2.0.6", + "fs-extra": "^1.0.0", + "graceful-fs": "^4.1.3", + "image-size": "^0.6.0", + "invariant": "^2.2.4", + "jest-haste-map": "^26.5.2", + "jest-worker": "^26.0.0", + "lodash.throttle": "^4.1.1", + "metro-babel-register": "0.64.0", + "metro-babel-transformer": "0.64.0", + "metro-cache": "0.64.0", + "metro-cache-key": "0.64.0", + "metro-config": "0.64.0", + "metro-core": "0.64.0", + "metro-hermes-compiler": "0.64.0", + "metro-inspector-proxy": "0.64.0", + "metro-minify-uglify": "0.64.0", + "metro-react-native-babel-preset": "0.64.0", + "metro-resolver": "0.64.0", + "metro-runtime": "0.64.0", + "metro-source-map": "0.64.0", + "metro-symbolicate": "0.64.0", + "metro-transform-plugins": "0.64.0", + "metro-transform-worker": "0.64.0", + "mime-types": "^2.1.27", + "mkdirp": "^0.5.1", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.1", + "rimraf": "^2.5.4", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "strip-ansi": "^6.0.0", + "temp": "0.8.3", + "throat": "^5.0.0", + "ws": "^1.1.5", + "yargs": "^15.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "metro-babel-transformer": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz", + "integrity": "sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==", + "requires": { + "@babel/core": "^7.0.0", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1" + } + }, + "metro-react-native-babel-preset": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", + "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-source-map": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.64.0.tgz", + "integrity": "sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.64.0", + "nullthrows": "^1.1.1", + "ob1": "0.64.0", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "metro-symbolicate": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz", + "integrity": "sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==", + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "ob1": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.64.0.tgz", + "integrity": "sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + } + } + }, + "metro-babel-register": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.64.0.tgz", + "integrity": "sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/register": "^7.0.0", + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "metro-babel-transformer": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz", + "integrity": "sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==", + "requires": { + "@babel/core": "^7.0.0", + "metro-source-map": "0.59.0" + } + }, + "metro-cache": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.64.0.tgz", + "integrity": "sha512-QvGfxe/1QQYM9XOlR8W1xqE9eHDw/AgJIgYGn/TxZxBu9Zga+Rgs1omeSZju45D8w5VWgMr83ma5kACgzvOecg==", + "requires": { + "metro-core": "0.64.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "metro-cache-key": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.64.0.tgz", + "integrity": "sha512-O9B65G8L/fopck45ZhdRosyVZdMtUQuX5mBWEC1NRj02iWBIUPLmYMjrunqIe8vHipCMp3DtTCm/65IlBmO8jg==" + }, + "metro-config": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.64.0.tgz", + "integrity": "sha512-QhM4asnX5KhlRWaugwVGNNXhX0Z85u5nK0UQ/A90bBb4xWyXqUe20e788VtdA75rkQiiI6wXTCIHWT0afbnjwQ==", + "requires": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^26.5.2", + "metro": "0.64.0", + "metro-cache": "0.64.0", + "metro-core": "0.64.0", + "metro-runtime": "0.64.0" + } + }, + "metro-core": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.64.0.tgz", + "integrity": "sha512-v8ZQ5j72EaUwamQ8pLfHlOHTyp7SbdazvHPzFGDpHnwIQqIT0Bw3Syg8R4regTlVG3ngpeSEAi005UITljmMcQ==", + "requires": { + "jest-haste-map": "^26.5.2", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.64.0" + } + }, + "metro-hermes-compiler": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.64.0.tgz", + "integrity": "sha512-CLAjVDWGAoGhbi2ZyPHnH5YDdfrDIx6+tzFWfHGIMTZkYBXsYta9IfYXBV8lFb6BIbrXLjlXZAOoosknetMPOA==" + }, + "metro-inspector-proxy": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.64.0.tgz", + "integrity": "sha512-KywbH3GNSz9Iqw4UH3smgaV2dBHHYMISeN7ORntDL/G+xfgPc6vt13d+zFb907YpUcXj5N0vdoiAHI5V/0y8IA==", + "requires": { + "connect": "^3.6.5", + "debug": "^2.2.0", + "ws": "^1.1.5", + "yargs": "^15.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + } + } + }, + "metro-minify-uglify": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.64.0.tgz", + "integrity": "sha512-DRwRstqXR5qfte9Nuwoov5dRXxL7fJeVlO5fGyOajWeO3+AgPjvjXh/UcLJqftkMWTPGUFuzAD5/7JC5v5FLWw==", + "requires": { + "uglify-es": "^3.1.9" + } + }, + "metro-react-native-babel-preset": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz", + "integrity": "sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-react-native-babel-transformer": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz", + "integrity": "sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==", + "requires": { + "@babel/core": "^7.0.0", + "babel-preset-fbjs": "^3.3.0", + "metro-babel-transformer": "0.59.0", + "metro-react-native-babel-preset": "0.59.0", + "metro-source-map": "0.59.0" + } + }, + "metro-resolver": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.64.0.tgz", + "integrity": "sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==", + "requires": { + "absolute-path": "^0.0.0" + } + }, + "metro-runtime": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.64.0.tgz", + "integrity": "sha512-m7XbWOaIOeFX7YcxUhmnOi6Pg8EaeL89xyZ+quZyZVF1aNoTr4w8FfbKxvijpjsytKHIZtd+43m2Wt5JrqyQmQ==" + }, + "metro-source-map": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.59.0.tgz", + "integrity": "sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.59.0", + "ob1": "0.59.0", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "metro-symbolicate": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz", + "integrity": "sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==", + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "0.59.0", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + } + }, + "metro-transform-plugins": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.64.0.tgz", + "integrity": "sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "nullthrows": "^1.1.1" + } + }, + "metro-transform-worker": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.64.0.tgz", + "integrity": "sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/parser": "^7.0.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.3.0", + "metro": "0.64.0", + "metro-babel-transformer": "0.64.0", + "metro-cache": "0.64.0", + "metro-cache-key": "0.64.0", + "metro-hermes-compiler": "0.64.0", + "metro-source-map": "0.64.0", + "metro-transform-plugins": "0.64.0", + "nullthrows": "^1.1.1" + }, + "dependencies": { + "metro-babel-transformer": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz", + "integrity": "sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==", + "requires": { + "@babel/core": "^7.0.0", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1" + } + }, + "metro-source-map": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.64.0.tgz", + "integrity": "sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.64.0", + "nullthrows": "^1.1.1", + "ob1": "0.64.0", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "metro-symbolicate": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz", + "integrity": "sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==", + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.64.0.tgz", + "integrity": "sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==" + } + } + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mockdate": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", + "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==" + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nanoid": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", + "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "nocache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", + "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" + }, + "node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "requires": { + "minimatch": "^3.0.2" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + }, + "node-stream-zip": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.5.tgz", + "integrity": "sha512-Lfi9xhSNvnJU35+4ZFlECXKJ70etAgJYWAVCdcEpksPnMrgwNqwkCJqdunoViVoFFV38C7AIodYE+2apuoK9Gw==" + }, + "noop-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/noop-fn/-/noop-fn-1.0.0.tgz", + "integrity": "sha1-XzPUfxPSFQ35PgywNmmemC94/78=" + }, + "normalize-css-color": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/normalize-css-color/-/normalize-css-color-1.0.2.tgz", + "integrity": "sha1-Apkel8zOxmI/5XOvu/Deah8+n40=" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "dependencies": { + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + }, + "ob1": { + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.59.0.tgz", + "integrity": "sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "requires": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-png": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", + "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", + "requires": { + "pngjs": "^3.3.0" + }, + "dependencies": { + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "requires": { + "pngjs": "^3.0.0" + }, + "dependencies": { + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + } + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", + "requires": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7", + "xmldom": "^0.5.0" + } + }, + "pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "pouchdb-collections": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-1.0.1.tgz", + "integrity": "sha1-/mOhfal3YRq+98uAJssalVP9g1k=" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-devtools-core": { + "version": "4.13.5", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.13.5.tgz", + "integrity": "sha512-k+P5VSKM6P22Go9IQ8dJmjj9fbztvKt1iRDI/4wS5oTvd1EnytIJMYB59wZt+D3kgp64jklNX/MRmY42xAQ08g==", + "requires": { + "shell-quote": "^1.6.1", + "ws": "^7" + }, + "dependencies": { + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-native": { + "version": "0.64.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.64.2.tgz", + "integrity": "sha512-Ty/fFHld9DcYsFZujXYdeVjEhvSeQcwuTGXezyoOkxfiGEGrpL/uwUZvMzwShnU4zbbTKDu2PAm/uwuOittRGA==", + "requires": { + "@jest/create-cache-key-function": "^26.5.0", + "@react-native-community/cli": "^5.0.1-alpha.1", + "@react-native-community/cli-platform-android": "^5.0.1-alpha.1", + "@react-native-community/cli-platform-ios": "^5.0.1-alpha.1", + "@react-native/assets": "1.0.0", + "@react-native/normalize-color": "1.0.0", + "@react-native/polyfills": "1.0.0", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "base64-js": "^1.1.2", + "event-target-shim": "^5.0.1", + "hermes-engine": "~0.7.0", + "invariant": "^2.2.4", + "jsc-android": "^245459.0.0", + "metro-babel-register": "0.64.0", + "metro-react-native-babel-transformer": "0.64.0", + "metro-runtime": "0.64.0", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1", + "pretty-format": "^26.5.2", + "promise": "^8.0.3", + "prop-types": "^15.7.2", + "react-devtools-core": "^4.6.0", + "react-native-codegen": "^0.0.6", + "react-refresh": "^0.4.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "^0.20.1", + "shelljs": "^0.8.4", + "stacktrace-parser": "^0.1.3", + "use-subscription": "^1.0.0", + "whatwg-fetch": "^3.0.0", + "ws": "^6.1.4" + }, + "dependencies": { + "@react-native-community/cli": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-5.0.1.tgz", + "integrity": "sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==", + "requires": { + "@react-native-community/cli-debugger-ui": "^5.0.1", + "@react-native-community/cli-hermes": "^5.0.1", + "@react-native-community/cli-server-api": "^5.0.1", + "@react-native-community/cli-tools": "^5.0.1", + "@react-native-community/cli-types": "^5.0.1", + "appdirsjs": "^1.2.4", + "chalk": "^3.0.0", + "command-exists": "^1.2.8", + "commander": "^2.19.0", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.3", + "graceful-fs": "^4.1.3", + "joi": "^17.2.1", + "leven": "^3.1.0", + "lodash": "^4.17.15", + "metro": "^0.64.0", + "metro-config": "^0.64.0", + "metro-core": "^0.64.0", + "metro-react-native-babel-transformer": "^0.64.0", + "metro-resolver": "^0.64.0", + "metro-runtime": "^0.64.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "node-stream-zip": "^1.9.1", + "ora": "^3.4.0", + "pretty-format": "^26.6.2", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "serve-static": "^1.13.1", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "metro-babel-transformer": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz", + "integrity": "sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==", + "requires": { + "@babel/core": "^7.0.0", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1" + } + }, + "metro-react-native-babel-preset": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz", + "integrity": "sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-syntax-optional-chaining": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.5.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-react-native-babel-transformer": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.64.0.tgz", + "integrity": "sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==", + "requires": { + "@babel/core": "^7.0.0", + "babel-preset-fbjs": "^3.3.0", + "metro-babel-transformer": "0.64.0", + "metro-react-native-babel-preset": "0.64.0", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1" + } + }, + "metro-source-map": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.64.0.tgz", + "integrity": "sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "0.64.0", + "nullthrows": "^1.1.1", + "ob1": "0.64.0", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "metro-symbolicate": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz", + "integrity": "sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==", + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "0.64.0", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + } + }, + "ob1": { + "version": "0.64.0", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.64.0.tgz", + "integrity": "sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "react-native-cheerio": { + "version": "1.0.0-rc.4", + "resolved": "https://registry.npmjs.org/react-native-cheerio/-/react-native-cheerio-1.0.0-rc.4.tgz", + "integrity": "sha512-V2nAoxikHGV1vl2nKL2rlw832Ze+p8op5p6MDltd5ZrEZGp1+eTl+qjC+l4TY9ju3CNpt/uiNuOEQoWqgdwzUQ==", + "requires": { + "buffer": "^5.0.7", + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2-without-node-native": "^3.9.0", + "lodash": "^4.15.0", + "react-native-parse-html": "^2.2.6" + } + }, + "react-native-codegen": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.6.tgz", + "integrity": "sha512-cMvrUelD81wiPitEPiwE/TCNscIVauXxmt4NTGcy18HrUd0WRWXfYzAQGXm0eI87u3NMudNhqFj2NISJenxQHg==", + "requires": { + "flow-parser": "^0.121.0", + "jscodeshift": "^0.11.0", + "nullthrows": "^1.1.1" + } + }, + "react-native-collapsible-header-views": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/react-native-collapsible-header-views/-/react-native-collapsible-header-views-1.1.2.tgz", + "integrity": "sha512-HjhIKkJa3tkPC6i1G9hh9IdjiG4Df2aB3jU1z1RbNIWBqrCa83BfkstwtbzeAADJVkTBkLTldDd6EbMybbm0DA==", + "requires": { + "fast-memoize": "^2.5.1" + } + }, + "react-native-device-info": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-8.1.3.tgz", + "integrity": "sha512-73e3wiGFL8DvIXEd8x4Aq+mO8mZvHARwfYorIEu+X0trLHY92bP5Ict8DJHDjCQ0+HtAvpA4Wda2VoUVN1zh6Q==" + }, + "react-native-easing-gradient": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/react-native-easing-gradient/-/react-native-easing-gradient-0.1.2.tgz", + "integrity": "sha512-oeSJ8nSrCxiCO5mLEVc59Evva4unjvH6AQ8vJFyJ7PIKRybIV5JC+OBU8VnF+V7oQ9dnDBpx2qT5Mh+oxd+/tw==" + }, + "react-native-fast-image": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-8.3.4.tgz", + "integrity": "sha512-LpzAdjUphihUpVEBn5fEv5AILe55rHav0YiZroPZ1rumKDhAl4u2cG01ku2Pb7l8sayjTsNu7FuURAlXUUDsow==" + }, + "react-native-fit-image": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/react-native-fit-image/-/react-native-fit-image-1.5.5.tgz", + "integrity": "sha512-Wl3Vq2DQzxgsWKuW4USfck9zS7YzhvLNPpkwUUCF90bL32e1a0zOVQ3WsJILJOwzmPdHfzZmWasiiAUNBkhNkg==", + "requires": { + "prop-types": "^15.5.10" + } + }, + "react-native-gesture-handler": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.10.3.tgz", + "integrity": "sha512-cBGMi1IEsIVMgoox4RvMx7V2r6bNKw0uR1Mu1o7NbuHS6BRSVLq0dP34l2ecnPlC+jpWd3le6Yg1nrdCjby2Mw==", + "requires": { + "@egjs/hammerjs": "^2.0.17", + "fbjs": "^3.0.0", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "prop-types": "^15.7.2" + }, + "dependencies": { + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + } + } + }, + "react-native-immersive-mode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-immersive-mode/-/react-native-immersive-mode-2.0.0.tgz", + "integrity": "sha512-qpn7L9AckhE7rvHNaxjZlIp2RDa5QUBLmDOB5IoyatGq9Ahhx3AjH0ZtZVFcP28gS5emZ6/j9tehCEwXyLWl6Q==" + }, + "react-native-iphone-x-helper": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz", + "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==" + }, + "react-native-navigation-bar-color": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-native-navigation-bar-color/-/react-native-navigation-bar-color-2.0.1.tgz", + "integrity": "sha512-1kE/oxWt+HYjRxdZdvke9tJ365xaee5n3+euOQA1En8zQuSbOxiE4SYEGM7TeaWnmLJ0l37mRnPHaB2H4mGh0A==" + }, + "react-native-offline": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/react-native-offline/-/react-native-offline-5.8.0.tgz", + "integrity": "sha512-/38J9Unem9iYzJtG5BI0fw6VGsONW/f5RtSzMjX1039XLTw84GN0pj/Htazza22aRR2oe3IMIUfyxhZfFlrv2g==", + "requires": { + "lodash": "^4.17.11", + "react-redux": "^7.0.0", + "redux": "^4.0.1", + "redux-saga": "^1.0.2" + } + }, + "react-native-pager-view": { + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-5.1.10.tgz", + "integrity": "sha512-sVWEPaxSyp2TOQ9yt+v+ecEdZ2lGnZ9TtoNU+WA1c6SjYdQlIvS2ZMb2hvdmgTMCnZpzKF02WH9BimGOzQRDIg==" + }, + "react-native-paper": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-4.8.1.tgz", + "integrity": "sha512-WgmqrDdcrr0ZbuiLCwMpmOMhl1n8uIvNulxsl2oCGtD8oeMkPJKHf4G/ONR+iNrSXcFbJek+uDRSmcGA5kDfUA==", + "requires": { + "@callstack/react-theme-provider": "^3.0.5", + "color": "^3.1.2", + "react-native-iphone-x-helper": "^1.3.1" + } + }, + "react-native-parse-html": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/react-native-parse-html/-/react-native-parse-html-2.2.6.tgz", + "integrity": "sha1-IfKPl7OEB3hHWbxZ4kS1EQnZzIc=", + "requires": { + "react-native-stream": "^0.1.0" + } + }, + "react-native-reanimated": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.1.0.tgz", + "integrity": "sha512-tlPvvcdf+X7HGQ7g/7npBFhwMznfdk7MHUc9gUB/kp2abSscXNe/kOVKlrNEOO4DS11rNOXc+llFxVFMuNk0zA==", + "requires": { + "@babel/plugin-transform-object-assign": "^7.10.4", + "fbjs": "^3.0.0", + "mockdate": "^3.0.2", + "string-hash-64": "^1.0.3" + }, + "dependencies": { + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + } + } + }, + "react-native-safe-area-context": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-3.2.0.tgz", + "integrity": "sha512-k2Nty4PwSnrg9HwrYeeE+EYqViYJoOFwEy9LxL5RIRfoqxAq/uQXNGwpUg2/u4gnKpBbEPa9eRh15KKMe/VHkA==" + }, + "react-native-screens": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.0.0.tgz", + "integrity": "sha512-35II5oxTaVp3OP8y0eLPOPpQkxG4fRKQ+dL1YSE1we5kCZFOU0l/Rn0T79HbyUu1LPwUZr6lZupPs0ULnRyMuQ==" + }, + "react-native-stream": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/react-native-stream/-/react-native-stream-0.1.9.tgz", + "integrity": "sha1-E2gMzok8p9NKhmZNnVtO4adyyXw=", + "requires": { + "base64-js": "^1.2.0", + "ieee754": "^1.1.8" + } + }, + "react-native-swipe-gestures": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/react-native-swipe-gestures/-/react-native-swipe-gestures-1.0.5.tgz", + "integrity": "sha512-Ns7Bn9H/Tyw278+5SQx9oAblDZ7JixyzeOczcBK8dipQk2pD7Djkcfnf1nB/8RErAmMLL9iXgW0QHqiII8AhKw==" + }, + "react-native-tab-view": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-3.0.1.tgz", + "integrity": "sha512-L7qXtYz5Z+NdWyu38zaJrlHA/8H6rNFRZXe3ydym12UEEPPoefbVZ71b9YK2O6QP0u4pUlzMpMVM/Lsz2DJ4jg==" + }, + "react-native-unimodules": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/react-native-unimodules/-/react-native-unimodules-0.13.3.tgz", + "integrity": "sha512-fjbNbAcvJHF8Ywqe77oveRW1WfaAKCQGV4a3Fxgpai17oNHq1LFwwKw0crFo0k7Njm5u7kCMVNbm9ZILNBfABQ==", + "requires": { + "@unimodules/core": "~7.1.0", + "@unimodules/react-native-adapter": "~6.2.2", + "chalk": "^2.4.2", + "expo-asset": "~8.3.1", + "expo-constants": "~10.1.3", + "expo-file-system": "~11.0.2", + "expo-image-loader": "~2.1.1", + "expo-permissions": "~12.0.1", + "find-up": "~5.0.0", + "unimodules-app-loader": "~2.1.0", + "unimodules-barcode-scanner-interface": "~6.1.0", + "unimodules-camera-interface": "~6.1.0", + "unimodules-constants-interface": "~6.1.0", + "unimodules-face-detector-interface": "~6.1.0", + "unimodules-file-system-interface": "~6.1.0", + "unimodules-font-interface": "~6.1.0", + "unimodules-image-loader-interface": "~6.1.0", + "unimodules-permissions-interface": "~6.1.0", + "unimodules-sensors-interface": "~6.1.0", + "unimodules-task-manager-interface": "~6.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "react-native-vector-icons": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-7.1.0.tgz", + "integrity": "sha512-V2a1zJ4i+kS8O4j183gIwX14St9AxxXabxwYpFBgRhvr2NDXyFcjHDEAgrOYYlt2W57e20aN1tBDU/I+wn9WtQ==", + "requires": { + "lodash.frompairs": "^4.0.1", + "lodash.isequal": "^4.5.0", + "lodash.isstring": "^4.0.1", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "lodash.template": "^4.5.0", + "prop-types": "^15.7.2", + "yargs": "^15.0.2" + } + }, + "react-native-web": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.16.5.tgz", + "integrity": "sha512-bsoSq9pnjPerNKC1uzvJi7464to3SSMbGG9QFdj6woV3xk5fhq2jB2vQ5+iH/KC7F5lpDRukcb2hMHL1rzKJUQ==", + "requires": { + "array-find-index": "^1.0.2", + "create-react-class": "^15.7.0", + "fbjs": "^3.0.0", + "hyphenate-style-name": "^1.0.4", + "inline-style-prefixer": "^6.0.0", + "normalize-css-color": "^1.0.2", + "prop-types": "^15.6.0" + }, + "dependencies": { + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + } + } + }, + "react-native-webview": { + "version": "11.6.2", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-11.6.2.tgz", + "integrity": "sha512-7e5ltLBgqt1mX0gdTTS2nFPIjfS6y300wqJ4rLWqU71lDO+8ZeayfsF5qo83qxo2Go74CtLnSeWae4pdGwUqYw==", + "requires": { + "escape-string-regexp": "2.0.0", + "invariant": "2.2.4" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "react-redux": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.4.tgz", + "integrity": "sha512-hOQ5eOSkEJEXdpIKbnRyl04LhaWabkDPV+Ix97wqQX3T3d2NQ8DUblNXXtNMavc7DpswyQM6xfaN4HQDKNY2JA==", + "requires": { + "@babel/runtime": "^7.12.1", + "@types/react-redux": "^7.1.16", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^16.13.1" + } + }, + "react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", + "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "recast": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.4.tgz", + "integrity": "sha512-6qLIBGGRcwjrTZGIiBpJVC/NeuXpogXNyRQpqU1zWPUigCphvApoCs9KIwDYh1eDuJ6dAFlQoi/QUyE5KQ6RBQ==", + "requires": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "redux": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz", + "integrity": "sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==", + "requires": { + "@babel/runtime": "^7.9.2" + } + }, + "redux-devtools-extension": { + "version": "2.13.9", + "resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz", + "integrity": "sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A==" + }, + "redux-persist": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-6.0.0.tgz", + "integrity": "sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==" + }, + "redux-saga": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.1.3.tgz", + "integrity": "sha512-RkSn/z0mwaSa5/xH/hQLo8gNf4tlvT18qXDNvedihLcfzh+jMchDgaariQoehCpgRltEm4zHKJyINEz6aqswTw==", + "requires": { + "@redux-saga/core": "^1.1.3" + } + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "rn-sliding-up-panel": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rn-sliding-up-panel/-/rn-sliding-up-panel-2.4.5.tgz", + "integrity": "sha512-Z8TEJE8KMjx0s9P4ikUDAlvyDgvF9n/6QR5GIUi8iWRKhiYJ4sddKjAIDYVI5yT1q+rJu+iAo7Z310H3yCb3sQ==", + "requires": { + "clamp": "^1.0.1", + "prop-types": "^15.7.2" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + }, + "dependencies": { + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + } + } + }, + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-plist": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.1.tgz", + "integrity": "sha512-pKMCVKvZbZTsqYR6RKgLfBHkh2cV89GXcA/0CVPje3sOiNOnXA8+rp/ciAMZ7JRaUdLzlEM6JFfUn+fS6Nt3hg==", + "requires": { + "bplist-creator": "0.0.8", + "bplist-parser": "0.2.0", + "plist": "^3.0.1" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "slugify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", + "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "requires": { + "type-fest": "^0.7.1" + }, + "dependencies": { + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + }, + "string-hash-64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string-hash-64/-/string-hash-64-1.0.3.tgz", + "integrity": "sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "requires": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + } + } + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" + }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + } + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "tiny-queue": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tiny-queue/-/tiny-queue-0.2.1.tgz", + "integrity": "sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY=" + }, + "tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + }, + "typescript-compare": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", + "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", + "requires": { + "typescript-logic": "^0.0.0" + } + }, + "typescript-logic": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", + "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==" + }, + "typescript-tuple": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", + "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", + "requires": { + "typescript-compare": "^0.0.2" + } + }, + "ua-parser-js": { + "version": "0.7.28", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", + "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "unimodules-app-loader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unimodules-app-loader/-/unimodules-app-loader-2.1.0.tgz", + "integrity": "sha512-W+D+hVXq6jOvBm7QVwODPENz6Lupj73QequNNG+6GCTkqn4ybq/lba9IQvJQT2QzdL3luVHin+eym18cDblMlg==" + }, + "unimodules-barcode-scanner-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-6.1.0.tgz", + "integrity": "sha512-+McBDniXReXNS8PnGDjIyDikb+cRXSfsZMLsF0gohEEV0xdA6HhPvFA0ryv65j2NKOyIiWmEHjv+yDOoewDq3w==" + }, + "unimodules-camera-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-camera-interface/-/unimodules-camera-interface-6.1.0.tgz", + "integrity": "sha512-Rbszrh54kIB4vA+AzDWFXplBz1UrxQNR6Ls0eJDAKffbjDfyQIP6SgIPjUlzqGVnzknyZ1SMGiFFSFCM4BCOAw==" + }, + "unimodules-constants-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-constants-interface/-/unimodules-constants-interface-6.1.0.tgz", + "integrity": "sha512-uPLFGufbdefRQeINyUfkw2mVJJg+6kH23RR4ATfUAsrD6vGLuONwduHvRwh+rcL9fzPVM4jsfH6iATrolmiatg==" + }, + "unimodules-face-detector-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-face-detector-interface/-/unimodules-face-detector-interface-6.1.0.tgz", + "integrity": "sha512-L2E8a2OjMPxfVh/OGt6Y5HWbEaJ9h3Hkmvx02GCferBPKgN3dcxFMaI53d1BVV9QA3r4YuLBP6RrolG/qy/r7A==" + }, + "unimodules-file-system-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-file-system-interface/-/unimodules-file-system-interface-6.1.0.tgz", + "integrity": "sha512-iJGm6nWF+PhxqFbeqC2Ku4XjglbL9z7aofkSX5S7bZ3Oi4v1NO1UOe9nczU17Ps19sfYZJgkiD4FiQaFCmAnKg==" + }, + "unimodules-font-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-font-interface/-/unimodules-font-interface-6.1.0.tgz", + "integrity": "sha512-OfSeWx9ew2SNENj/HhctfPU7hqeW0bzVZYGGJ0M6RNcRRWzwA6ltawyYwtuvRe/EEU3LwrFUSKPMCi9867hLyw==" + }, + "unimodules-image-loader-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-image-loader-interface/-/unimodules-image-loader-interface-6.1.0.tgz", + "integrity": "sha512-o8hZI6J6DGYyo2xSH6J+ipxME0blNfmaWU3P2Y2AUVxbEPdgjT2sVmufRWMKGhrt7gaNW4xF/JUbF9lq4Rui7w==" + }, + "unimodules-permissions-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-permissions-interface/-/unimodules-permissions-interface-6.1.0.tgz", + "integrity": "sha512-jeJx/y+Vn/Cp1/4su5XJ06UBul83MpXkYEqIOAb2jwaikhmj6tNwko7HpKy9OhfGfrhddCzwtedlro8xxZUk9A==" + }, + "unimodules-sensors-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-sensors-interface/-/unimodules-sensors-interface-6.1.0.tgz", + "integrity": "sha512-tJDOo3p4q4wmhyuwapNjYeON7cd5OSPYr3qDfMgPPg9m6pYM/FdQJ1PKMNb1NJUckpDgQ67Dows2jAdqkNRZSw==" + }, + "unimodules-task-manager-interface": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimodules-task-manager-interface/-/unimodules-task-manager-interface-6.1.0.tgz", + "integrity": "sha512-wSsuX5fzd3oCCjHvrRFxysmCswhHZbJflVyAWzgSHtyMgxBOZobGN1C0UQ/plcu/JWY2+maTDPpE9OU6wzzzdg==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "requires": { + "pako": "^1.0.5" + } + }, + "util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xcode": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", + "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", + "requires": { + "simple-plist": "^1.1.0", + "uuid": "^7.0.3" + }, + "dependencies": { + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + } + } + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "requires": { + "sax": "^1.2.4" + } + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "requires": { + "sax": "^1.2.1" + } + }, + "xmldom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", + "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..0058c032 --- /dev/null +++ b/package.json @@ -0,0 +1,72 @@ +{ + "scripts": { + "start": "react-native start", + "android": "react-native run-android", + "ios": "react-native run-ios", + "web": "expo start --web", + "eject": "expo eject" + }, + "dependencies": { + "@react-native-async-storage/async-storage": "^1.13.0", + "@react-native-community/masked-view": "0.1.10", + "@react-native-community/netinfo": "6.0.0", + "@react-native-community/slider": "3.0.3", + "@react-navigation/material-bottom-tabs": "^5.3.10", + "@react-navigation/native": "^5.8.10", + "@react-navigation/stack": "^5.12.8", + "expo": "^41.0.1", + "expo-background-fetch": "~9.1.0", + "expo-document-picker": "^9.1.2", + "expo-file-system": "~11.0.2", + "expo-font": "~9.1.0", + "expo-linear-gradient": "~9.1.0", + "expo-linking": "~2.2.3", + "expo-notifications": "~0.11.6", + "expo-permissions": "^12.0.1", + "expo-sharing": "~9.1.2", + "expo-splash-screen": "~0.10.2", + "expo-sqlite": "~9.1.0", + "expo-status-bar": "~1.0.4", + "expo-task-manager": "~9.1.0", + "expo-updates": "~0.5.4", + "expo-web-browser": "~9.1.0", + "moment": "^2.29.1", + "qs": "^6.10.1", + "react": "16.13.1", + "react-dom": "16.13.1", + "react-native": "^0.64.2", + "react-native-cheerio": "^1.0.0-rc.4", + "react-native-collapsible-header-views": "^1.1.2", + "react-native-device-info": "^8.1.3", + "react-native-easing-gradient": "^0.1.2", + "react-native-fast-image": "^8.3.4", + "react-native-fit-image": "^1.5.5", + "react-native-gesture-handler": "~1.10.2", + "react-native-immersive-mode": "^2.0.0", + "react-native-navigation-bar-color": "^2.0.1", + "react-native-offline": "^5.7.0", + "react-native-pager-view": "^5.1.10", + "react-native-paper": "^4.5.0", + "react-native-reanimated": "^2.1.0", + "react-native-safe-area-context": "3.2.0", + "react-native-screens": "~3.0.0", + "react-native-swipe-gestures": "^1.0.5", + "react-native-tab-view": "^3.0.1", + "react-native-unimodules": "~0.13.3", + "react-native-vector-icons": "^7.1.0", + "react-native-web": "^0.16.5", + "react-native-webview": "^11.6.2", + "react-redux": "^7.2.2", + "redux": "^4.0.5", + "redux-devtools-extension": "^2.13.9", + "redux-persist": "^6.0.0", + "redux-thunk": "^2.3.0", + "rn-sliding-up-panel": "^2.4.4" + }, + "devDependencies": { + "@babel/core": "~7.9.0" + }, + "private": true, + "name": "lnreader-eject", + "version": "1.0.0" +} diff --git a/src/components/Appbar.js b/src/components/Appbar.js new file mode 100644 index 00000000..45b86b4e --- /dev/null +++ b/src/components/Appbar.js @@ -0,0 +1,142 @@ +import React, { useRef } from "react"; +import { View, TextInput, StyleSheet } from "react-native"; +import { + TouchableRipple, + IconButton, + Appbar as MaterialAppbar, +} from "react-native-paper"; +import Constants from "expo-constants"; + +import { useNavigation } from "@react-navigation/native"; +import { useSelector } from "react-redux"; + +export const Appbar = ({ title, onBackAction, style, children }) => { + const theme = useSelector((state) => state.settingsReducer.theme); + + return ( + + {onBackAction && ( + + )} + + {children} + + ); +}; + +export const SearchAppbar = ({ + placeholder, + getSearchResults, + setSearchText, + searchText, + getNovels, + setLoading, + screen, + openWebView, +}) => { + const searchRef = useRef(null); + + const navigation = useNavigation(); + + const theme = useSelector((state) => state.settingsReducer.theme); + + return ( + searchRef.current.focus()} + style={[ + styles.searchAppbarContainer, + { backgroundColor: theme.searchBarColor }, + ]} + > + + + {screen === "Library" ? ( + + ) : ( + navigation.goBack()} + /> + )} + { + setSearchText(text); + if (screen === "Library") { + getSearchResults(text); + } + }} + onSubmitEditing={() => { + if (screen === "Extension") { + getSearchResults(searchText); + } + }} + defaultValue={searchText} + /> + + {searchText !== "" && ( + { + setLoading?.(true); + getNovels(); + setSearchText(""); + }} + /> + )} + {openWebView && ( + + )} + + + ); +}; + +const styles = StyleSheet.create({ + searchAppbarContainer: { + marginTop: Constants.statusBarHeight + 8, + height: 48, + flexDirection: "row", + alignItems: "center", + paddingHorizontal: 16, + marginBottom: 12, + borderRadius: 8, + marginHorizontal: 12, + elevation: 2, + }, +}); diff --git a/src/components/BottomSheetHandle.js b/src/components/BottomSheetHandle.js new file mode 100644 index 00000000..6c28805d --- /dev/null +++ b/src/components/BottomSheetHandle.js @@ -0,0 +1,17 @@ +import React from "react"; +import { View } from "react-native"; + +const BottomSheetHandle = ({ theme }) => ( + +); + +export default BottomSheetHandle; diff --git a/src/components/ColorPickerModal.js b/src/components/ColorPickerModal.js new file mode 100644 index 00000000..a2b3b943 --- /dev/null +++ b/src/components/ColorPickerModal.js @@ -0,0 +1,97 @@ +import React, { useState } from "react"; +import { StyleSheet, Text } from "react-native"; + +import { Modal, Portal, TextInput } from "react-native-paper"; + +const ColorPickerModal = ({ + theme, + color, + title, + onSubmit, + hideModal, + modalVisible, +}) => { + const [text, setText] = useState(color); + const [error, setError] = useState(); + + const onDismiss = () => { + hideModal(); + setText(); + setError(); + }; + + const onChangeText = (text) => setText(text); + + const onSubmitEditing = () => { + const re = /^#([0-9a-f]{6}|[0-9a-f]{3})$/i; + + if (text.match(re)) { + onSubmit(text); + hideModal(); + } else { + setError("Enter a valid hex color code"); + } + }; + + const textInputTheme = { + colors: { + primary: color, + placeholder: theme.textColorHint, + text: theme.textColorPrimary, + background: "transparent", + }, + }; + + return ( + + + + {title} + + + {error} + + + ); +}; + +export default ColorPickerModal; + +const styles = StyleSheet.create({ + modalContainer: { + margin: 30, + padding: 20, + borderRadius: 8, + }, + modalTitle: { + fontSize: 18, + marginBottom: 16, + }, + errorText: { + color: "#FF0033", + paddingTop: 8, + }, +}); diff --git a/src/components/Common.js b/src/components/Common.js new file mode 100644 index 00000000..d7b42017 --- /dev/null +++ b/src/components/Common.js @@ -0,0 +1,21 @@ +import React from "react"; +import { View, Text, Image, StyleSheet } from "react-native"; + +const ScreenContainer = ({ children, theme }) => ( + + {children} + +); + +const Row = ({ children, style }) => ( + {children} +); + +export { ScreenContainer, Row }; + +const styles = StyleSheet.create({ + row: { + flexDirection: "row", + alignItems: "center", + }, +}); diff --git a/src/components/EmptyView.js b/src/components/EmptyView.js new file mode 100644 index 00000000..b6078189 --- /dev/null +++ b/src/components/EmptyView.js @@ -0,0 +1,51 @@ +import React from "react"; +import { StyleSheet, Text, View } from "react-native"; +import { useSelector } from "react-redux"; + +const EmptyView = ({ icon, description, style, children, iconStyle }) => { + const theme = useSelector((state) => state.settingsReducer.theme); + + return ( + + + {icon} + + + {description} + + {children} + + ); +}; + +export default EmptyView; + +const styles = StyleSheet.create({ + emptyViewContainer: { + flex: 1, + justifyContent: "center", + alignItems: "center", + }, + emptyViewIcon: { + fontSize: 45, + }, + emptyViewText: { + fontWeight: "bold", + marginTop: 10, + textAlign: "center", + paddingHorizontal: 30, + }, +}); diff --git a/src/components/ErrorView.js b/src/components/ErrorView.js new file mode 100644 index 00000000..dc2a3ad3 --- /dev/null +++ b/src/components/ErrorView.js @@ -0,0 +1,28 @@ +import React from "react"; +import { Text, View } from "react-native"; + +import { IconButton } from "react-native-paper"; +import { Row } from "./Common"; + +import EmptyView from "./EmptyView"; + +const ErrorView = ({ theme, onRetry, error, openWebView }) => ( + + + + Retry + + +); + +export default ErrorView; diff --git a/src/components/Fullscreen.js b/src/components/Fullscreen.js new file mode 100644 index 00000000..050c6904 --- /dev/null +++ b/src/components/Fullscreen.js @@ -0,0 +1,2 @@ +import { NativeModules } from "react-native"; +module.exports = NativeModules.FullScreen; diff --git a/src/components/List.js b/src/components/List.js new file mode 100644 index 00000000..402b5409 --- /dev/null +++ b/src/components/List.js @@ -0,0 +1,92 @@ +import React from "react"; +import { StyleSheet } from "react-native"; + +import { List, Divider as PaperDivider } from "react-native-paper"; +import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons"; + +const ListSection = ({ children }) => ( + {children} +); + +const ListSubHeader = ({ children, theme }) => ( + + {children} + +); + +const ListItem = ({ + title, + description, + icon, + onPress, + theme, + right, + iconColor, + titleStyle, + style, +}) => ( + + icon && ( + + ) + } + right={() => + right && ( + + ) + } + onPress={onPress} + rippleColor={theme.rippleColor} + /> +); + +const Divider = ({ theme }) => ( + +); + +const InfoItem = ({ title, icon, theme }) => ( + + icon && ( + + ) + } + /> +); + +export { ListSection, ListSubHeader, ListItem, Divider, InfoItem }; + +const styles = StyleSheet.create({ + listSection: { + flex: 1, + marginVertical: 0, + }, + listSubHeader: { + paddingBottom: 5, + }, +}); diff --git a/src/components/ListView.js b/src/components/ListView.js new file mode 100644 index 00000000..4b6520a5 --- /dev/null +++ b/src/components/ListView.js @@ -0,0 +1,65 @@ +import React from "react"; +import { StyleSheet, View, Text, Image } from "react-native"; +import FastImage from "react-native-fast-image"; +import { TouchableRipple } from "react-native-paper"; + +const ListView = ({ item, downloadBadge, unreadBadge, theme, onPress }) => { + return ( + + <> + + + {item.novelName} + + + {downloadBadge} + {unreadBadge} + + + + ); +}; + +export default ListView; + +const styles = StyleSheet.create({ + listView: { + flex: 1, + flexDirection: "row", + alignItems: "center", + paddingVertical: 8, + paddingHorizontal: 12, + }, + extensionIcon: { + width: 40, + height: 40, + borderRadius: 4, + }, + novelName: { + flex: 1, + marginLeft: 16, + fontSize: 15, + paddingRight: 8, + flexWrap: "wrap", + }, + badgeContainer: { + flexDirection: "row", + justifyContent: "flex-end", + alignItems: "flex-end", + }, +}); diff --git a/src/components/NewUpdateDialog.js b/src/components/NewUpdateDialog.js new file mode 100644 index 00000000..edd2c30f --- /dev/null +++ b/src/components/NewUpdateDialog.js @@ -0,0 +1,80 @@ +import React, { useState } from "react"; +import { StyleSheet, View, Text } from "react-native"; +import { Portal, Modal, Button } from "react-native-paper"; +import * as Linking from "expo-linking"; +import { useTheme } from "../hooks/reduxHooks"; + +const NewUpdateDialog = ({ newVersion }) => { + const [newUpdateDialog, showNewUpdateDialog] = useState(true); + + const theme = useTheme(); + + return ( + + showNewUpdateDialog(false)} + contentContainerStyle={[ + styles.containerStyle, + { backgroundColor: theme.colorPrimaryDark }, + ]} + > + + {`New update available ${newVersion.tag_name}`} + + + {newVersion.body} + + + + + + + + ); +}; + +export default NewUpdateDialog; + +const styles = StyleSheet.create({ + containerStyle: { + padding: 20, + margin: 20, + borderRadius: 6, + }, + modalHeader: { + fontSize: 20, + marginBottom: 10, + }, +}); diff --git a/src/components/NovelCover.js b/src/components/NovelCover.js new file mode 100644 index 00000000..ff1c5bf9 --- /dev/null +++ b/src/components/NovelCover.js @@ -0,0 +1,189 @@ +import React from "react"; +import { StyleSheet, View, Text, useWindowDimensions } from "react-native"; +import { LinearGradient } from "expo-linear-gradient"; +import { TouchableRipple } from "react-native-paper"; + +import { useSelector } from "react-redux"; +import { useSettings, useTheme } from "../hooks/reduxHooks"; +import ListView from "./ListView"; +import FastImage from "react-native-fast-image"; +import { getDeviceOrientation } from "../services/utils/helpers"; + +const NovelCover = ({ item, onPress, libraryStatus }) => { + const theme = useTheme(); + const { displayMode, novelsPerRow, showDownloadBadges, showUnreadBadges } = + useSettings(); + + const window = useWindowDimensions(); + + const orientation = getDeviceOrientation(); + + const getNovelsPerRow = () => + orientation === "landscape" ? 6 : novelsPerRow; + + const getHeight = () => (window.width / getNovelsPerRow()) * (4 / 3); + + const comfortableTitle = () => + displayMode === 1 && ( + + {item.novelName} + + ); + + const compactTitle = () => + displayMode === 0 && ( + + + + {item.novelName} + + + + ); + + const unreadBadge = () => + showUnreadBadges && + item.chaptersUnread && ( + + {item.chaptersUnread} + + ); + + const downloadBadge = () => + showDownloadBadges && + item.chaptersDownloaded && ( + + {item.chaptersDownloaded} + + ); + + return displayMode !== 2 ? ( + + + <> + + + {downloadBadge()} + {unreadBadge()} + + {compactTitle()} + + {comfortableTitle()} + + + + ) : ( + + ); +}; + +export default NovelCover; + +const styles = StyleSheet.create({ + titleContainer: { + flex: 1, + justifyContent: "flex-end", + borderRadius: 4, + }, + title: { + fontFamily: "pt-sans-bold", + fontSize: 14, + padding: 8, + }, + linearGradient: { + bottom: -1, + borderRadius: 4, + }, + opac: { + paddingHorizontal: 4.5, + paddingVertical: 4, + borderRadius: 4, + }, + extensionIcon: { + width: 42, + height: 42, + borderRadius: 4, + }, + listView: { + flex: 1, + paddingVertical: 8, + paddingHorizontal: 12, + flexDirection: "row", + alignItems: "center", + borderRadius: 4, + }, + + downloadBadge: { + backgroundColor: "#47a84a", + color: "#FFFFFF", + borderTopLeftRadius: 4, + borderBottomLeftRadius: 4, + paddingTop: 2, + paddingHorizontal: 4, + fontSize: 12, + }, + unreadBadge: { + color: "#FFFFFF", + borderTopRightRadius: 4, + borderBottomRightRadius: 4, + paddingTop: 2, + paddingHorizontal: 4, + fontSize: 12, + }, +}); diff --git a/src/components/NovelList.js b/src/components/NovelList.js new file mode 100644 index 00000000..4dd58806 --- /dev/null +++ b/src/components/NovelList.js @@ -0,0 +1,57 @@ +import React from "react"; +import { StyleSheet, FlatList } from "react-native"; + +import { useSettings } from "../hooks/reduxHooks"; +import { getDeviceOrientation } from "../services/utils/helpers"; + +const NovelList = ({ + data, + onScroll, + onEndReached, + renderItem, + refreshControl, + ListEmptyComponent, + ListFooterComponent, +}) => { + const { displayMode, novelsPerRow } = useSettings(); + + const orientation = getDeviceOrientation(); + + const getNovelsPerRow = () => { + if (displayMode === 2) { + return 1; + } + + if (orientation === "landscape") { + return 6; + } else { + return novelsPerRow; + } + }; + + return ( + item.novelUrl} + renderItem={renderItem} + refreshControl={refreshControl} + ListEmptyComponent={ListEmptyComponent} + ListFooterComponent={ListFooterComponent} + onScroll={onScroll} + onEndReached={onEndReached} + /> + ); +}; + +export default NovelList; + +const styles = StyleSheet.create({ + flatListCont: { + flexGrow: 1, + paddingVertical: 8, + paddingHorizontal: 4, + }, +}); diff --git a/src/components/RadioButton.js b/src/components/RadioButton.js new file mode 100644 index 00000000..05575f84 --- /dev/null +++ b/src/components/RadioButton.js @@ -0,0 +1,40 @@ +import React from "react"; +import { StyleSheet, View, Text } from "react-native"; +import { RadioButton as MaterialRadioButton } from "react-native-paper"; + +export const RadioButtonGroup = ({ children, value, onValueChange }) => ( + + {children} + +); + +export const RadioButton = ({ value, label, theme, labelStyle }) => ( + + + + {label} + + +); + +const styles = StyleSheet.create({ + radioButtonContainer: { + flexDirection: "row", + alignItems: "center", + paddingVertical: 8, + }, + radioButtonLabel: { + marginLeft: 16, + fontSize: 16, + }, +}); diff --git a/src/components/Searchbar.js b/src/components/Searchbar.js new file mode 100644 index 00000000..05061daa --- /dev/null +++ b/src/components/Searchbar.js @@ -0,0 +1,97 @@ +import React, { useRef } from "react"; +import { StyleSheet, View, TextInput, Text, StatusBar } from "react-native"; + +import { TouchableRipple, IconButton } from "react-native-paper"; +import { Row } from "./Common"; + +export const Searchbar = ({ + theme, + placeholder, + searchText, + backAction, + onBackAction, + clearSearchbar, + onChangeText, + onSubmitEditing, + actions, +}) => { + const searchRef = useRef(null); + + return ( + searchRef.current.focus()} + style={[ + styles.searchbarContainer, + { backgroundColor: theme.searchBarColor }, + ]} + rippleColor={theme.rippleColor} + > + + + {backAction && ( + + )} + + + {searchText !== "" && ( + + )} + {actions && + actions.map((action, index) => ( + + ))} + + + ); +}; + +const styles = StyleSheet.create({ + searchbarContainer: { + marginTop: StatusBar.currentHeight + 4, + height: 48, + flexDirection: "row", + alignItems: "center", + paddingHorizontal: 16, + marginBottom: 12, + borderRadius: 8, + marginHorizontal: 12, + elevation: 2, + backgroundColor: "white", + }, + container: { + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + }, +}); diff --git a/src/database/DBHelper.js b/src/database/DBHelper.js new file mode 100644 index 00000000..fc27b286 --- /dev/null +++ b/src/database/DBHelper.js @@ -0,0 +1,55 @@ +import * as SQLite from "expo-sqlite"; +import { + createNovelTableQuery, + createUrlIndexQuery, + createLibraryIndexQuery, +} from "./tables/NovelTable"; +import { + createChapterTableQuery, + createNovelIdIndexQuery, + createUnreadChaptersIndexQuery, +} from "./tables/ChapterTable"; +import { + createHistoryTableQuery, + createChapterIdIndexQuery, +} from "./tables/HistoryTable"; +import { createDownloadTableQuery } from "./tables/DownloadTable"; +import { + createUpdatesTableQuery, + updatesSeedDataQuery, +} from "./tables/UpdateTable"; + +/** + * Database Version = 2 + */ + +const dbName = "lnreader.db"; + +const db = SQLite.openDatabase(dbName); + +export const createDB = () => { + db.transaction((tx) => { + tx.executeSql(createNovelTableQuery); + tx.executeSql(createChapterTableQuery); + tx.executeSql(createHistoryTableQuery); + tx.executeSql(createDownloadTableQuery); + tx.executeSql(createUpdatesTableQuery); + + //Db indexes + tx.executeSql(createUrlIndexQuery); + tx.executeSql(createLibraryIndexQuery); + tx.executeSql(createNovelIdIndexQuery); + tx.executeSql(createUnreadChaptersIndexQuery); + tx.executeSql(createChapterIdIndexQuery); + }); +}; + +export const deleteDb = () => { + db.transaction((tx) => { + tx.executeSql("DROP TABLE novels"); + tx.executeSql("DROP TABLE chapters"); + tx.executeSql("DROP TABLE history"); + tx.executeSql("DROP TABLE downloads"); + tx.executeSql("DROP TABLE updates"); + }); +}; diff --git a/src/database/queries/ChapterQueries.js b/src/database/queries/ChapterQueries.js new file mode 100644 index 00000000..a1885e5d --- /dev/null +++ b/src/database/queries/ChapterQueries.js @@ -0,0 +1,264 @@ +import * as SQLite from "expo-sqlite"; +import { getSource } from "../../sources/sources"; +const db = SQLite.openDatabase("lnreader.db"); + +const insertChaptersQuery = `INSERT INTO chapters (chapterUrl, chapterName, releaseDate, novelId) values (?, ?, ?, ?)`; + +export const insertChapters = async (novelId, chapters) => { + db.transaction((tx) => { + chapters.map( + (chapter) => + tx.executeSql( + insertChaptersQuery, + [ + chapter.chapterUrl, + chapter.chapterName, + chapter.releaseDate, + novelId, + ], + (txObj, res) => {}, + (txObj, error) => + console.log( + "Error ", + error, + " Chapter URL: ", + chapter.chapterUrl, + " Novel ID ", + novelId + ) + ), + (txObj, res) => { + console.log("Success"); + }, + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +const getChaptersQuery = (sort, filter) => + `SELECT * FROM chapters WHERE novelId = ? ${filter || ""} ${ + sort || "ORDER BY chapterId ASC" + }`; + +export const getChapters = (novelId, sort, filter) => { + // console.log(getChaptersQuery(sort, filter)); + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + getChaptersQuery(sort, filter), + [novelId], + (txObj, { rows: { _array } }) => { + resolve(_array); + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +const getChapterQuery = `SELECT * FROM downloads WHERE downloadChapterId = ?`; + +export const getChapterFromDB = async (chapterId) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + getChapterQuery, + [chapterId], + (tx, results) => { + resolve(results.rows.item(0)); + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +export const getNextChapterFromDB = async (novelId, chapterId) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + `SELECT * FROM chapters WHERE novelId = ? AND chapterId > ?`, + [novelId, chapterId], + (tx, results) => { + resolve(results.rows.item(0)); + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +export const getPrevChapterFromDB = async (novelId, chapterId) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + `SELECT * FROM chapters WHERE novelId = ? AND chapterId < ?`, + [novelId, chapterId], + (tx, results) => { + resolve(results.rows.item(results.rows.length - 1)); + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +const markChapterReadQuery = `UPDATE chapters SET \`read\` = 1 WHERE chapterId = ?`; + +export const markChapterRead = async (chapterId) => { + db.transaction((tx) => { + tx.executeSql( + markChapterReadQuery, + [chapterId], + (tx, res) => {}, + (tx, error) => console.log(error) + ); + }); +}; + +const markChapterUnreadQuery = `UPDATE chapters SET \`read\` = 0 WHERE chapterId = ?`; + +export const markChapterUnread = async (chapterId) => { + db.transaction((tx) => { + tx.executeSql( + markChapterUnreadQuery, + [chapterId], + (tx, res) => {}, + (tx, error) => console.log(error) + ); + }); +}; + +const isChapterDownloadedQuery = `SELECT * FROM downloads WHERE downloadChapterId=?`; + +export const isChapterDownloaded = async (chapterId) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + isChapterDownloadedQuery, + [chapterId], + (txObj, res) => { + if (res.rows.length !== 0) { + resolve(true); + } else { + resolve(false); + } + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +const downloadChapterQuery = `INSERT INTO downloads (downloadChapterId, chapterName, chapterText, prevChapter, nextChapter) VALUES (?, ?, ?, ?, ?)`; + +export const downloadChapter = async ( + sourceId, + novelUrl, + chapterUrl, + chapterId +) => { + const source = getSource(sourceId); + + const chapter = await source.parseChapter(novelUrl, chapterUrl); + + db.transaction((tx) => { + tx.executeSql( + `UPDATE chapters SET downloaded = 1 WHERE chapterId = ?`, + [chapterId] + ); + tx.executeSql( + downloadChapterQuery, + [ + chapterId, + chapter.chapterName, + chapter.chapterText, + chapter.prevChapter, + chapter.nextChapter, + ], + (tx, res) => + console.log(`Downloaded Chapter ${chapter.chapterUrl}`), + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +export const deleteChapter = async (chapterId) => { + const updateIsDownloadedQuery = `UPDATE chapters SET downloaded = 0 WHERE chapterId=?`; + const deleteChapterQuery = `DELETE FROM downloads WHERE downloadChapterId=?`; + + db.transaction((tx) => { + tx.executeSql( + updateIsDownloadedQuery, + [chapterId], + (tx, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + tx.executeSql( + deleteChapterQuery, + [chapterId], + (tx, res) => console.log(`Chapter deleted`), + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +const getLastReadChapterQuery = ` + SELECT chapters.* + FROM history + JOIN chapters + ON history.historyChapterId = chapters.chapterId + WHERE history.historyNovelId = ? +`; + +export const getLastReadChapter = async (novelId) => { + return new Promise((resolve, reject) => { + db.transaction((tx) => { + tx.executeSql( + getLastReadChapterQuery, + [novelId], + (tx, { rows }) => resolve(rows.item(0)), + (txObj, error) => console.log("Error ", error) + ); + }); + }); +}; + +const bookmarkChapterQuery = `UPDATE chapters SET bookmark = ? WHERE chapterId = ?`; + +export const bookmarkChapter = async (bookmark, chapterId) => { + db.transaction((tx) => { + tx.executeSql( + bookmarkChapterQuery, + [!bookmark, chapterId], + (tx, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +const markPreviuschaptersReadQuery = `UPDATE chapters SET \`read\` = 1 WHERE chapterId < ? AND novelId = ?`; + +export const markPreviuschaptersRead = async (chapterId, novelId) => { + db.transaction((tx) => { + tx.executeSql( + markPreviuschaptersReadQuery, + [chapterId, novelId], + (tx, res) => {}, + (tx, error) => console.log(error) + ); + }); +}; + +const markPreviousChaptersUnreadQuery = `UPDATE chapters SET \`read\` = 0 WHERE chapterId < ? AND novelId = ?`; + +export const markPreviousChaptersUnread = async (chapterId, novelId) => { + db.transaction((tx) => { + tx.executeSql( + markPreviousChaptersUnreadQuery, + [chapterId, novelId], + (tx, res) => {}, + (tx, error) => console.log(error) + ); + }); +}; diff --git a/src/database/queries/HistoryQueries.js b/src/database/queries/HistoryQueries.js new file mode 100644 index 00000000..19c56c5a --- /dev/null +++ b/src/database/queries/HistoryQueries.js @@ -0,0 +1,62 @@ +import * as SQLite from "expo-sqlite"; +const db = SQLite.openDatabase("lnreader.db"); + +const getHistoryQuery = ` + SELECT history.*, chapters.*, novels.* + FROM history + JOIN chapters + ON history.historyChapterId = chapters.chapterId + JOIN novels + ON history.historyNovelId = novels.novelId + GROUP BY novels.novelId + HAVING history.historyTimeRead = MAX(history.historyTimeRead) + ORDER BY history.historyTimeRead DESC + `; + +export const getHistory = async () => { + return new Promise((resolve, reject) => { + db.transaction((tx) => { + tx.executeSql( + getHistoryQuery, + null, + (txObj, { rows: { _array } }) => { + resolve(_array); + }, + (txObj, error) => console.log("Error ", error) + ); + }); + }); +}; + +// const insertHistoryQuery = + +export const insertHistory = async (novelId, chapterId) => { + db.transaction((tx) => { + tx.executeSql( + "INSERT OR REPLACE INTO history (historyNovelId, historyChapterId, historyTimeRead) VALUES (?, ?, (datetime('now','localtime')))", + [novelId, chapterId], + (txObj, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + tx.executeSql("UPDATE novels SET unread = 0 WHERE novelId = ?", [ + novelId, + ]); + }); +}; + +export const deleteHistory = async (historyId) => { + db.transaction((tx) => { + tx.executeSql( + "DELETE FROM history WHERE historyId = ?", + [historyId], + (txObj, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +export const deleteAllHistory = async () => { + db.transaction((tx) => { + tx.executeSql("DELETE FROM history; VACCUM;"); + }); +}; diff --git a/src/database/queries/LibraryQueries.js b/src/database/queries/LibraryQueries.js new file mode 100644 index 00000000..a03df79a --- /dev/null +++ b/src/database/queries/LibraryQueries.js @@ -0,0 +1,75 @@ +import * as SQLite from "expo-sqlite"; +const db = SQLite.openDatabase("lnreader.db"); + +const getLibraryQuery = (sort, filter) => ` + SELECT novels.*, C.chaptersUnread, D.chaptersDownloaded + FROM novels + LEFT JOIN ( + SELECT chapters.novelId, COUNT(*) AS chaptersUnread + FROM chapters + WHERE chapters.read = 0 + GROUP BY chapters.novelId + ) AS C + ON novels.novelId = C.novelId + LEFT JOIN ( + SELECT chapters.novelId, COUNT(*) AS chaptersDownloaded + FROM chapters + WHERE chapters.downloaded = 1 + GROUP BY chapters.novelId + ) AS D + ON novels.novelId = D.novelId + WHERE novels.followed = 1 ${filter ? "AND " + filter : ""} + ${sort ? "ORDER BY " + sort : ""} + `; + +export const getLibrary = (sort, filter) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + getLibraryQuery(sort, filter), + null, + (txObj, { rows: { _array } }) => { + // console.log(_array); + resolve(_array); + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +const searchLibraryQuery = (searchText, sort, filter) => + ` + SELECT novels.*, C.chaptersUnread, D.chaptersDownloaded + FROM novels + LEFT JOIN ( + SELECT chapters.novelId, COUNT(*) AS chaptersUnread + FROM chapters + WHERE chapters.read = 0 + GROUP BY chapters.novelId + ) AS C + ON novels.novelId = C.novelId + LEFT JOIN ( + SELECT chapters.novelId, COUNT(*) AS chaptersDownloaded + FROM chapters + WHERE chapters.downloaded = 1 + GROUP BY chapters.novelId + ) AS D + ON novels.novelId = D.novelId + WHERE novels.followed = 1 AND novelName LIKE '%${searchText}%' ${ + filter ? "AND " + filter : "" + } + ${sort ? "ORDER BY " + sort : ""} `; + +export const searchLibrary = (searchText, sort, filter) => { + return new Promise((resolve, reject) => { + db.transaction((tx) => { + tx.executeSql( + searchLibraryQuery(searchText, sort, filter), + null, + (txObj, { rows: { _array } }) => resolve(_array), + (txObj, error) => console.log("Error ", error) + ); + }); + }); +}; diff --git a/src/database/queries/NovelQueries.js b/src/database/queries/NovelQueries.js new file mode 100644 index 00000000..15851cff --- /dev/null +++ b/src/database/queries/NovelQueries.js @@ -0,0 +1,159 @@ +import * as SQLite from "expo-sqlite"; +const db = SQLite.openDatabase("lnreader.db"); + +import { fetchChapters, fetchNovel } from "../../services/Source/source"; +import { insertChapters } from "./ChapterQueries"; + +const insertNovelQuery = `INSERT INTO novels (novelUrl, sourceUrl, sourceId, source, novelName, novelCover, novelSummary, author, artist, status, genre) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`; + +export const insertNovel = async (novel) => { + return new Promise((resolve, reject) => + db.transaction((tx) => + tx.executeSql( + insertNovelQuery, + [ + novel.novelUrl, + novel.sourceUrl, + novel.sourceId, + novel.source, + novel.novelName, + novel.novelCover, + novel.novelSummary, + novel.author, + novel.artist, + novel.status, + novel.genre, + ], + (txObj, { insertId }) => resolve(insertId), + (txObj, error) => console.log("Error ", error) + ) + ) + ); +}; + +export const followNovel = async (followed, novelId) => { + db.transaction((tx) => { + tx.executeSql( + "UPDATE novels SET followed = ? WHERE novelId = ?", + [!followed, novelId], + (tx, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +const checkNovelInCacheQuery = `SELECT * FROM novels WHERE novelUrl=? LIMIT 1`; + +export const checkNovelInCache = (novelUrl) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + checkNovelInCacheQuery, + [novelUrl], + (txObj, res) => { + if (res.rows.length !== 0) { + resolve(true); + } else { + resolve(false); + } + }, + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +export const getNovel = async (sourceId, novelUrl) => { + return new Promise((resolve, reject) => + db.transaction((tx) => { + tx.executeSql( + `SELECT * FROM novels WHERE novelUrl = ? AND sourceId = ?`, + [novelUrl, sourceId], + (txObj, { rows }) => resolve(rows.item(0)), + (txObj, error) => console.log("Error ", error) + ); + }) + ); +}; + +export const deleteNovelCache = () => { + db.transaction((tx) => { + tx.executeSql( + "DELETE FROM novels WHERE followed = 0", + null, + (txObj, res) => { + console.log("Cleared Novel Cache"); + }, + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +const restoreFromBackupQuery = `INSERT INTO novels (novelUrl, sourceUrl, sourceId, source, novelName, novelCover, novelSummary, author, artist, status, genre, followed, unread) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`; + +export const restoreLibrary = async (novel) => { + return new Promise((resolve, reject) => + db.transaction((tx) => + tx.executeSql( + restoreFromBackupQuery, + [ + novel.novelUrl, + novel.sourceUrl, + novel.sourceId, + novel.source, + novel.novelName, + novel.novelCover, + novel.novelSummary, + novel.author, + novel.artist, + novel.status, + novel.genre, + novel.followed, + novel.unread, + ], + async (txObj, { insertId }) => { + const chapters = await fetchChapters( + novel.sourceId, + novel.novelUrl + ); + await insertChapters(insertId, chapters); + }, + (txObj, error) => console.log("Error ", error) + ) + ) + ); +}; + +const migrateNovelQuery = `INSERT INTO novels (novelUrl, sourceUrl, sourceId, source, novelName, novelCover, novelSummary, author, artist, status, genre, followed) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`; + +export const migrateNovel = async (sourceId, novelUrl) => { + const novel = await fetchNovel(sourceId, novelUrl); + + db.transaction((tx) => + tx.executeSql( + migrateNovelQuery, + [ + novel.novelUrl, + novel.sourceUrl, + novel.sourceId, + novel.source, + novel.novelName, + novel.novelCover, + novel.novelSummary, + novel.author, + novel.artist, + novel.status, + novel.genre, + 1, + ], + async (txObj, { insertId }) => { + const chapters = await fetchChapters( + novel.sourceId, + novel.novelUrl + ); + await insertChapters(insertId, chapters); + }, + (txObj, error) => console.log("Error ", error) + ) + ); +}; diff --git a/src/database/queries/UpdateQueries.js b/src/database/queries/UpdateQueries.js new file mode 100644 index 00000000..7e80780b --- /dev/null +++ b/src/database/queries/UpdateQueries.js @@ -0,0 +1,38 @@ +import * as SQLite from "expo-sqlite"; +const db = SQLite.openDatabase("lnreader.db"); + +const getUpdatesQuery = ` + SELECT chapters.chapterId, chapters.read, chapters.downloaded, chapters.chapterUrl, chapters.chapterName, novels.novelUrl, novels.novelId, novels.novelCover, novels.novelName, novels.sourceId, updates.updateTime, updates.updateId + FROM updates + JOIN chapters + ON updates.chapterId = chapters.chapterId + JOIN novels + ON updates.novelId = novels.novelId + ORDER BY updates.updateTime DESC + `; + +export const getUpdates = async () => { + return new Promise((resolve, reject) => { + db.transaction((tx) => { + tx.executeSql( + getUpdatesQuery, + null, + (txObj, { rows: { _array } }) => { + resolve(_array); + }, + (txObj, error) => console.log("Error ", error) + ); + }); + }); +}; + +export const deleteNovelUpdates = (novelId) => { + db.transaction((tx) => { + tx.executeSql( + "DELETE FROM updates WHERE novelId = ?", + [novelId], + (txObj, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + }); +}; diff --git a/src/database/tables/ChapterTable.js b/src/database/tables/ChapterTable.js new file mode 100644 index 00000000..14edcbf9 --- /dev/null +++ b/src/database/tables/ChapterTable.js @@ -0,0 +1,18 @@ +export const createChapterTableQuery = ` + CREATE TABLE IF NOT EXISTS chapters( + chapterId INTEGER PRIMARY KEY AUTOINCREMENT, + chapterUrl TEXT, + novelId INTEGER NOT NULL, + chapterName TEXT NOT NULL, + releaseDate TEXT, + bookmark BOOLEAN NOT NULL DEFAULT 0, + \`read\` INTEGER NOT NULL DEFAULT 0, + downloaded INTEGER NOT NULL DEFAULT 0, + UNIQUE(novelId, chapterUrl), + FOREIGN KEY (novelId) REFERENCES novels(novelId) + ON DELETE CASCADE + )`; + +export const createNovelIdIndexQuery = `CREATE INDEX IF NOT EXISTS chapterNovelIdIndex ON chapters(novelId)`; + +export const createUnreadChaptersIndexQuery = `CREATE INDEX IF NOT EXISTS chapterUnreadByNovelIndex ON chapters(novelId, \`read\`) WHERE \`read\`=0`; diff --git a/src/database/tables/DownloadTable.js b/src/database/tables/DownloadTable.js new file mode 100644 index 00000000..b889d642 --- /dev/null +++ b/src/database/tables/DownloadTable.js @@ -0,0 +1,11 @@ +export const createDownloadTableQuery = ` + CREATE TABLE IF NOT EXISTS downloads( + downloadId INTEGER PRIMARY KEY AUTOINCREMENT, + downloadChapterId INTEGER NOT NULL, + chapterName TEXT, + chapterText TEXT, + nextChapter TEXT, + prevChapter TEXT, + FOREIGN KEY (downloadChapterId) REFERENCES chapters(chapterId) + ON DELETE CASCADE + )`; diff --git a/src/database/tables/HistoryTable.js b/src/database/tables/HistoryTable.js new file mode 100644 index 00000000..988357ae --- /dev/null +++ b/src/database/tables/HistoryTable.js @@ -0,0 +1,11 @@ +export const createHistoryTableQuery = ` + CREATE TABLE IF NOT EXISTS history( + historyId INTEGER PRIMARY KEY AUTOINCREMENT, + historyChapterId INTEGER NOT NULL UNIQUE, + historyNovelId INTEGER NOT NULL, + historyTimeRead DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (historyChapterId) REFERENCES chapters(chapterId) + ON DELETE CASCADE + )`; + +export const createChapterIdIndexQuery = `CREATE INDEX IF NOT EXISTS historyChapterIdIndex ON history(historyChapterId)`; diff --git a/src/database/tables/NovelTable.js b/src/database/tables/NovelTable.js new file mode 100644 index 00000000..0b875749 --- /dev/null +++ b/src/database/tables/NovelTable.js @@ -0,0 +1,21 @@ +export const createNovelTableQuery = ` + CREATE TABLE IF NOT EXISTS novels( + novelId INTEGER PRIMARY KEY AUTOINCREMENT, + novelUrl TEXT NOT NULL, + sourceUrl TEXT UNIQUE NOT NULL, + sourceId INTEGER NOT NULL, + source TEXT NOT NULL, + novelName TEXT NOT NULL, + novelCover TEXT NOT NULL, + novelSummary TEXT, + author TEXT, + artist TEXT, + status TEXT, + genre TEXT, + followed INTEGER DEFAULT 0, + unread INTEGER DEFAULT 1 + )`; + +export const createUrlIndexQuery = `CREATE INDEX IF NOT EXISTS novelUrlIndex ON novels(novelUrl)`; + +export const createLibraryIndexQuery = `CREATE INDEX IF NOT EXISTS novelFollowedIndex ON novels(followed)`; diff --git a/src/database/tables/UpdateTable.js b/src/database/tables/UpdateTable.js new file mode 100644 index 00000000..c3944ea4 --- /dev/null +++ b/src/database/tables/UpdateTable.js @@ -0,0 +1,11 @@ +export const createUpdatesTableQuery = ` + CREATE TABLE IF NOT EXISTS updates( + updateId INTEGER PRIMARY KEY AUTOINCREMENT, + chapterId INTEGER NOT NULL, + novelId INTEGER NOT NULL, + updateTime DATETIME DEFAULT CURRENT_TIMESTAMP, + UNIQUE(novelId, chapterId), + FOREIGN KEY (chapterId) REFERENCES chapters(chapterId), + FOREIGN KEY (novelId) REFERENCES novels(novelId) + ON DELETE CASCADE + )`; diff --git a/src/hooks/githubUpdateChecker.js b/src/hooks/githubUpdateChecker.js new file mode 100644 index 00000000..b89ca24f --- /dev/null +++ b/src/hooks/githubUpdateChecker.js @@ -0,0 +1,46 @@ +import { useState, useEffect } from "react"; + +export const githubUpdateChecker = () => { + const latestReleaseUrl = + "https://api.github.com/repos/rajarsheechatterjee/lnreader/releases/latest"; + + const [checking, setChecking] = useState(true); + const [latestRelease, setLatestRelease] = useState(); + + const checkForRelease = async () => { + let res = await fetch(latestReleaseUrl); + res = await res.json(); + + const release = { + tag_name: res.tag_name, + body: res.body, + downloadUrl: res.assets[0].browser_download_url, + }; + + setLatestRelease(release); + setChecking(false); + }; + + const isNewVersion = (versionTag) => { + let currentVersion = "v1.0.21"; + const regex = /[^\\d.]/; + + let newVersion = versionTag.replace(regex, ""); + currentVersion = currentVersion.replace(regex, ""); + + return newVersion !== currentVersion; + }; + + useEffect(() => { + checkForRelease(); + }, []); + + if (!checking) { + const data = { + latestRelease, + isNewVersion: isNewVersion(latestRelease.tag_name), + }; + + return data; + } +}; diff --git a/src/hooks/reduxHooks.js b/src/hooks/reduxHooks.js new file mode 100644 index 00000000..adeab05f --- /dev/null +++ b/src/hooks/reduxHooks.js @@ -0,0 +1,131 @@ +import { shallowEqual, useSelector } from "react-redux"; +import { showChapterTitlesAction } from "../redux/novel/novel.actions"; + +const useTheme = () => { + const theme = useSelector((state) => state.settingsReducer.theme); + + return theme; +}; + +const useReaderSettings = () => { + const readerSettings = useSelector((state) => state.settingsReducer.reader); + + return readerSettings; +}; + +const useSettings = () => { + const settings = useSelector((state) => state.settingsReducer); + + return settings; +}; + +const useLibrary = () => { + const library = useSelector((state) => state.libraryReducer.novels); + + return library; +}; + +const useNovel = () => { + const novel = useSelector((state) => state.novelReducer); + + return novel; +}; + +const useChapter = () => { + const chapter = useSelector((state) => state.chapterReducer); + + return chapter; +}; + +const findNovel = (novelId) => { + let novel = useSelector((state) => state.preferenceReducer.novelSettings); + novel = novel[novelId]; + + return novel; +}; + +const usePreferences = (novelId) => { + let sort, filter, position, showChapterTitles; + + const novel = findNovel(novelId); + + if (novel) { + sort = novel.sort; + filter = novel.filter; + position = novel.position; + showChapterTitles = novel.showChapterTitles; + } + + return { sort, filter, position, showChapterTitles }; +}; + +const useSavedSettings = () => { + const settings = useSelector( + (state) => state.preferenceReducer.novelSettings + ); + + return settings; +}; + +const useContinueReading = (chapters, novelId) => { + let lastReadChapter, chapterId, novel, position; + + novel = findNovel(novelId); + if (novel) { + chapterId = novel.lastRead; + position = novel.position; + } + + if (chapterId) { + lastReadChapter = chapters.find( + (obj) => obj.chapterId === chapterId && obj.read === 0 + ); + } + + if (!lastReadChapter) { + lastReadChapter = chapters.find((obj) => obj.read === 0); + } + + return { lastReadChapter, position }; +}; + +const usePosition = (novelId, chapterId) => { + let novel, position; + + novel = findNovel(novelId); + + if (novel) { + if (novel.position) { + position = novel.position[chapterId] || null; + } + } + + return position; +}; + +const useTrackingStatus = () => { + const tracker = useSelector((state) => state.trackerReducer); + + return tracker; +}; + +const useLibraryFilters = () => { + const filters = useSelector((state) => state.libraryReducer.filters); + + return filters; +}; + +export { + useTheme, + useReaderSettings, + useLibrary, + useSettings, + usePreferences, + useContinueReading, + useTrackingStatus, + useNovel, + useChapter, + useSavedSettings, + useLibraryFilters, + usePosition, +}; diff --git a/src/hooks/setStatusBarStyle.js b/src/hooks/setStatusBarStyle.js new file mode 100644 index 00000000..41914f80 --- /dev/null +++ b/src/hooks/setStatusBarStyle.js @@ -0,0 +1,10 @@ +import { setStatusBarStyle as setExpoStatusBarStyle } from "expo-status-bar"; +import { useTheme } from "../hooks/reduxHooks"; +import changeNavigationBarColor from "react-native-navigation-bar-color"; + +export const setStatusBarStyle = () => { + const theme = useTheme(); + + setExpoStatusBarStyle(theme.id === 1 ? "dark" : "light"); + changeNavigationBarColor(theme.colorPrimary); +}; diff --git a/src/hooks/showToast.js b/src/hooks/showToast.js new file mode 100644 index 00000000..ee4bc534 --- /dev/null +++ b/src/hooks/showToast.js @@ -0,0 +1,5 @@ +import { ToastAndroid } from "react-native"; + +export const showToast = (message) => { + ToastAndroid.show(message, ToastAndroid.SHORT); +}; diff --git a/src/hooks/sourceHooks.js b/src/hooks/sourceHooks.js new file mode 100644 index 00000000..92078834 --- /dev/null +++ b/src/hooks/sourceHooks.js @@ -0,0 +1,35 @@ +import { useState, useEffect } from "react"; +import { getSource } from "../sources/sources"; + +const usePopularNovels = (sourceId) => { + const [loading, setLoading] = useState(true); + const [pageNumber, setPage] = useState(1); + const [novels, setNovels] = useState([]); + const [error, setError] = useState(); + + const source = getSource(sourceId); + + useEffect(() => { + const getNextPage = async (p) => { + try { + if (p === 1) setLoading(true); + const res = await source.popularNovels(p); + setHasMoreNovels(res.totalPages > pageNumber); + setNovels((novels) => [...novels, ...data.novels]); + setLoading(false); + } catch (err) { + setError(err.message); + } + }; + + getNextPage(pageNumber); + }, [pageNumber, sourceId]); + + const incrementPage = () => { + setPage((pageNumber) => pageNumber + 1); + }; + + return { novels, incrementPage, loading, error }; +}; + +export { usePopularNovels }; diff --git a/src/navigators/BottomNavigator.js b/src/navigators/BottomNavigator.js new file mode 100644 index 00000000..a70ab9d9 --- /dev/null +++ b/src/navigators/BottomNavigator.js @@ -0,0 +1,96 @@ +import React from "react"; +import { View } from "react-native"; + +import { createMaterialBottomTabNavigator } from "@react-navigation/material-bottom-tabs"; +import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons"; + +import Library from "../screens/Library/Library"; +import Updates from "../screens/Updates/Updates"; +import History from "../screens/History/History"; +import Browse from "../screens/Browse/Browse"; +import More from "../screens/More/More"; + +import { useTheme } from "../hooks/reduxHooks"; + +const Tab = createMaterialBottomTabNavigator(); + +const BottomNavigator = () => { + const theme = useTheme(); + + return ( + + + ( + + ), + }} + /> + ( + + ), + }} + /> + ( + + ), + }} + /> + ( + + ), + }} + /> + ( + + ), + }} + /> + + + ); +}; + +export default BottomNavigator; diff --git a/src/navigators/Main.js b/src/navigators/Main.js new file mode 100644 index 00000000..37858ce1 --- /dev/null +++ b/src/navigators/Main.js @@ -0,0 +1,80 @@ +import React from "react"; +import { + createStackNavigator, + TransitionPresets, +} from "@react-navigation/stack"; + +import BottomNavigator from "./BottomNavigator"; +import Novel from "../screens/Novel/Novel"; +import Chapter from "../screens/Chapter/Chapter"; +import Extension from "../screens/Extension/Extension"; +import GlobalSearch from "../screens/Browse/globalsearch/GlobalSearch"; +import Migration from "../screens/Browse/migration/Migration"; +import SourceNovels from "../screens/Browse/SourceNovels"; +import MigrateNovel from "../screens/Browse/migration/MigrationNovels"; +import MoreStack from "./More"; +import MalTopNovels from "../screens/Browse/discover/MalTopNovels"; +import { setStatusBarStyle } from "../hooks/setStatusBarStyle"; +import { View } from "react-native"; +import { useTheme } from "../hooks/reduxHooks"; +import { githubUpdateChecker } from "../hooks/githubUpdateChecker"; +import NewUpdateDialog from "../components/NewUpdateDialog"; +import { NavigationContainer } from "@react-navigation/native"; +import BrowseNovelUpdates from "../screens/Browse/discover/BrowseNovelUpdates"; +import BrowseSettings from "../screens/Browse/BrowseSettings"; + +const Stack = createStackNavigator(); + +const stackNavigatorConfig = { + headerShown: false, +}; + +const MainNavigator = () => { + const theme = useTheme(); + setStatusBarStyle(); + const { isNewVersion, latestRelease } = githubUpdateChecker() || {}; + + return ( + + + {isNewVersion && } + + + + + + + + + + + + + + + + + ); +}; + +export default MainNavigator; diff --git a/src/navigators/More.js b/src/navigators/More.js new file mode 100644 index 00000000..031a7856 --- /dev/null +++ b/src/navigators/More.js @@ -0,0 +1,64 @@ +import React from "react"; +import { View } from "react-native"; +import { useTheme } from "../hooks/reduxHooks"; + +import { createStackNavigator } from "@react-navigation/stack"; + +import About from "../screens/More/About"; +import Settings from "../screens/More/Settings"; +import TrackerSettings from "../screens/More/TrackerSettings"; +import ReaderSettings from "../screens/More/ReaderSettings"; +import BackupSettings from "../screens/More/BackupSettings"; +import AdvancedSettings from "../screens/More/AdvancedSettings"; +import GeneralSettings from "../screens/More/GeneralSettings"; + +const Stack = createStackNavigator(); + +const stackNavigatorConfig = { headerShown: false }; + +const SettingsStack = () => { + const theme = useTheme(); + + return ( + + + + + + + + + + + ); +}; + +const MoreStack = () => { + const theme = useTheme(); + + return ( + + + + + + + ); +}; + +export default MoreStack; diff --git a/src/redux/history/history.actions.js b/src/redux/history/history.actions.js new file mode 100644 index 00000000..eb335327 --- /dev/null +++ b/src/redux/history/history.actions.js @@ -0,0 +1,75 @@ +import { + CLEAR_NOVEL_HISTORY, + GET_HISTORY, + LOAD_HISTORY, + CLEAR_HISTORY, +} from "./history.types"; +import { + getHistory, + insertHistory, + deleteHistory, + deleteAllHistory, +} from "../../database/queries/HistoryQueries"; +import { SET_LAST_READ } from "../preferences/preference.types"; +import { showToast } from "../../hooks/showToast"; + +export const getHistoryAction = () => async (dispatch) => { + dispatch({ type: LOAD_HISTORY }); + + const history = await getHistory(); + + const groups = history.reduce((groups, update) => { + var dateParts = update.historyTimeRead.split("-"); + var jsDate = new Date( + dateParts[0], + dateParts[1] - 1, + dateParts[2].substr(0, 2) + ); + const date = jsDate.toISOString(); + if (!groups[date]) { + groups[date] = []; + } + groups[date].push(update); + return groups; + }, {}); + + const groupedHistory = Object.keys(groups).map((date) => { + return { + date, + novels: groups[date], + }; + }); + + // console.log(groupedHistory); + + dispatch({ type: GET_HISTORY, payload: groupedHistory }); +}; + +export const insertHistoryAction = (novelId, chapterId) => async (dispatch) => { + await insertHistory(novelId, chapterId); + + dispatch({ + type: SET_LAST_READ, + payload: { novelId, chapterId }, + }); + + dispatch(getHistoryAction()); +}; + +export const deleteHistoryAction = (historyId) => async (dispatch) => { + await deleteHistory(historyId); + console.log("Delete History Action Called"); + dispatch(getHistoryAction()); +}; + +export const clearAllHistoryAction = () => async (dispatch) => { + try { + await deleteAllHistory(); + + showToast("History deleted"); + + dispatch({ type: CLEAR_HISTORY }); + } catch (error) { + showToast(error.message); + } +}; diff --git a/src/redux/history/history.reducer.js b/src/redux/history/history.reducer.js new file mode 100644 index 00000000..fd59095d --- /dev/null +++ b/src/redux/history/history.reducer.js @@ -0,0 +1,35 @@ +import { + CLEAR_HISTORY, + CLEAR_NOVEL_HISTORY, + GET_HISTORY, + LOAD_HISTORY, +} from "./history.types"; + +const initialState = { + history: [], + loading: true, +}; + +const historyReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case LOAD_HISTORY: + return { ...state, loading: true }; + case GET_HISTORY: + return { ...state, history: payload, loading: false }; + // case CLEAR_NOVEL_HISTORY: + // return { + // ...state, + // history: state.history.filter( + // (item) => item.novelId !== payload.novelId + // ), + // }; + case CLEAR_HISTORY: + return { ...state, loading: [] }; + default: + return state; + } +}; + +export default historyReducer; diff --git a/src/redux/history/history.types.js b/src/redux/history/history.types.js new file mode 100644 index 00000000..8dbe1ba5 --- /dev/null +++ b/src/redux/history/history.types.js @@ -0,0 +1,5 @@ +export const LOAD_HISTORY = "LOAD_HISTORY"; +export const GET_HISTORY = "GET_HISTORY"; +export const UPDATE_NOVEL_HISTORY = "UPDATE_NOVEL_HISTORY"; +export const CLEAR_NOVEL_HISTORY = "CLEAR_NOVEL_HISTORY"; +export const CLEAR_HISTORY = "CLEAR_HISTORY"; diff --git a/src/redux/library/library.actions.js b/src/redux/library/library.actions.js new file mode 100644 index 00000000..de0e9011 --- /dev/null +++ b/src/redux/library/library.actions.js @@ -0,0 +1,57 @@ +import { + GET_LIBRARY_NOVELS, + GET_LIBRARY_SEARCH_RESULTS, + SET_LIBRARY_LOADING, + SORT_FILTER_LIBRARY, +} from "./library.types"; +import { + getLibrary, + searchLibrary, +} from "../../database/queries/LibraryQueries"; +import { restoreBackup } from "../../services/backup"; + +export const getLibraryAction = (sort, filter) => async (dispatch) => { + // console.log("1.", sort, filter); + const res = await getLibrary(sort, filter); + + dispatch({ + type: GET_LIBRARY_NOVELS, + payload: res, + }); +}; + +export const searchLibraryAction = + (searchText, sort, filter) => async (dispatch) => { + const res = await searchLibrary(searchText, sort, filter); + + dispatch({ + type: GET_LIBRARY_SEARCH_RESULTS, + payload: res, + }); + }; + +export const filterLibrary = (sort, filter) => async (dispatch) => { + dispatch({ type: SORT_FILTER_LIBRARY, payload: { sort, filter } }); + + const res = await getLibrary(sort, filter); + + dispatch({ + type: GET_LIBRARY_NOVELS, + payload: res, + }); +}; + +export const restoreLibraryAction = () => async (dispatch) => { + dispatch({ type: SET_LIBRARY_LOADING }); + + const res = await restoreBackup(); + + if (res) { + const novels = await getLibrary(); + + dispatch({ + type: GET_LIBRARY_NOVELS, + payload: novels, + }); + } +}; diff --git a/src/redux/library/library.reducer.js b/src/redux/library/library.reducer.js new file mode 100644 index 00000000..be41ab50 --- /dev/null +++ b/src/redux/library/library.reducer.js @@ -0,0 +1,36 @@ +import { + GET_LIBRARY_NOVELS, + GET_LIBRARY_SEARCH_RESULTS, + SET_LIBRARY_LOADING, + SORT_FILTER_LIBRARY, +} from "./library.types"; + +const initialState = { + novels: [], + searchResults: [], + filters: { sort: "novels.novelId ASC", filter: "" }, + loading: true, +}; + +const libraryReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case SET_LIBRARY_LOADING: + return { ...state, loading: true }; + case GET_LIBRARY_NOVELS: + return { ...state, novels: payload, loading: false }; + case GET_LIBRARY_SEARCH_RESULTS: + return { ...state, novels: payload, loading: false }; + case SORT_FILTER_LIBRARY: + // console.log("2.", payload.sort, payload.filter); + return { + ...state, + filters: { sort: payload.sort, filter: payload.filter }, + }; + default: + return state; + } +}; + +export default libraryReducer; diff --git a/src/redux/library/library.types.js b/src/redux/library/library.types.js new file mode 100644 index 00000000..8819717f --- /dev/null +++ b/src/redux/library/library.types.js @@ -0,0 +1,5 @@ +export const GET_LIBRARY_NOVELS = "GET_LIBRARY_NOVELS"; +export const GET_LIBRARY_SEARCH_RESULTS = "GET_LIBRARY_SEARCH_RESULTS"; +export const SET_LIBRARY_LOADING = "SET_LIBRARY_LOADING"; + +export const SORT_FILTER_LIBRARY = "SORT_FILTER_LIBRARY"; diff --git a/src/redux/novel/novel.actions.js b/src/redux/novel/novel.actions.js new file mode 100644 index 00000000..f40947cd --- /dev/null +++ b/src/redux/novel/novel.actions.js @@ -0,0 +1,357 @@ +import { ToastAndroid } from "react-native"; + +import { + LOADING_NOVEL, + GET_NOVEL, + GET_CHAPTERS, + NOVEL_ERROR, + FETCHING_NOVEL, + SET_NOVEL, + UPDATE_IN_LIBRARY, + CHAPTER_READ, + CHAPTER_DOWNLOADING, + CHAPTER_DOWNLOADED, + CHAPTER_DELETED, + UPDATE_NOVEL, + SET_NOVEL_SETTINGS, + CHAPTER_UNREAD, + BOOKMARK_CHAPTER, + MARK_PREVIOUS_CHAPTERS_READ, + MARK_PREVIOUS_CHAPTERS_UNREAD, +} from "./novel.types"; + +import { updateNovel } from "../../services/updates"; +import { fetchNovel } from "../../services/Source/source"; +import { + followNovel, + insertNovel, + getNovel, +} from "../../database/queries/NovelQueries"; +import { + getChapters, + insertChapters, + markChapterRead, + downloadChapter, + deleteChapter, + markChapterUnread, + bookmarkChapter, + markPreviuschaptersRead, + markPreviousChaptersUnread, + getNextChapterFromDB, +} from "../../database/queries/ChapterQueries"; +import { deleteNovelUpdates } from "../../database/queries/UpdateQueries"; +import { + SAVE_SCROLL_POSITION, + SET_CHAPTER_LIST_PREF, + SET_LAST_READ, +} from "../preferences/preference.types"; +import { GET_LIBRARY_NOVELS } from "../library/library.types"; +import { getLibrary } from "../../database/queries/LibraryQueries"; +import { showToast } from "../../hooks/showToast"; +import { store } from "../store"; + +export const setNovel = (novel) => async (dispatch) => { + dispatch({ type: SET_NOVEL, payload: novel }); +}; + +export const getNovelAction = + (followed, sourceId, novelUrl, novelId, sort, filter) => + async (dispatch) => { + try { + dispatch({ type: LOADING_NOVEL }); + + if (followed === 1) { + /** + * If novel is followed directly get the chapters from db. + */ + const chapters = await getChapters(novelId, sort, filter); + + dispatch({ + type: GET_CHAPTERS, + payload: chapters, + }); + } else { + dispatch({ type: FETCHING_NOVEL }); + + /** + * Check if novel is cached. + */ + const novel = await getNovel(sourceId, novelUrl); + + if (novel) { + /** + * Get chapters from db. + */ + novel.chapters = await getChapters( + novel.novelId, + sort, + filter + ); + dispatch({ + type: GET_NOVEL, + payload: novel, + }); + } else { + /** + * Fetch novel from source. + */ + const fetchedNovel = await fetchNovel(sourceId, novelUrl); + + /** + * Insert novel in db. + */ + const fetchedNovelId = await insertNovel(fetchedNovel); + await insertChapters(fetchedNovelId, fetchedNovel.chapters); + + /** + * Get novel from db. + */ + const novel = await getNovel(sourceId, novelUrl); + novel.chapters = await getChapters(novel.novelId); + + dispatch({ + type: GET_NOVEL, + payload: novel, + }); + } + } + } catch (error) { + showToast(error.message); + // dispatch({ type: NOVEL_ERROR }); + } + }; + +export const sortAndFilterChapters = + (novelId, sort, filter) => async (dispatch) => { + dispatch({ type: FETCHING_NOVEL }); + + const chapters = await getChapters(novelId, sort, filter); + + dispatch({ + type: GET_CHAPTERS, + payload: chapters, + }); + + dispatch({ + type: SET_CHAPTER_LIST_PREF, + payload: { novelId, sort, filter }, + }); + }; + +export const showChapterTitlesAction = (novelId, value) => async (dispatch) => { + dispatch({ + type: SET_NOVEL_SETTINGS, + payload: { novelId, value: value }, + }); +}; + +export const followNovelAction = (novel) => async (dispatch) => { + await followNovel(novel.followed, novel.novelId); + + if (!novel.followNovel) { + deleteNovelUpdates(novel.novelId); + } + + dispatch({ + type: UPDATE_IN_LIBRARY, + payload: { novelUrl: novel.novelUrl, followed: !novel.followed }, + }); + + const res = await getLibrary(); + + dispatch({ + type: GET_LIBRARY_NOVELS, + payload: res, + }); + + showToast(!novel.followed ? "Added to library" : "Removed from library"); +}; + +export const bookmarkChapterAction = (chapters) => async (dispatch) => { + chapters.map((chapter) => { + bookmarkChapter(chapter.bookmark, chapter.chapterId); + + dispatch({ + type: BOOKMARK_CHAPTER, + payload: { + bookmark: chapter.bookmark, + chapterId: chapter.chapterId, + }, + }); + }); +}; + +export const markChapterReadAction = + (chapterId, novelId) => async (dispatch) => { + await markChapterRead(chapterId); + + dispatch({ + type: CHAPTER_READ, + payload: { chapterId }, + }); + + const nextChapter = await getNextChapterFromDB(novelId, chapterId); + + dispatch({ + type: SET_LAST_READ, + payload: { novelId, chapterId: nextChapter.chapterId }, + }); + + /** + * Reset progress on marked read + */ + dispatch({ + type: SAVE_SCROLL_POSITION, + payload: { + position: 0, + percentage: 0, + chapterId, + novelId, + }, + }); + }; + +export const markPreviousChaptersReadAction = + (chapterId, novelId) => async (dispatch) => { + await markPreviuschaptersRead(chapterId, novelId); + + dispatch({ + type: MARK_PREVIOUS_CHAPTERS_READ, + payload: chapterId, + }); + + showToast("Marked previous chapters read"); + }; + +export const markChaptersRead = + (chapters, novelId, sort, filter) => async (dispatch) => { + try { + chapters.map((chapter) => markChapterRead(chapter.chapterId)); + + const chaps = await getChapters(novelId, sort, filter); + + dispatch({ + type: GET_CHAPTERS, + payload: chaps, + }); + } catch (error) { + showToast(error.message); + } + }; + +export const markPreviousChaptersUnreadAction = + (chapterId, novelId) => async (dispatch) => { + await markPreviousChaptersUnread(chapterId, novelId); + + dispatch({ + type: MARK_PREVIOUS_CHAPTERS_UNREAD, + payload: chapterId, + }); + }; + +export const markChapterUnreadAction = + (chapters, novelId) => async (dispatch) => { + const { sort = "ORDER BY chapterId ASC", filter = "" } = + store.getState().preferenceReducer.novelSettings[novelId]; + + chapters.map((chapter) => markChapterUnread(chapter.chapterId)); + + const chaps = await getChapters(novelId, sort, filter); + + dispatch({ + type: GET_CHAPTERS, + payload: chaps, + }); + }; + +export const downloadChapterAction = + (sourceId, novelUrl, chapterUrl, chapterName, chapterId) => + async (dispatch) => { + dispatch({ + type: CHAPTER_DOWNLOADING, + payload: chapterId, + }); + + await downloadChapter(sourceId, novelUrl, chapterUrl, chapterId); + + dispatch({ + type: CHAPTER_DOWNLOADED, + payload: chapterId, + }); + + ToastAndroid.show(`Downloaded ${chapterName}`, ToastAndroid.SHORT); + }; + +export const downloadAllChaptersAction = + (sourceId, novelUrl, chapters) => async (dispatch) => { + try { + await chapters.map((chapter, index) => { + setTimeout(async () => { + dispatch({ + type: CHAPTER_DOWNLOADING, + payload: chapter.chapterId, + }); + + if (!chapter.downloaded) { + await downloadChapter( + sourceId, + novelUrl, + chapter.chapterUrl, + chapter.chapterId + ); + } + + dispatch({ + type: CHAPTER_DOWNLOADED, + payload: chapter.chapterId, + }); + + if (index + 1 === chapters.length) { + showToast(`Download completed `); + } + }, 1000 * index); + }); + } catch (error) { + showToast(error.message); + } + }; + +export const deleteChapterAction = + (chapterId, chapterName) => async (dispatch) => { + await deleteChapter(chapterId); + + dispatch({ + type: CHAPTER_DELETED, + payload: chapterId, + }); + + showToast(`Deleted ${chapterName}`); + }; + +export const deleteAllChaptersAction = (chapters) => async (dispatch) => { + await chapters.map((chapter) => { + deleteChapter(chapter.chapterId); + + dispatch({ + type: CHAPTER_DELETED, + payload: chapter.chapterId, + }); + }); + + showToast("Chapters deleted"); +}; + +export const updateNovelAction = + (sourceId, novelUrl, novelId, sort, filter) => async (dispatch) => { + dispatch({ type: FETCHING_NOVEL }); + + await updateNovel(sourceId, novelUrl, novelId); + + let novel = await getNovel(sourceId, novelUrl); + let chapters = await getChapters(novel.novelId, sort, filter); + + dispatch({ + type: UPDATE_NOVEL, + payload: { novel, chapters }, + }); + }; diff --git a/src/redux/novel/novel.reducer.js b/src/redux/novel/novel.reducer.js new file mode 100644 index 00000000..e1ecf131 --- /dev/null +++ b/src/redux/novel/novel.reducer.js @@ -0,0 +1,157 @@ +import { + CHAPTER_DOWNLOADING, + CHAPTER_DOWNLOADED, + CHAPTER_DELETED, + GET_CHAPTERS, + LOADING_NOVEL, + GET_NOVEL, + FETCHING_NOVEL, + SET_NOVEL, + UPDATE_IN_LIBRARY, + NOVEL_ERROR, + CHAPTER_READ, + UPDATE_NOVEL, + UPDATE_LAST_READ, + CHAPTER_UNREAD, + BOOKMARK_CHAPTER, + MARK_PREVIOUS_CHAPTERS_READ, + MARK_PREVIOUS_CHAPTERS_UNREAD, +} from "./novel.types"; + +const initialState = { + novel: {}, + chapters: [], + loading: true, + updating: false, + downloading: [], +}; + +const novelReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case LOADING_NOVEL: + return { ...state, loading: true }; + case FETCHING_NOVEL: + return { ...state, updating: true }; + case SET_NOVEL: + return { ...state, novel: payload }; + case GET_NOVEL: + return { + ...state, + novel: payload, + chapters: payload.chapters, + loading: false, + updating: false, + }; + case GET_CHAPTERS: + return { + ...state, + chapters: payload, + loading: false, + updating: false, + }; + case UPDATE_IN_LIBRARY: + return { + ...state, + novel: { ...state.novel, followed: payload.followed }, + }; + case UPDATE_NOVEL: + return { + ...state, + novel: payload.novel, + chapters: payload.chapters, + loading: false, + updating: false, + }; + case CHAPTER_READ: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId === payload.chapterId + ? { ...chapter, read: 1 } + : chapter + ), + }; + case CHAPTER_UNREAD: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId === payload.chapterId + ? { ...chapter, read: 0 } + : chapter + ), + }; + case BOOKMARK_CHAPTER: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId === payload.chapterId + ? { ...chapter, bookmark: !payload.bookmark } + : chapter + ), + }; + case CHAPTER_DOWNLOADING: + return { + ...state, + downloading: [...state.downloading, payload], + }; + case CHAPTER_DOWNLOADED: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId === payload + ? { ...chapter, downloaded: 1 } + : chapter + ), + downloading: state.downloading.filter( + (chapterId) => chapterId !== payload + ), + }; + case CHAPTER_DELETED: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId === payload + ? { ...chapter, downloaded: 0 } + : chapter + ), + }; + case UPDATE_LAST_READ: + return { + ...state, + novel: { ...state.novel, lastRead: payload }, + }; + + case MARK_PREVIOUS_CHAPTERS_READ: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId < payload + ? { ...chapter, read: 1 } + : chapter + ), + }; + case MARK_PREVIOUS_CHAPTERS_UNREAD: + return { + ...state, + chapters: state.chapters.map((chapter) => + chapter.chapterId < payload + ? { ...chapter, read: 0 } + : chapter + ), + }; + case NOVEL_ERROR: + return { + ...state, + novel: {}, + chapters: [], + loading: false, + updating: false, + }; + default: + return state; + } +}; + +export default novelReducer; diff --git a/src/redux/novel/novel.types.js b/src/redux/novel/novel.types.js new file mode 100644 index 00000000..528da89d --- /dev/null +++ b/src/redux/novel/novel.types.js @@ -0,0 +1,23 @@ +export const LOADING_NOVEL = "LOADING_NOVEL"; +export const FETCHING_NOVEL = "FETCHING_NOVEL"; +export const LOADING_CHAPTERS = "LOADING_CHAPTERS"; +export const GET_NOVEL = "GET_NOVEL"; +export const SET_NOVEL = "SET_NOVEL"; +export const UPDATE_NOVEL = "UPDATE_NOVEL"; +export const UPDATE_IN_LIBRARY = "UPDATE_IN_LIBRARY"; +export const GET_CHAPTERS = "GET_CHAPTERS"; +export const UPDATE_LAST_READ = "UPDATE_LAST_READ"; + +export const CHAPTER_DOWNLOADED = "CHAPTER_DOWNLOADED"; +export const CHAPTER_DELETED = "CHAPTER_DELETED"; +export const CHAPTER_DOWNLOADING = "CHAPTER_DOWNLOADING"; +export const CHAPTER_READ = "CHAPTER_READ"; +export const CHAPTER_UNREAD = "CHAPTER_UNREAD"; +export const GET_CHAPTER = "GET_CHAPTER"; +export const NOVEL_ERROR = "NOVEL_ERROR"; +export const BOOKMARK_CHAPTER = "BOOKMARK_CHAPTER"; + +export const SET_NOVEL_SETTINGS = "SET_NOVEL_SETTINGS"; + +export const MARK_PREVIOUS_CHAPTERS_READ = "MARK_PREVIOUS_CHAPTERS_READ"; +export const MARK_PREVIOUS_CHAPTERS_UNREAD = "MARK_PREVIOUS_CHAPTERS_UNREAD"; diff --git a/src/redux/preferences/preference.actions.js b/src/redux/preferences/preference.actions.js new file mode 100644 index 00000000..7ac2eed9 --- /dev/null +++ b/src/redux/preferences/preference.actions.js @@ -0,0 +1,14 @@ +import { SAVE_SCROLL_POSITION } from "../preferences/preference.types"; + +export const saveScrollPosition = + (position, percentage, chapterId, novelId) => async (dispatch) => { + dispatch({ + type: SAVE_SCROLL_POSITION, + payload: { + position, + percentage, + chapterId, + novelId, + }, + }); + }; diff --git a/src/redux/preferences/preference.reducer.js b/src/redux/preferences/preference.reducer.js new file mode 100644 index 00000000..a0c4d965 --- /dev/null +++ b/src/redux/preferences/preference.reducer.js @@ -0,0 +1,72 @@ +import { SET_NOVEL_SETTINGS } from "../novel/novel.types"; +import { + SAVE_SCROLL_POSITION, + SET_CHAPTER_LIST_PREF, + SET_LAST_READ, +} from "./preference.types"; + +const initialState = { + novelSettings: {}, +}; + +const novelReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case SET_LAST_READ: + return { + ...state, + novelSettings: { + ...state.novelSettings, + [payload.novelId]: { + ...state.novelSettings[payload.novelId], + lastRead: payload.chapterId, + }, + }, + }; + case SET_CHAPTER_LIST_PREF: + return { + ...state, + novelSettings: { + ...state.novelSettings, + [payload.novelId]: { + ...state.novelSettings[payload.novelId], + sort: payload.sort, + filter: payload.filter, + }, + }, + }; + case SET_NOVEL_SETTINGS: + return { + ...state, + novelSettings: { + ...state.novelSettings, + [payload.novelId]: { + ...state.novelSettings[payload.novelId], + showChapterTitles: payload.value, + }, + }, + }; + case SAVE_SCROLL_POSITION: + return { + ...state, + novelSettings: { + ...state.novelSettings, + [payload.novelId]: { + ...state.novelSettings[payload.novelId], + position: { + ...state.novelSettings[payload.novelId].position, + [payload.chapterId]: { + position: payload.position, + percentage: payload.percentage, + }, + }, + }, + }, + }; + default: + return state; + } +}; + +export default novelReducer; diff --git a/src/redux/preferences/preference.types.js b/src/redux/preferences/preference.types.js new file mode 100644 index 00000000..d41f9a41 --- /dev/null +++ b/src/redux/preferences/preference.types.js @@ -0,0 +1,3 @@ +export const SET_CHAPTER_LIST_PREF = "SET_CHAPTER_LIST_PREF"; +export const SET_LAST_READ = "SET_LAST_READ"; +export const SAVE_SCROLL_POSITION = "SAVE_SCROLL_POSITION"; diff --git a/src/redux/settings/settings.actions.js b/src/redux/settings/settings.actions.js new file mode 100644 index 00000000..795d2c9a --- /dev/null +++ b/src/redux/settings/settings.actions.js @@ -0,0 +1,42 @@ +import { + SET_APP_THEME, + SET_NOVELS_PER_ROW, + SET_READER_SETTINGS, + SET_APP_SETTINGS, + SET_ACCENT_COLOR, +} from "./settings.types"; + +export const setAppTheme = (val) => (dispatch) => { + dispatch({ + type: SET_APP_THEME, + payload: val, + }); +}; + +export const setNovelsPerRow = (val) => (dispatch) => { + dispatch({ + type: SET_NOVELS_PER_ROW, + payload: val, + }); +}; + +export const setAppSettings = (key, val) => (dispatch) => { + dispatch({ + type: SET_APP_SETTINGS, + payload: { key, val }, + }); +}; + +export const setReaderSettings = (key, val) => (dispatch) => { + dispatch({ + type: SET_READER_SETTINGS, + payload: { key, val }, + }); +}; + +export const setAccentColor = (val) => (dispatch) => { + dispatch({ + type: SET_ACCENT_COLOR, + payload: val, + }); +}; diff --git a/src/redux/settings/settings.reducer.js b/src/redux/settings/settings.reducer.js new file mode 100644 index 00000000..e4505203 --- /dev/null +++ b/src/redux/settings/settings.reducer.js @@ -0,0 +1,99 @@ +import { + SET_APP_THEME, + SET_NOVELS_PER_ROW, + SET_READER_SETTINGS, + SET_APP_SETTINGS, + SET_ACCENT_COLOR, +} from "./settings.types"; +import { + amoledDarkTheme, + lightTheme, + darkTheme, + midnightDuskTheme, + limeTheme, + irisBlueTheme, +} from "../../theme/theme"; + +const themes = { + 0: amoledDarkTheme, + 1: lightTheme, + 2: darkTheme, + 3: midnightDuskTheme, + 4: limeTheme, + 5: irisBlueTheme, +}; + +/** + * Display Mode + * + * 0 -> Compact + * 1 -> Comfortable + * 2 -> List + */ + +/** + * Reader Theme + * + * 1 -> Dark + * 2 -> White + * 3 -> Sepia + */ + +const initialState = { + theme: darkTheme, + displayMode: 0, + novelsPerRow: 3, + reader: { + theme: 1, + textColor: "rgba(255,255,255,0.7)", + textSize: 16, + textAlign: "left", + padding: 5, + fontFamily: "", + lineHeight: 1.5, + }, + showDownloadBadges: true, + showUnreadBadges: true, + showNumberOfNovels: false, + showScrollPercentage: true, + swipeGestures: true, +}; + +const settingsReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case SET_APP_THEME: + return { ...state, theme: themes[payload] }; + case SET_NOVELS_PER_ROW: + return { + ...state, + novelsPerRow: state.displayMode !== 2 ? payload : 1, + }; + case SET_ACCENT_COLOR: + return { + ...state, + theme: { + ...state.theme, + colorAccent: payload, + }, + }; + case SET_APP_SETTINGS: + return { + ...state, + [payload.key]: payload.val, + }; + case SET_READER_SETTINGS: + return { + ...state, + reader: { + ...state.reader, + [payload.key]: payload.val, + }, + }; + default: + return state; + } +}; + +export default settingsReducer; diff --git a/src/redux/settings/settings.types.js b/src/redux/settings/settings.types.js new file mode 100644 index 00000000..0afca67c --- /dev/null +++ b/src/redux/settings/settings.types.js @@ -0,0 +1,5 @@ +export const SET_APP_SETTINGS = "SET_APP_SETTINGS"; +export const SET_APP_THEME = "SET_APP_THEME"; +export const SET_NOVELS_PER_ROW = "SET_NOVELS_PER_ROW"; +export const SET_READER_SETTINGS = "SET_READER_SETTINGS"; +export const SET_ACCENT_COLOR = "SET_ACCENT_COLOR"; diff --git a/src/redux/source/source.actions.js b/src/redux/source/source.actions.js new file mode 100644 index 00000000..7ecca253 --- /dev/null +++ b/src/redux/source/source.actions.js @@ -0,0 +1,47 @@ +import { + ENABLE_DISCOVER, + FILTER_LANGUAGE, + GET_SOURCES, + PIN_SOURCES, + SEARCH_SOURCES, +} from "./source.types"; +import { showToast } from "../../hooks/showToast"; +import { sources } from "../../sources/sources"; + +export const getSourcesAction = () => async (dispatch) => { + try { + dispatch({ type: GET_SOURCES, payload: sources }); + } catch (error) { + showToast(error.message); + } +}; + +export const searchSourcesAction = (searchText) => async (dispatch) => { + const res = searchText.toLowerCase(); + + dispatch({ + type: SEARCH_SOURCES, + payload: res, + }); +}; + +export const pinSourceAction = (sourceId) => async (dispatch) => { + dispatch({ + type: PIN_SOURCES, + payload: sourceId, + }); +}; + +export const filterLanguage = (language) => async (dispatch) => { + dispatch({ + type: FILTER_LANGUAGE, + payload: language, + }); +}; + +export const enableDiscover = (key) => async (dispatch) => { + dispatch({ + type: ENABLE_DISCOVER, + payload: key, + }); +}; diff --git a/src/redux/source/source.reducers.js b/src/redux/source/source.reducers.js new file mode 100644 index 00000000..58e45560 --- /dev/null +++ b/src/redux/source/source.reducers.js @@ -0,0 +1,63 @@ +import { + GET_SOURCES, + SEARCH_SOURCES, + PIN_SOURCES, + FILTER_LANGUAGE, + ENABLE_DISCOVER, +} from "./source.types"; + +const initialState = { + sources: [], + pinnedSources: [], + search: [], + pinned: [], + filters: [], + showNovelUpdates: true, + showMyAnimeList: true, + loading: true, +}; + +const sourceReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case GET_SOURCES: + return { ...state, sources: payload, loading: false }; + case PIN_SOURCES: + return { + ...state, + pinned: + state.pinned.indexOf(payload) === -1 + ? [...state.pinned, payload] + : state.pinned.filter((source) => source !== payload), + loading: false, + }; + case SEARCH_SOURCES: + return { + ...state, + search: state.sources.filter((source) => + source.sourceName.toLowerCase().includes(payload) + ), + }; + + case FILTER_LANGUAGE: + return { + ...state, + filters: + state.filters.indexOf(payload) === -1 + ? [...state.filters, payload] + : state.filters.filter( + (language) => language !== payload + ), + }; + case ENABLE_DISCOVER: + return { + ...state, + [payload]: !state[payload], + }; + default: + return state; + } +}; + +export default sourceReducer; diff --git a/src/redux/source/source.types.js b/src/redux/source/source.types.js new file mode 100644 index 00000000..ebaf7aca --- /dev/null +++ b/src/redux/source/source.types.js @@ -0,0 +1,5 @@ +export const GET_SOURCES = "GET_SOURCES"; +export const SEARCH_SOURCES = "SEARCH_SOURCES"; +export const PIN_SOURCES = "PIN_SOURCES"; +export const FILTER_LANGUAGE = "FILTER_LANGUAGE"; +export const ENABLE_DISCOVER = "ENABLE_DISCOVER"; diff --git a/src/redux/store.js b/src/redux/store.js new file mode 100644 index 00000000..6ffcb53d --- /dev/null +++ b/src/redux/store.js @@ -0,0 +1,36 @@ +import { createStore, applyMiddleware, combineReducers } from "redux"; +import { persistStore, persistReducer } from "redux-persist"; +import AsyncStorage from "@react-native-async-storage/async-storage"; +import thunk from "redux-thunk"; + +import settingsReducer from "./settings/settings.reducer"; +import libraryReducer from "./library/library.reducer"; +import sourceReducer from "./source/source.reducers"; +import novelReducer from "./novel/novel.reducer"; +import historyReducer from "./history/history.reducer"; +import updatesReducer from "./updates/updates.reducer"; +import trackerReducer from "./tracker/tracker.reducer"; +import preferenceReducer from "./preferences/preference.reducer"; + +const persistConfig = { + key: "root", + storage: AsyncStorage, + blacklist: ["novelReducer"], +}; + +const persistedReducer = persistReducer( + persistConfig, + combineReducers({ + settingsReducer, + libraryReducer, + sourceReducer, + novelReducer, + historyReducer, + updatesReducer, + trackerReducer, + preferenceReducer, + }) +); + +export const store = createStore(persistedReducer, applyMiddleware(thunk)); +export const persistor = persistStore(store); diff --git a/src/redux/tracker/tracker.actions.js b/src/redux/tracker/tracker.actions.js new file mode 100644 index 00000000..d043e683 --- /dev/null +++ b/src/redux/tracker/tracker.actions.js @@ -0,0 +1,56 @@ +import { findListItem, updateItem } from "../../services/Trackers/myAnimeList"; +import { + REMOVE_TRACKER, + SET_TRACKER, + TRACK_NOVEL, + UNTRACK_NOVEL, + UPDATE_TRACKER, + UPDATE_CHAPTERS_READ, +} from "./tracker.types"; + +import { updateMalChaptersRead } from "../../services/Trackers/myAnimeList"; + +export const setTracker = (res) => async (dispatch) => { + dispatch({ + type: SET_TRACKER, + payload: res, + }); +}; + +export const removeTracker = () => async (dispatch) => { + dispatch({ type: REMOVE_TRACKER }); +}; + +export const trackNovel = (trackObj, accessToken) => async (dispatch) => { + let res = await findListItem(trackObj.id, accessToken); + trackObj.num_chapters = res.num_chapters; + trackObj.my_list_status = { + num_chapters_read: res.my_list_status.num_chapters_read, + score: res.my_list_status.score, + status: res.my_list_status.status, + }; + + dispatch({ type: TRACK_NOVEL, payload: trackObj }); +}; + +export const updateTracker = (malId, accessToken, body) => async (dispatch) => { + let res = await updateItem(malId, accessToken, body); + + dispatch({ type: UPDATE_TRACKER, payload: { malId, ...res } }); +}; + +export const untrackNovel = (id) => async (dispatch) => { + dispatch({ type: UNTRACK_NOVEL, payload: id }); +}; + +export const updateChaptersRead = + (malId, accessToken, chaptersRead) => async (dispatch) => { + let res = await updateMalChaptersRead(malId, accessToken, { + num_chapters_read: chaptersRead, + }); + + dispatch({ + type: UPDATE_CHAPTERS_READ, + payload: { malId, chaptersRead: res }, + }); + }; diff --git a/src/redux/tracker/tracker.reducer.js b/src/redux/tracker/tracker.reducer.js new file mode 100644 index 00000000..045444e8 --- /dev/null +++ b/src/redux/tracker/tracker.reducer.js @@ -0,0 +1,81 @@ +import { + REMOVE_TRACKER, + SET_TRACKER, + TRACK_NOVEL, + UNTRACK_NOVEL, + UPDATE_CHAPTERS_READ, + UPDATE_TRACKER, +} from "./tracker.types"; + +const initialState = { + tracker: null, + trackedNovels: [], +}; + +const trackerReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case SET_TRACKER: + return { + ...state, + tracker: { ...payload, name: "MyAnimeList" }, + }; + case REMOVE_TRACKER: + return { + ...state, + tracker: null, + }; + case TRACK_NOVEL: + return { + ...state, + trackedNovels: state.trackedNovels.some( + (obj) => obj.novelId === payload.novelId + ) + ? state.trackedNovels + : [...state.trackedNovels, payload], + }; + case UPDATE_TRACKER: + return { + ...state, + trackedNovels: state.trackedNovels.map((novel) => + novel.id === payload.malId + ? { + ...novel, + my_list_status: { + num_chapters_read: payload.num_chapters_read, + status: payload.status, + score: payload.score, + }, + } + : novel + ), + }; + case UNTRACK_NOVEL: + return { + ...state, + trackedNovels: state.trackedNovels.filter( + (id) => id === payload + ), + }; + case UPDATE_CHAPTERS_READ: + return { + ...state, + trackedNovels: state.trackedNovels.map((novel) => + novel.id === payload.malId + ? { + ...novel, + my_list_status: { + ...novel.my_list_status, + num_chapters_read: payload.chaptersRead, + }, + } + : novel + ), + }; + default: + return state; + } +}; + +export default trackerReducer; diff --git a/src/redux/tracker/tracker.types.js b/src/redux/tracker/tracker.types.js new file mode 100644 index 00000000..b08f1262 --- /dev/null +++ b/src/redux/tracker/tracker.types.js @@ -0,0 +1,9 @@ +export const SET_TRACKER = "SET_TRACKER"; +export const REMOVE_TRACKER = "REMOVE_TRACKER"; + +export const TRACK_NOVEL = "TRACK_NOVEL"; +export const UNTRACK_NOVEL = "UNTRACK_NOVEL"; + +export const UPDATE_TRACKER = "UPDATE_TRACKER"; + +export const UPDATE_CHAPTERS_READ = "UPDATE_CHAPTERS_READ"; diff --git a/src/redux/updates/updates.actions.js b/src/redux/updates/updates.actions.js new file mode 100644 index 00000000..d23868d9 --- /dev/null +++ b/src/redux/updates/updates.actions.js @@ -0,0 +1,42 @@ +import { GET_UPDATES } from "./updates.types"; + +import { getUpdates } from "../../database/queries/UpdateQueries"; +import { updateAllNovels } from "../../services/updates"; + +import { showToast } from "../../hooks/showToast"; + +export const getUpdatesAction = () => async (dispatch) => { + const updates = await getUpdates(); + + const groups = updates.reduce((groups, update) => { + var dateParts = update.updateTime.split("-"); + var jsDate = new Date( + dateParts[0], + dateParts[1] - 1, + dateParts[2].substr(0, 2) + ); + const date = jsDate.toISOString(); + if (!groups[date]) { + groups[date] = []; + } + groups[date].push(update); + return groups; + }, {}); + + const groupedUpdates = Object.keys(groups).map((date) => { + return { + date, + chapters: groups[date], + }; + }); + + dispatch({ type: GET_UPDATES, payload: groupedUpdates }); +}; + +export const updateLibraryAction = () => async (dispatch) => { + showToast("Updating library"); + + await updateAllNovels(); + + dispatch(getUpdatesAction()); +}; diff --git a/src/redux/updates/updates.reducer.js b/src/redux/updates/updates.reducer.js new file mode 100644 index 00000000..216e4ae7 --- /dev/null +++ b/src/redux/updates/updates.reducer.js @@ -0,0 +1,21 @@ +import { LOAD_UPDATES, GET_UPDATES } from "./updates.types"; + +const initialState = { + updates: [], + loading: true, +}; + +const updateReducer = (state = initialState, action) => { + const { type, payload } = action; + + switch (type) { + case LOAD_UPDATES: + return { ...state, loading: true }; + case GET_UPDATES: + return { ...state, updates: payload, loading: false }; + default: + return state; + } +}; + +export default updateReducer; diff --git a/src/redux/updates/updates.types.js b/src/redux/updates/updates.types.js new file mode 100644 index 00000000..108a3c19 --- /dev/null +++ b/src/redux/updates/updates.types.js @@ -0,0 +1,2 @@ +export const GET_UPDATES = "GET_UPDATES"; +export const LOAD_UPDATES = "LOAD_UPDATES"; diff --git a/src/screens/Browse/Browse.js b/src/screens/Browse/Browse.js new file mode 100644 index 00000000..a3a4fbb6 --- /dev/null +++ b/src/screens/Browse/Browse.js @@ -0,0 +1,192 @@ +import React, { useEffect, useState } from "react"; +import { + StyleSheet, + View, + Text, + FlatList, + ActivityIndicator, + RefreshControl, +} from "react-native"; +import { useTheme } from "../../hooks/reduxHooks"; +import { useDispatch, useSelector } from "react-redux"; + +import { + getSourcesAction, + searchSourcesAction, +} from "../../redux/source/source.actions"; + +import SourceCard from "./components/SourceCard"; +import { showToast } from "../../hooks/showToast"; +import { Searchbar } from "../../components/Searchbar"; +import MalCard from "./components/MalCard"; +import NovelUpdatesCard from "./components/NovelUpdatesCard"; + +const Browse = ({ navigation }) => { + const [refreshing, setRefreshing] = useState(false); + const [searchText, setSearchText] = useState(""); + // const [globalSearch, setGlobalSearch] = useState(false); + // const [searchResult, setSearchResults] = useState(); + let { + sources, + search, + loading, + pinned, + filters, + showNovelUpdates, + showMyAnimeList, + } = useSelector((state) => state.sourceReducer); + const theme = useTheme(); + const dispatch = useDispatch(); + + const isPinned = (sourceId) => + pinned.indexOf(sourceId) === -1 ? false : true; + + sources = sources.filter((source) => filters.indexOf(source.lang) === -1); + + useEffect(() => { + dispatch(getSourcesAction()); + }, [getSourcesAction]); + + const onRefresh = () => { + showToast("Updating extension list"); + setRefreshing(true); + getSourcesAction(); + setRefreshing(false); + }; + + const clearSearchbar = () => { + setSearchText(""); + }; + + const onChangeText = (text) => { + setSearchText(text); + dispatch(searchSourcesAction(text)); + }; + + // const onSubmitEditing = () => {}; + + const renderItem = ({ item }) => ( + + ); + + return ( + + navigation.navigate("GlobalSearch"), + }, + { + icon: "swap-vertical-variant", + onPress: () => navigation.navigate("Migration"), + }, + { + icon: "cog-outline", + onPress: () => navigation.navigate("BrowseSettings"), + }, + ]} + /> + + item.sourceId.toString()} + renderItem={renderItem} + extraData={pinned} + ListHeaderComponent={ + + {(showNovelUpdates || showMyAnimeList) && ( + <> + + Discover + + {showNovelUpdates && ( + + )} + {showMyAnimeList && } + + )} + {pinned.length > 0 && ( + + isPinned(source.sourceId) + )} + keyExtractor={(item) => + item.sourceId.toString() + } + renderItem={renderItem} + extraData={pinned} + ListHeaderComponent={ + + Pinned + + } + /> + )} + + Sources + + + } + ListEmptyComponent={ + loading && ( + + ) + } + refreshControl={ + + } + /> + + ); +}; + +export default Browse; + +const styles = StyleSheet.create({ + container: { flex: 1 }, +}); diff --git a/src/screens/Browse/BrowseMal.js b/src/screens/Browse/BrowseMal.js new file mode 100644 index 00000000..a78f272b --- /dev/null +++ b/src/screens/Browse/BrowseMal.js @@ -0,0 +1,166 @@ +import React, { useEffect, useState } from "react"; +import { StyleSheet, View, ActivityIndicator, FlatList } from "react-native"; + +import * as WebBrowser from "expo-web-browser"; + +import NovelCover from "../../components/NovelCover"; +import { Searchbar } from "../../components/Searchbar"; +import ErrorView from "../../components/ErrorView"; + +import { useTheme, useSettings } from "../../hooks/reduxHooks"; +import { showToast } from "../../hooks/showToast"; +import { getDeviceOrientation } from "../../services/utils/helpers"; +import { scrapeSearchResults } from "./discover/MyAnimeListScraper"; + +const BrowseMalScreen = ({ navigation, route }) => { + const theme = useTheme(); + + const [loading, setLoading] = useState(true); + const [novels, setNovels] = useState(); + const [error, setError] = useState(); + + const [searchText, setSearchText] = useState(""); + + const baseUrl = "https://api.jikan.moe/v3/"; + const malUrl = "https://myanimelist.net/topmanga.php?type=lightnovels"; + + const getNovels = async () => { + try { + const url = `${baseUrl}top/manga/1/novels`; + + const res = await fetch(url); + const data = await res.json(); + + setNovels(data.top); + setLoading(false); + } catch (error) { + setError(error.message); + setNovels([]); + setLoading(false); + showToast(error.message); + } + }; + + const clearSearchbar = () => { + getNovels(); + setLoading(true); + setSearchText(""); + }; + + const getSearchResults = async () => { + try { + setLoading(true); + + const data = await scrapeSearchResults(searchText); + + setNovels(data); + setLoading(false); + } catch (error) { + setError(error.message); + setNovels([]); + setLoading(false); + showToast(error.message); + } + }; + + useEffect(() => { + getNovels(); + }, []); + + const renderItem = ({ item }) => ( + + navigation.navigate("GlobalSearch", { + novelName: item.title, + }) + } + /> + ); + + const { displayMode, novelsPerRow } = useSettings(); + + const orientation = getDeviceOrientation(); + + const getNovelsPerRow = () => { + if (displayMode === 2) { + return 1; + } + + if (orientation === "landscape") { + return 6; + } else { + return novelsPerRow; + } + }; + + const ListEmptyComponent = () => ( + { + getNovels(); + setLoading(true); + setError(); + }} + openWebView={() => WebBrowser.openBrowserAsync(topNovelsUrl)} + theme={theme} + /> + ); + + return ( + + navigation.goBack()} + searchText={searchText} + onChangeText={(text) => setSearchText(text)} + onSubmitEditing={getSearchResults} + clearSearchbar={clearSearchbar} + actions={[ + { + icon: "earth", + onPress: () => WebBrowser.openBrowserAsync(malUrl), + }, + ]} + /> + {loading ? ( + + + + ) : ( + item.mal_id.toString()} + renderItem={renderItem} + ListEmptyComponent={ListEmptyComponent} + /> + )} + + ); +}; + +export default BrowseMalScreen; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + contentContainer: { + flex: 1, + }, + novelsContainer: { + flexGrow: 1, + paddingVertical: 8, + paddingHorizontal: 4, + }, +}); diff --git a/src/screens/Browse/BrowseSettings.js b/src/screens/Browse/BrowseSettings.js new file mode 100644 index 00000000..3636e16f --- /dev/null +++ b/src/screens/Browse/BrowseSettings.js @@ -0,0 +1,105 @@ +import React, { useState } from "react"; +import { FlatList, Pressable, Text, View } from "react-native"; + +import { Switch } from "react-native-paper"; +import { useDispatch, useSelector } from "react-redux"; + +import { Appbar } from "../../components/Appbar"; +import { ScreenContainer } from "../../components/Common"; +import { ListSubHeader } from "../../components/List"; + +import { useTheme } from "../../hooks/reduxHooks"; +import { + enableDiscover, + filterLanguage, +} from "../../redux/source/source.actions"; + +const BrowseSettings = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + const { filters, showNovelUpdates, showMyAnimeList } = useSelector( + (state) => state.sourceReducer + ); + const languages = ["English", "Spanish"]; + + const renderItem = ({ item }) => { + return ( + dispatch(filterLanguage(item))} + > + {item} + dispatch(filterLanguage(item))} + /> + + ); + }; + + return ( + + + + Discover + dispatch(enableDiscover("showNovelUpdates"))} + > + + Novel Updates + + + dispatch(enableDiscover("showNovelUpdates")) + } + /> + + dispatch(enableDiscover("showMyAnimeList"))} + > + + MyAnimeList + + + dispatch(enableDiscover("showMyAnimeList")) + } + /> + + Languages + item} + renderItem={renderItem} + /> + + + ); +}; + +export default BrowseSettings; diff --git a/src/screens/Browse/SourceNovels.js b/src/screens/Browse/SourceNovels.js new file mode 100644 index 00000000..d4837c5c --- /dev/null +++ b/src/screens/Browse/SourceNovels.js @@ -0,0 +1,83 @@ +import React from "react"; +import { StyleSheet, View, FlatList, Text } from "react-native"; +import { useLibrary, useTheme } from "../../hooks/reduxHooks"; + +import EmptyView from "../../components/EmptyView"; +import { Appbar } from "../../components/Appbar"; +import ListView from "../../components/ListView"; + +const SourceNovels = ({ navigation, route }) => { + const sourceId = route.params; + const theme = useTheme(); + const library = useLibrary(); + + const sourceNovels = library.filter((novel) => novel.sourceId === sourceId); + + const renderItem = ({ item }) => ( + + navigation.navigate("MigrateNovel", { + sourceId: item.sourceId, + novelName: item.novelName, + }) + } + /> + ); + + return ( + + navigation.goBack()} + /> + item.novelId.toString()} + renderItem={renderItem} + ListEmptyComponent={ + + Your library does not have any novels from this source + + } + /> + {/* + + + */} + + ); +}; + +export default SourceNovels; + +const styles = StyleSheet.create({ + container: { flex: 1 }, +}); diff --git a/src/screens/Browse/components/MalCard.js b/src/screens/Browse/components/MalCard.js new file mode 100644 index 00000000..37633ab6 --- /dev/null +++ b/src/screens/Browse/components/MalCard.js @@ -0,0 +1,80 @@ +import React from "react"; +import { View, Text, Image, StyleSheet } from "react-native"; + +import { TouchableRipple, Button } from "react-native-paper"; +import { useNavigation } from "@react-navigation/native"; + +const MalCard = ({ theme }) => { + const navigation = useNavigation(); + + const navigateToExtension = () => navigation.navigate("BrowseMal"); + + return ( + + <> + + + + + MyAnimeList + + + + + + + + + ); +}; + +export default MalCard; + +const styles = StyleSheet.create({ + extensionCard: { + flexDirection: "row", + alignItems: "center", + marginVertical: 4, + paddingVertical: 8, + paddingHorizontal: 20, + }, + extensionIcon: { + width: 40, + height: 40, + borderRadius: 8, + }, + extensionDetails: { + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + marginLeft: 16, + }, + sourceStatus: { + color: "#C14033", + fontSize: 12, + marginLeft: 5, + }, +}); diff --git a/src/screens/Browse/components/NovelUpdatesCard.js b/src/screens/Browse/components/NovelUpdatesCard.js new file mode 100644 index 00000000..bab90670 --- /dev/null +++ b/src/screens/Browse/components/NovelUpdatesCard.js @@ -0,0 +1,80 @@ +import React from "react"; +import { View, Text, Image, StyleSheet } from "react-native"; + +import { TouchableRipple, Button } from "react-native-paper"; +import { useNavigation } from "@react-navigation/native"; + +const NovelUpdatesCard = ({ theme }) => { + const navigation = useNavigation(); + + const navigateToExtension = () => navigation.navigate("BrowseNovelUpdates"); + + return ( + + <> + + + + + Novel Updates + + + + + + + + + ); +}; + +export default NovelUpdatesCard; + +const styles = StyleSheet.create({ + extensionCard: { + flexDirection: "row", + alignItems: "center", + marginVertical: 4, + paddingVertical: 8, + paddingHorizontal: 20, + }, + extensionIcon: { + width: 40, + height: 40, + borderRadius: 8, + }, + extensionDetails: { + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + marginLeft: 16, + }, + sourceStatus: { + color: "#C14033", + fontSize: 12, + marginLeft: 5, + }, +}); diff --git a/src/screens/Browse/components/SourceCard.js b/src/screens/Browse/components/SourceCard.js new file mode 100644 index 00000000..b44a440e --- /dev/null +++ b/src/screens/Browse/components/SourceCard.js @@ -0,0 +1,110 @@ +import React from "react"; +import { View, Text, Image, StyleSheet } from "react-native"; +import { TouchableRipple, Button, IconButton } from "react-native-paper"; +import { useNavigation } from "@react-navigation/native"; +import { useDispatch } from "react-redux"; +import { pinSourceAction } from "../../../redux/source/source.actions"; +import FastImage from "react-native-fast-image"; + +const ExtensionCard = ({ item, theme, isPinned }) => { + const { sourceId, sourceName, icon, lang } = item; + + const navigation = useNavigation(); + const dispatch = useDispatch(); + + const navigateToExtension = () => + navigation.navigate("Extension", { + sourceId: item.sourceId, + sourceName: item.sourceName, + sourceUrl: item.url, + }); + + return ( + + <> + + + + + {sourceName} + + + {lang} + + + + + dispatch(pinSourceAction(sourceId))} + color={ + isPinned + ? theme.colorAccent + : theme.textColorSecondary + } + style={{ margin: 2 }} + /> + + + + + ); +}; + +export default ExtensionCard; + +const styles = StyleSheet.create({ + extensionCard: { + flexDirection: "row", + alignItems: "center", + marginVertical: 4, + paddingVertical: 8, + paddingHorizontal: 20, + }, + extensionIcon: { + width: 40, + height: 40, + borderRadius: 8, + }, + extensionDetails: { + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + marginLeft: 16, + }, + sourceStatus: { + color: "#C14033", + fontSize: 12, + marginLeft: 5, + }, +}); diff --git a/src/screens/Browse/discover/BrowseNovelUpdates.js b/src/screens/Browse/discover/BrowseNovelUpdates.js new file mode 100644 index 00000000..90d859e9 --- /dev/null +++ b/src/screens/Browse/discover/BrowseNovelUpdates.js @@ -0,0 +1,127 @@ +import React, { useState, useEffect } from "react"; +import { + ActivityIndicator, + Button, + FlatList, + StyleSheet, + Text, + View, +} from "react-native"; + +import * as WebBrowser from "expo-web-browser"; + +import { ScreenContainer } from "../../../components/Common"; +import { Searchbar } from "../../../components/Searchbar"; + +import { useTheme } from "../../../hooks/reduxHooks"; +import { scrapeSearchResults, scrapeTopNovels } from "./NovelUpdatesScraper"; +import NovelUpdatesNovelCard from "./NovelUpdatesNovelCard"; + +const BrowseNovelUpdates = ({ navigation }) => { + const theme = useTheme(); + + const [novels, setNovels] = useState([]); + const [pageNo, setPageNo] = useState(1); + const [loading, setLoading] = useState(true); + + const [searchText, setSearchText] = useState(""); + + const getNovels = async (pageNo) => { + const data = await scrapeTopNovels(pageNo); + + setNovels((novels) => novels.concat(data)); + setLoading(false); + }; + + useEffect(() => { + getNovels(1); + }, []); + + const getSearchResults = async () => { + setLoading(true); + + const data = await scrapeSearchResults(searchText); + setNovels(data); + setLoading(false); + }; + + const clearSearchbar = () => { + getNovels(); + setLoading(true); + setSearchText(""); + }; + + const isCloseToBottom = ({ + layoutMeasurement, + contentOffset, + contentSize, + }) => { + const paddingToBottom = 20; + return ( + layoutMeasurement.height + contentOffset.y >= + contentSize.height - paddingToBottom + ); + }; + + return ( + + setSearchText(text)} + onSubmitEditing={getSearchResults} + clearSearchbar={clearSearchbar} + actions={[ + { + icon: "earth", + onPress: () => + WebBrowser.openBrowserAsync( + "https://www.novelupdates.com/" + ), + }, + ]} + /> + {loading ? ( + + + + ) : ( + item.novelName.toString()} + renderItem={({ item }) => ( + + navigation.navigate("GlobalSearch", { + novelName: item.novelName, + }) + } + /> + )} + onScroll={({ nativeEvent }) => { + if (!searchText && isCloseToBottom(nativeEvent)) { + getNovels(pageNo + 1); + setPageNo((pageNo) => pageNo + 1); + } + }} + ListFooterComponent={ + !searchText && ( + + + + ) + } + /> + )} + + ); +}; + +export default BrowseNovelUpdates; + +const styles = StyleSheet.create({}); diff --git a/src/screens/Browse/discover/MalTopNovels.js b/src/screens/Browse/discover/MalTopNovels.js new file mode 100644 index 00000000..b9f154e7 --- /dev/null +++ b/src/screens/Browse/discover/MalTopNovels.js @@ -0,0 +1,195 @@ +import React, { useEffect, useState } from "react"; +import { + StyleSheet, + View, + ActivityIndicator, + FlatList, + Button, +} from "react-native"; + +import * as WebBrowser from "expo-web-browser"; + +import NovelCover from "../../../components/NovelCover"; +import { Searchbar } from "../../../components/Searchbar"; +import ErrorView from "../../../components/ErrorView"; + +import { useTheme, useSettings } from "../../../hooks/reduxHooks"; +import { showToast } from "../../../hooks/showToast"; +import { getDeviceOrientation } from "../../../services/utils/helpers"; +import { scrapeSearchResults, scrapeTopNovels } from "./MyAnimeListScraper"; + +const BrowseMalScreen = ({ navigation, route }) => { + const theme = useTheme(); + + const [loading, setLoading] = useState(true); + const [novels, setNovels] = useState([]); + const [error, setError] = useState(); + const [limit, setLimit] = useState(0); + + const [searchText, setSearchText] = useState(""); + + const baseUrl = "https://api.jikan.moe/v3/"; + const malUrl = "https://myanimelist.net/topmanga.php?type=lightnovels"; + + const getNovels = async (limit) => { + try { + const data = await scrapeTopNovels(limit); + + setNovels((novels) => novels.concat(data)); + setLoading(false); + } catch (error) { + setError(error.message); + setNovels([]); + setLoading(false); + showToast(error.message); + } + }; + + const clearSearchbar = () => { + getNovels(); + setLoading(true); + setSearchText(""); + }; + + const getSearchResults = async () => { + try { + setLoading(true); + + const data = await scrapeSearchResults(searchText); + + setNovels(data); + setLoading(false); + } catch (error) { + setError(error.message); + setNovels([]); + setLoading(false); + showToast(error.message); + } + }; + + useEffect(() => { + getNovels(); + }, []); + + const renderItem = ({ item }) => ( + + navigation.navigate("GlobalSearch", { + novelName: item.novelName, + }) + } + /> + ); + + const { displayMode, novelsPerRow } = useSettings(); + + const orientation = getDeviceOrientation(); + + const getNovelsPerRow = () => { + if (displayMode === 2) { + return 1; + } + + if (orientation === "landscape") { + return 6; + } else { + return novelsPerRow; + } + }; + + const isCloseToBottom = ({ + layoutMeasurement, + contentOffset, + contentSize, + }) => { + const paddingToBottom = 20; + return ( + layoutMeasurement.height + contentOffset.y >= + contentSize.height - paddingToBottom + ); + }; + + const ListEmptyComponent = () => ( + { + getNovels(); + setLoading(true); + setError(); + }} + openWebView={() => WebBrowser.openBrowserAsync(topNovelsUrl)} + theme={theme} + /> + ); + + return ( + + navigation.goBack()} + searchText={searchText} + onChangeText={(text) => setSearchText(text)} + onSubmitEditing={getSearchResults} + clearSearchbar={clearSearchbar} + actions={[ + { + icon: "earth", + onPress: () => WebBrowser.openBrowserAsync(malUrl), + }, + ]} + /> + {loading ? ( + + + + ) : ( + item.novelName} + renderItem={renderItem} + ListEmptyComponent={ListEmptyComponent} + onScroll={({ nativeEvent }) => { + if (!searchText && isCloseToBottom(nativeEvent)) { + getNovels(limit + 50); + setLimit((limit) => limit + 50); + } + }} + ListFooterComponent={ + !searchText && ( + + + + ) + } + /> + )} + + ); +}; + +export default BrowseMalScreen; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + contentContainer: { + flex: 1, + }, + novelsContainer: { + flexGrow: 1, + paddingVertical: 8, + paddingHorizontal: 4, + }, +}); diff --git a/src/screens/Browse/discover/MyAnimeListScraper.js b/src/screens/Browse/discover/MyAnimeListScraper.js new file mode 100644 index 00000000..2e402bf5 --- /dev/null +++ b/src/screens/Browse/discover/MyAnimeListScraper.js @@ -0,0 +1,70 @@ +import cheerio from "react-native-cheerio"; + +const scrapeTopNovels = async (pageNo) => { + const url = + "https://myanimelist.net/topmanga.php?type=lightnovels&limit=" + pageNo; + + const res = await fetch(url); + const body = await res.text(); + + const $ = cheerio.load(body); + + const novels = []; + + $("tr.ranking-list").each(function (res) { + const novelId = $(this).find("img").attr("data-src").split("/"); + + const novelCover = + "https://cdn.myanimelist.net/images/manga/" + + novelId[7] + + "/" + + novelId[8].split(".")[0] + + ".jpg"; + const novelName = $(this).find("h3").text(); + + const novel = { novelName, novelCover }; + + novels.push(novel); + }); + + return novels; +}; + +const scrapeSearchResults = async (searchTerm) => { + const url = + "https://myanimelist.net/manga.php?q=" + + searchTerm + + "&cat=manga&type=2"; + + const res = await fetch(url); + const body = await res.text(); + + const $ = cheerio.load(body); + + const novels = []; + + $(".list") + .find("tr") + .each(function (res) { + const novelName = $(this).find("a > strong").text(); + + if (novelName) { + const novelId = $(this).find("img").attr("data-src").split("/"); + + const novelCover = + "https://cdn.myanimelist.net/images/manga/" + + novelId[7] + + "/" + + novelId[8].split(".")[0] + + ".jpg"; + + const novel = { novelName, novelCover }; + + novels.push(novel); + } + }); + + return novels; +}; + +export { scrapeTopNovels, scrapeSearchResults }; diff --git a/src/screens/Browse/discover/NovelUpdatesBottomsheet.js b/src/screens/Browse/discover/NovelUpdatesBottomsheet.js new file mode 100644 index 00000000..9b0870f5 --- /dev/null +++ b/src/screens/Browse/discover/NovelUpdatesBottomsheet.js @@ -0,0 +1,5 @@ +import React from "react"; + +const NovelUpdatesBottomSheet = () => {}; + +export default NovelUpdatesBottomSheet; diff --git a/src/screens/Browse/discover/NovelUpdatesNovelCard.js b/src/screens/Browse/discover/NovelUpdatesNovelCard.js new file mode 100644 index 00000000..969bf1ff --- /dev/null +++ b/src/screens/Browse/discover/NovelUpdatesNovelCard.js @@ -0,0 +1,72 @@ +import React from "react"; +import { StyleSheet, Pressable, Text, View, FlatList } from "react-native"; +import FastImage from "react-native-fast-image"; +import { Row } from "../../../components/Common"; + +const GenreChip = ({ children, theme }) => ( + + {children} + +); + +const NovelUpdatesNovelCard = ({ novel, theme, onPress }) => { + return ( + + + + + + {novel.novelName} + + + {novel.genres} + + + {novel.novelSummary} + + + + + ); +}; + +export default NovelUpdatesNovelCard; + +const styles = StyleSheet.create({ + novelUpdatesCard: { + flex: 1, + padding: 16, + }, + contentContainer: { + flex: 1, + }, + genreChip: { + marginVertical: 4, + fontSize: 12, + // fontStyle: "italic", + }, +}); diff --git a/src/screens/Browse/discover/NovelUpdatesScraper.js b/src/screens/Browse/discover/NovelUpdatesScraper.js new file mode 100644 index 00000000..d0300dfc --- /dev/null +++ b/src/screens/Browse/discover/NovelUpdatesScraper.js @@ -0,0 +1,88 @@ +import cheerio from "react-native-cheerio"; + +const scrapeTopNovels = async (pageNo) => { + const url = + "https://www.novelupdates.com/series-ranking/?rank=sixmonths&pg=" + + pageNo; + + let headers = new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + "User-Agent": + "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + }); + + const res = await fetch(url, { + method: "GET", + headers: headers, + }); + const body = await res.text(); + + const $ = cheerio.load(body); + + const novels = []; + + $("div.search_main_box_nu").each(function (res) { + const novelCover = $(this).find("img").attr("src"); + const novelName = $(this).find(".search_title > a").text(); + + const genres = $(this) + .find(".search_genre") + .text() + .replace(/\s/g, ", "); + + const novelSummary = + $(this).find(".search_genre")[0].nextSibling.nodeValue; + + const novel = { novelName, novelCover, genres, novelSummary }; + + novels.push(novel); + }); + + return novels; +}; + +const scrapeSearchResults = async (searchTerm) => { + const url = + "https://www.novelupdates.com/?s=" + + searchTerm + + "&post_type=seriesplans"; + + let headers = new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + "User-Agent": + "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + }); + + const res = await fetch(url, { + method: "GET", + headers: headers, + }); + const body = await res.text(); + + const $ = cheerio.load(body); + + const novels = []; + + $("div.search_main_box_nu").each(function (res) { + const novelCover = $(this).find("img").attr("src"); + const novelName = $(this).find(".search_title > a").text(); + + const genres = $(this) + .find(".search_genre") + .text() + .replace(/\s/g, ", "); + + const novelSummary = + $(this).find(".search_genre")[0].nextSibling.nodeValue; + + const novel = { novelName, novelCover, genres, novelSummary }; + + novels.push(novel); + }); + + return novels; +}; + +export { scrapeTopNovels, scrapeSearchResults }; diff --git a/src/screens/Browse/globalsearch/GlobalSearch.js b/src/screens/Browse/globalsearch/GlobalSearch.js new file mode 100644 index 00000000..d095f2dd --- /dev/null +++ b/src/screens/Browse/globalsearch/GlobalSearch.js @@ -0,0 +1,159 @@ +import React, { useEffect, useState } from "react"; +import { StyleSheet, View, FlatList, ActivityIndicator } from "react-native"; + +import { ProgressBar } from "react-native-paper"; +import { useSelector } from "react-redux"; + +import { Searchbar } from "../../../components/Searchbar"; +import EmptyView from "../../../components/EmptyView"; + +import { ScreenContainer } from "../../../components/Common"; +import GlobalSearchSourceItem from "./GlobalSearchSourceItem"; + +import { showToast } from "../../../hooks/showToast"; +import { useLibrary, useTheme } from "../../../hooks/reduxHooks"; +import { getSource } from "../../../sources/sources"; + +const GlobalSearch = ({ route, navigation }) => { + const theme = useTheme(); + + let novelName = ""; + if (route.params) { + novelName = route.params.novelName; + } + + const { sources, pinned } = useSelector((state) => state.sourceReducer); + const pinnedSources = sources.filter( + (source) => pinned.indexOf(source.sourceId) !== -1 + ); + + const [loading, setLoading] = useState(false); + const [searchText, setSearchText] = useState(novelName); + const [searchResults, setSearchResults] = useState([]); + const [progress, setProgress] = useState(0); + + const library = useLibrary(); + + useEffect(() => { + novelName && onSubmitEditing(); + }, []); + + const clearSearchbar = () => setSearchText(""); + const onChangeText = (text) => setSearchText(text); + + const onSubmitEditing = async () => { + setSearchResults([]); + + pinnedSources.map((item, index) => + setTimeout(async () => { + try { + setLoading(true); + + const source = getSource(item.sourceId); + const data = await source.searchNovels(searchText); + + setSearchResults((searchResults) => [ + ...searchResults, + { + sourceId: item.sourceId, + sourceName: item.sourceName, + sourceLanguage: item.sourceLanguage, + novels: data, + }, + ]); + setLoading(false); + } catch (error) { + showToast(error.message); + setSearchResults((searchResults) => [ + ...searchResults, + { + sourceId: item.sourceId, + sourceName: item.sourceName, + sourceLanguage: item.sourceLanguage, + novels: [], + }, + ]); + setLoading(false); + } + }, 1000 * index) + ); + }; + + const renderItem = ({ item }) => ( + + ); + + return ( + + + {progress < 1 && progress > 0 && pinned && ( + 0.9 + ? theme.colorPrimaryDark + : theme.colorAccent + } + progress={progress} + /> + )} + item.sourceId.toString()} + renderItem={renderItem} + extraData={pinned} + ListEmptyComponent={ + <> + {!loading && ( + + )} + + } + ListFooterComponent={ + loading && ( + + + + ) + } + /> + + ); +}; + +export default GlobalSearch; + +const styles = StyleSheet.create({}); diff --git a/src/screens/Browse/globalsearch/GlobalSearchNovelCover.js b/src/screens/Browse/globalsearch/GlobalSearchNovelCover.js new file mode 100644 index 00000000..06ded276 --- /dev/null +++ b/src/screens/Browse/globalsearch/GlobalSearchNovelCover.js @@ -0,0 +1,69 @@ +import React from "react"; +import { StyleSheet, View, Text, Image } from "react-native"; + +import { TouchableRipple } from "react-native-paper"; + +const GlobalSearchNovelCover = ({ + novel, + theme, + onPress, + inLibrary, + onLongPress, +}) => { + const { novelName, novelCover } = novel; + + return ( + + + <> + + + {novelName} + + + + + ); +}; + +export default GlobalSearchNovelCover; + +const styles = StyleSheet.create({ + novelContainer: { + paddingHorizontal: 5, + paddingVertical: 4, + borderRadius: 4, + }, + novelCover: { + height: 150, + width: 115, + borderRadius: 4, + }, + title: { + fontFamily: "pt-sans-bold", + fontSize: 14, + padding: 4, + flexWrap: "wrap", + width: 115, + }, +}); diff --git a/src/screens/Browse/globalsearch/GlobalSearchNovelList.js b/src/screens/Browse/globalsearch/GlobalSearchNovelList.js new file mode 100644 index 00000000..53ea447c --- /dev/null +++ b/src/screens/Browse/globalsearch/GlobalSearchNovelList.js @@ -0,0 +1,57 @@ +import React from "react"; +import { StyleSheet, FlatList, Text } from "react-native"; + +import GlobalSearchNovelCover from "./GlobalSearchNovelCover"; + +const GlobalSearchNovelList = ({ data, theme, library, navigation }) => { + const inLibrary = (sourceId, novelUrl) => + library.some( + (obj) => obj.novelUrl === novelUrl && obj.sourceId === sourceId + ); + + const navigateToNovel = (item) => + navigation.navigate("Novel", { + ...item, + sourceId: item.sourceId, + }); + + const renderItem = ({ item }) => ( + navigateToNovel(item)} + inLibrary={inLibrary(item.sourceId, item.novelUrl)} + /> + ); + + const ListEmptyComponent = ( + + No results found + + ); + + return ( + item.novelUrl} + renderItem={renderItem} + ListEmptyComponent={ListEmptyComponent} + /> + ); +}; + +export default GlobalSearchNovelList; + +const styles = StyleSheet.create({ + listContainer: { + flexGrow: 1, + paddingVertical: 8, + paddingHorizontal: 4, + }, + emptyList: { + padding: 8, + paddingVertical: 4, + }, +}); diff --git a/src/screens/Browse/globalsearch/GlobalSearchSourceItem.js b/src/screens/Browse/globalsearch/GlobalSearchSourceItem.js new file mode 100644 index 00000000..d1bf2a80 --- /dev/null +++ b/src/screens/Browse/globalsearch/GlobalSearchSourceItem.js @@ -0,0 +1,36 @@ +import React from "react"; +import { StyleSheet, View, Text } from "react-native"; + +import GlobalSearchNovelList from "./GlobalSearchNovelList"; + +const GlobalSearchSourceItem = ({ source, library, theme, navigation }) => { + const { sourceName, sourceLanguage, novels } = source; + + return ( + <> + + + {sourceName} + + + {sourceLanguage} + + + + + ); +}; + +export default GlobalSearchSourceItem; + +const styles = StyleSheet.create({ + sourceContainer: { + padding: 8, + paddingVertical: 16, + }, +}); diff --git a/src/screens/Browse/migration/Migration.js b/src/screens/Browse/migration/Migration.js new file mode 100644 index 00000000..48c4f340 --- /dev/null +++ b/src/screens/Browse/migration/Migration.js @@ -0,0 +1,75 @@ +import React from "react"; +import { StyleSheet, View, FlatList, Text } from "react-native"; + +import { useSelector } from "react-redux"; + +import { Appbar } from "../../../components/Appbar"; +import MigrationSourceCard from "./MigrationSourceCard"; + +import { useLibrary, useTheme } from "../../../hooks/reduxHooks"; + +const GlobalSearch = ({ navigation }) => { + const theme = useTheme(); + + const library = useLibrary(); + let { sources } = useSelector((state) => state.sourceReducer); + + const novelsPerSource = (sourceId) => + library.filter((novel) => novel.sourceId === sourceId).length; + + sources = sources.filter( + (source) => + library.filter((novel) => novel.sourceId === source.sourceId).length + ); + + const renderItem = ({ item }) => ( + navigation.navigate("SourceNovels", item.sourceId)} + /> + ); + + const ListHeaderComponent = ( + + Select a Source To Migrate From + + ); + + return ( + + + item.sourceId.toString()} + renderItem={renderItem} + ListHeaderComponent={ListHeaderComponent} + /> + + ); +}; + +export default GlobalSearch; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + containerStyle: { + padding: 20, + margin: 20, + borderRadius: 6, + }, + listHeader: { + padding: 20, + paddingBottom: 10, + textTransform: "uppercase", + }, +}); diff --git a/src/screens/Browse/migration/MigrationNovelList.js b/src/screens/Browse/migration/MigrationNovelList.js new file mode 100644 index 00000000..38377d00 --- /dev/null +++ b/src/screens/Browse/migration/MigrationNovelList.js @@ -0,0 +1,142 @@ +import React, { useState } from "react"; +import { StyleSheet, FlatList, Text, View } from "react-native"; + +import { Portal, Modal, Button } from "react-native-paper"; + +import GlobalSearchNovelCover from "../globalsearch/GlobalSearchNovelCover"; + +import { migrateNovel } from "../../../database/queries/NovelQueries"; +import { showToast } from "../../../hooks/showToast"; + +const MigrationNovelList = ({ data, theme, library, navigation }) => { + const [selectedNovel, setSelectedNovel] = useState(false); + + const [migrateNovelDialog, setMigrateNovelDialog] = useState(false); + const showMigrateNovelDialog = () => setMigrateNovelDialog(true); + const hideMigrateNovelDialog = () => setMigrateNovelDialog(false); + + const inLibrary = (sourceId, novelUrl) => { + return library.some( + (obj) => obj.novelUrl === novelUrl && obj.sourceId === sourceId + ); + }; + + const renderItem = ({ item }) => ( + + showModal(item.sourceId, item.novelUrl, item.novelName) + } + onLongPress={() => + navigation.navigate("Novel", { + ...item, + sourceId: item.sourceId, + }) + } + inLibrary={inLibrary(item.sourceId, item.novelUrl)} + /> + ); + + const showModal = (sourceId, novelUrl, novelName) => { + if (inLibrary(sourceId, novelUrl)) { + showToast("Novel already in library"); + } else { + setSelectedNovel({ sourceId, novelUrl, novelName }); + showMigrateNovelDialog(); + } + }; + + return ( + <> + item.novelUrl} + renderItem={renderItem} + ListEmptyComponent={ + + No results found + + } + /> + + + + {`Migrate ${selectedNovel.novelName}?`} + + + + + + + + + ); +}; + +export default MigrationNovelList; + +const styles = StyleSheet.create({ + flatListCont: { + flexGrow: 1, + paddingVertical: 8, + paddingHorizontal: 4, + }, +}); diff --git a/src/screens/Browse/migration/MigrationNovels.js b/src/screens/Browse/migration/MigrationNovels.js new file mode 100644 index 00000000..168f4038 --- /dev/null +++ b/src/screens/Browse/migration/MigrationNovels.js @@ -0,0 +1,154 @@ +import React, { useEffect, useState } from "react"; +import { + StyleSheet, + View, + Text, + FlatList, + ActivityIndicator, +} from "react-native"; +import { ProgressBar } from "react-native-paper"; +import { useLibrary, useTheme } from "../../../hooks/reduxHooks"; +import { useSelector } from "react-redux"; + +import EmptyView from "../../../components/EmptyView"; +import MigrationNovelList from "./MigrationNovelList"; +import { Appbar } from "../../../components/Appbar"; + +import { showToast } from "../../../hooks/showToast"; +import { migrateNovel } from "../../../database/queries/NovelQueries"; +import { ScreenContainer } from "../../../components/Common"; +import { getSource } from "../../../sources/sources"; + +const MigrationNovels = ({ navigation, route }) => { + const { sourceId, novelName } = route.params; + const theme = useTheme(); + + const [progress, setProgress] = useState(0); + const [loading, setLoading] = useState(false); + const [searchResults, setSearchResults] = useState(""); + const { sources, pinned } = useSelector((state) => state.sourceReducer); + + const library = useLibrary(); + + const pinnedSources = sources.filter( + (source) => + pinned.indexOf(source.sourceId) !== -1 && + source.sourceId !== sourceId + ); + + const getSearchResults = () => { + pinnedSources.map((item, index) => + setTimeout(async () => { + try { + setLoading(true); + + const source = getSource(item.sourceId); + const data = await source.searchNovels(novelName); + + setSearchResults((searchResults) => [ + ...searchResults, + { + sourceId: item.sourceId, + sourceName: item.sourceName, + sourceLanguage: item.sourceLanguage, + novels: data, + }, + ]); + setLoading(false); + } catch (error) { + showToast(error.message); + + setSearchResults((searchResults) => [ + ...searchResults, + { + sourceId: item.sourceId, + sourceName: item.sourceName, + sourceLanguage: item.sourceLanguage, + novels: [], + }, + ]); + setLoading(false); + } + }, 1000 * index) + ); + }; + + useEffect(() => { + getSearchResults(); + }, []); + + const renderItem = ({ item }) => ( + <> + + + {item.sourceName} + + + {item.sourceLanguage} + + + + + ); + + return ( + + navigation.goBack()} + /> + {progress < 1 && pinned && ( + + )} + item.sourceId.toString()} + renderItem={renderItem} + extraData={pinned} + ListEmptyComponent={ + <> + {!loading && ( + + )} + + } + ListFooterComponent={ + loading && ( + + + + ) + } + /> + + ); +}; + +export default MigrationNovels; + +const styles = StyleSheet.create({}); diff --git a/src/screens/Browse/migration/MigrationSourceCard.js b/src/screens/Browse/migration/MigrationSourceCard.js new file mode 100644 index 00000000..ea11d1b9 --- /dev/null +++ b/src/screens/Browse/migration/MigrationSourceCard.js @@ -0,0 +1,72 @@ +import React from "react"; +import { View, Text, Image, StyleSheet } from "react-native"; +import { TouchableRipple } from "react-native-paper"; + +const MigrationSourceCard = ({ item, theme, noOfNovels, onPress }) => { + const { sourceName, icon, sourceLanguage } = item; + + return ( + + <> + + + + + {sourceName} {` (${noOfNovels || 0})`} + + + {sourceLanguage} + + + + + + ); +}; + +export default MigrationSourceCard; + +const styles = StyleSheet.create({ + cardContainer: { + flexDirection: "row", + alignItems: "center", + marginVertical: 4, + paddingVertical: 8, + paddingHorizontal: 20, + }, + sourceIcon: { + width: 40, + height: 40, + borderRadius: 4, + }, + sourceDetailsContainer: { + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + marginLeft: 16, + }, + sourceStatus: { + color: "#C14033", + fontSize: 12, + marginLeft: 5, + }, +}); diff --git a/src/screens/Chapter/Chapter.js b/src/screens/Chapter/Chapter.js new file mode 100644 index 00000000..d21aaed6 --- /dev/null +++ b/src/screens/Chapter/Chapter.js @@ -0,0 +1,419 @@ +import React, { useState, useEffect, useRef } from "react"; +import { + StyleSheet, + View, + Text, + ActivityIndicator, + StatusBar, + ScrollView, +} from "react-native"; + +import { useDispatch, useSelector } from "react-redux"; +import { IconButton, Portal } from "react-native-paper"; +import { + hideNavigationBar, + showNavigationBar, +} from "react-native-navigation-bar-color"; + +import { + getChapterFromDB, + getNextChapterFromDB, + getPrevChapterFromDB, +} from "../../database/queries/ChapterQueries"; +import { fetchChapter } from "../../services/Source/source"; +import { showToast } from "../../hooks/showToast"; +import { + usePosition, + useReaderSettings, + useSettings, + useTheme, + useTrackingStatus, +} from "../../hooks/reduxHooks"; +import { updateChaptersRead } from "../../redux/tracker/tracker.actions"; +import { insertHistoryAction } from "../../redux/history/history.actions"; +import { + errorTextColor, + readerBackground, + readerLineHeight, + readerTextColor, +} from "./readerStyleController"; +import { markChapterReadAction } from "../../redux/novel/novel.actions"; +import { saveScrollPosition } from "../../redux/preferences/preference.actions"; +import { parseChapterNumber } from "../../services/updates"; + +import ChapterAppbar from "./components/ChapterAppbar"; +import ReaderSheet from "./components/ReaderSheet"; +import EmptyView from "../../components/EmptyView"; +import FitImage from "react-native-fit-image"; + +import ChapterFooter from "./components/ChapterFooter"; +import VerticalScrollbar from "./components/VerticalScrollbar"; +import GestureRecognizer from "react-native-swipe-gestures"; + +const Chapter = ({ route, navigation }) => { + const { + sourceId, + chapterId, + chapterUrl, + novelId, + novelUrl, + novelName, + chapterName, + bookmark, + } = route.params; + let scrollViewRef = useRef(null); + let readerSheetRef = useRef(null); + + const theme = useTheme(); + const dispatch = useDispatch(); + const reader = useReaderSettings(); + const showScrollPercentage = useSelector( + (state) => state.settingsReducer.showScrollPercentage + ); + const { swipeGestures = true } = useSettings(); + + const [hidden, setHidden] = useState(true); + + const { tracker, trackedNovels } = useTrackingStatus(); + const position = usePosition(novelId, chapterId); + + const isTracked = trackedNovels.find((obj) => obj.novelId === novelId); + + const [chapter, setChapter] = useState({}); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(); + + const [scrollPercentage, setScrollPercentage] = useState(0); + const [firstLayout, setFirstLayout] = useState(true); + const [selectText, setSelectText] = useState(false); + + const [contentSize, setContentSize] = useState(0); + + const [images, setImages] = useState([]); + + const getChapter = async (chapterId) => { + try { + if (chapterId) { + const chapterDownloaded = await getChapterFromDB(chapterId); + + if (chapterDownloaded) { + setChapter(chapterDownloaded); + parseImages(chapterDownloaded.chapterText); + } else { + const res = await fetchChapter( + sourceId, + novelUrl, + chapterUrl + ); + parseImages(res.chapterText); + setChapter(res); + } + } else { + const res = await fetchChapter(sourceId, novelUrl, chapterUrl); + parseImages(res.chapterText); + setChapter(res); + } + + setLoading(false); + } catch (error) { + setError(error.message); + setLoading(false); + showToast(error.message); + } + }; + + const parseImages = (chapterText) => { + let imageLinks = chapterText.match(/\[https.*?\]/g, ""); + let chapterTextWithoutLinks; + + if (imageLinks) { + imageLinks = imageLinks.map((link) => link.slice(1, -1)); + + setImages(imageLinks); + } + }; + + const [nextChapter, setNextChapter] = useState({}); + const [prevChapter, setPrevChapter] = useState({}); + + const setPrevAndNextChap = async () => { + const nextChap = await getNextChapterFromDB(novelId, chapterId); + const prevChap = await getPrevChapterFromDB(novelId, chapterId); + + setNextChapter(nextChap); + setPrevChapter(prevChap); + }; + + useEffect(() => { + getChapter(chapterId); + setPrevAndNextChap(); + dispatch(insertHistoryAction(novelId, chapterId)); + return () => { + StatusBar.setHidden(false); + showNavigationBar(); + }; + }, []); + + const isCloseToBottom = ({ + layoutMeasurement, + contentOffset, + contentSize, + }) => { + const paddingToBottom = 40; + return ( + layoutMeasurement.height + contentOffset.y >= + contentSize.height - paddingToBottom + ); + }; + + const updateTracker = () => { + const chapterNumber = parseChapterNumber(chapterName); + + isTracked && + chapterNumber && + Number.isInteger(chapterNumber) && + chapterNumber > isTracked.my_list_status.num_chapters_read && + dispatch( + updateChaptersRead( + isTracked.id, + tracker.access_token, + chapterNumber + ) + ); + }; + + const onScroll = ({ nativeEvent }) => { + const offsetY = nativeEvent.contentOffset.y; + const position = + nativeEvent.contentOffset.y + nativeEvent.layoutMeasurement.height; + + const percentage = Math.round( + (position / nativeEvent.contentSize.height) * 100 + ); + + setScrollPercentage(percentage); + dispatch(saveScrollPosition(offsetY, percentage, chapterId, novelId)); + + if (isCloseToBottom(nativeEvent)) { + dispatch(markChapterReadAction(chapterId, novelId)); + updateTracker(); + } + }; + + const scrollToSavedProgress = (event) => { + StatusBar.setHidden(true); + hideNavigationBar(); + if (position && firstLayout) { + position.percentage < 100 && + scrollViewRef.current.scrollTo({ + x: 0, + y: position.position, + animated: false, + }); + setFirstLayout(false); + } + }; + + const readerStyles = [ + { + paddingVertical: 16, + paddingBottom: 32, + fontSize: reader.textSize, + color: reader.textColor || readerTextColor(reader.theme), + lineHeight: readerLineHeight(reader.textSize, reader.lineHeight), + textAlign: reader.textAlign, + paddingHorizontal: `${reader.padding}%`, + }, + reader.fontFamily && { + fontFamily: reader.fontFamily, + }, + ]; + + const config = { + velocityThreshold: 0.3, + directionalOffsetThreshold: 80, + }; + + const navigateToPrevChapter = () => + prevChapter + ? navigation.replace("Chapter", { + chapterUrl: prevChapter.chapterUrl, + chapterId: prevChapter.chapterId, + sourceId, + novelUrl, + novelId, + chapterName: prevChapter.chapterName, + novelName, + bookmark: prevChapter.bookmark, + }) + : showToast("'There's no previous chapter"); + + const navigateToNextChapter = () => + nextChapter + ? navigation.replace("Chapter", { + chapterUrl: nextChapter.chapterUrl, + sourceId, + novelUrl, + novelId, + chapterId: nextChapter.chapterId, + chapterName: nextChapter.chapterName, + novelName, + bookmark: nextChapter.bookmark, + }) + : showToast("'There's no next chapter"); + + return ( + <> + + (scrollViewRef.current = ref)} + contentContainerStyle={[ + styles.screenContainer, + { backgroundColor: readerBackground(reader.theme) }, + ]} + onScroll={onScroll} + onContentSizeChange={(x, y) => setContentSize(y)} + showsVerticalScrollIndicator={false} + > + + {error ? ( + + + { + getChapter(chapterId); + setLoading(true); + setError(); + }} + /> + + Retry + + + + ) : loading ? ( + + + + ) : ( + + {images.length > 0 && + images.map((image, index) => ( + + ))} + + setHidden(!hidden)} + > + {chapter.chapterText + .trim() + .replace(/\[https.*?\]/g, "")} + + + )} + + + + + + + + {showScrollPercentage && ( + + {scrollPercentage + "%"} + + )} + + ); +}; + +export default Chapter; + +const styles = StyleSheet.create({ + screenContainer: { + flexGrow: 1, + paddingTop: StatusBar.currentHeight, + }, + scrollPercentage: { + width: "100%", + position: "absolute", + bottom: 0, + height: 30, + textAlign: "center", + textAlignVertical: "center", + alignSelf: "center", + fontFamily: "noto-sans", + fontWeight: "bold", + zIndex: 1, + }, +}); diff --git a/src/screens/Chapter/components/ChapterAppbar.js b/src/screens/Chapter/components/ChapterAppbar.js new file mode 100644 index 00000000..4821d2d5 --- /dev/null +++ b/src/screens/Chapter/components/ChapterAppbar.js @@ -0,0 +1,68 @@ +import React, { useEffect, useState } from "react"; +import { Dimensions, View } from "react-native"; + +import { Appbar } from "react-native-paper"; +import { + getNextChapterFromDB, + getPrevChapterFromDB, +} from "../../../database/queries/ChapterQueries"; +import { bookmarkChapterAction } from "../../../redux/novel/novel.actions"; + +const ChapterAppbar = ({ + navigation, + bookmark, + novelName, + chapterId, + chapterName, + hide, + dispatch, +}) => { + const [bookmarked, setBookmarked] = useState(bookmark); + + if (hide) { + return null; + } else { + return ( + + + navigation.goBack()} + color="#FFFFFF" + size={26} + style={{ marginRight: 0 }} + /> + + { + dispatch( + bookmarkChapterAction([{ bookmark, chapterId }]) + ); + setBookmarked(!bookmarked); + }} + color="#FFFFFF" + /> + + + ); + } +}; + +export default ChapterAppbar; diff --git a/src/screens/Chapter/components/ChapterFooter.js b/src/screens/Chapter/components/ChapterFooter.js new file mode 100644 index 00000000..3c3aa682 --- /dev/null +++ b/src/screens/Chapter/components/ChapterFooter.js @@ -0,0 +1,119 @@ +import React, { useState, useEffect } from "react"; +import { Dimensions, Pressable, StyleSheet, Text, View } from "react-native"; +import { IconButton } from "react-native-paper"; +import { + getNextChapterFromDB, + getPrevChapterFromDB, +} from "../../../database/queries/ChapterQueries"; +import { useSettings } from "../../../hooks/reduxHooks"; +import { showToast } from "../../../hooks/showToast"; +import { setAppSettings } from "../../../redux/settings/settings.actions"; + +const ChapterFooter = ({ + hide, + theme, + swipeGestures, + dispatch, + readerSheetRef, + scrollViewRef, + navigateToNextChapter, + navigateToPrevChapter, + nextChapter, + prevChapter, +}) => { + const rippleConfig = { + color: theme.rippleColor, + borderless: true, + radius: 50, + }; + + const enableSwipeGestures = () => { + dispatch(setAppSettings("swipeGestures", !swipeGestures)); + showToast( + swipeGestures ? "Swipe gestures disabled" : "Swipe gestured enabled" + ); + }; + + if (hide) { + return null; + } else { + return ( + + + + + + + + scrollViewRef.current.scrollTo({})} + > + + + readerSheetRef.current.show()} + > + + + + + + + ); + } +}; + +export default ChapterFooter; + +const styles = StyleSheet.create({ + buttonStyles: { + flex: 1, + justifyContent: "center", + alignItems: "center", + paddingVertical: 8, + }, +}); diff --git a/src/screens/Chapter/components/ReaderSheet.js b/src/screens/Chapter/components/ReaderSheet.js new file mode 100644 index 00000000..7028ba0d --- /dev/null +++ b/src/screens/Chapter/components/ReaderSheet.js @@ -0,0 +1,443 @@ +import React, { useState } from "react"; +import { StyleSheet, View, Text, Dimensions } from "react-native"; +import { ToggleButton, IconButton, Menu, Switch } from "react-native-paper"; +import Slider from "@react-native-community/slider"; +import Bottomsheet from "rn-sliding-up-panel"; +import { fonts } from "../../../services/utils/constants"; + +import { + setAppSettings, + setReaderSettings, +} from "../../../redux/settings/settings.actions"; +import BottomSheetHandle from "../../../components/BottomSheetHandle"; +import { Row } from "../../../components/Common"; + +const ReaderSheet = ({ + theme, + reader, + dispatch, + bottomSheetRef, + selectText, + setSelectText, + showScrollPercentage, +}) => { + const [fontMenu, setFontMenu] = useState(false); + const openFontMenu = () => setFontMenu(true); + const closeFontMenu = () => setFontMenu(false); + + const ReaderSettingTitle = ({ title }) => ( + {title} + ); + + const textColor = { + 1: "rgba(255,255,255,0.7)", + 2: "#000000", + 3: "#000000", + 4: "#FFFFFF", + }; + + return ( + + + + + + + dispatch(setReaderSettings("textSize", value)) + } + /> + + + + { + dispatch( + setReaderSettings( + "theme", + value ?? reader.theme + ) + ); + dispatch( + setReaderSettings( + "textColor", + textColor[value] ?? reader.textColor + ) + ); + }} + value={reader.theme} + > + + + + + + + + + + + + dispatch( + setReaderSettings( + "textAlign", + value ?? reader.textAlign + ) + ) + } + value={reader.textAlign} + > + + + + + + + + + + + dispatch( + setReaderSettings( + "padding", + reader.padding - 1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + {`${reader.padding}%`} + + = 10 ? true : false} + onPress={() => + dispatch( + setReaderSettings( + "padding", + reader.padding + 1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + + + + + + dispatch( + setReaderSettings( + "lineHeight", + reader.lineHeight - 0.1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + {`${Math.round(reader.lineHeight * 10) / 10}%`} + + = 2 ? true : false} + onPress={() => + dispatch( + setReaderSettings( + "lineHeight", + reader.lineHeight + 0.1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + + + +

+ {fonts.find( + (font) => + font.fontFamily === + reader.fontFamily + ).name || "Default"} + + } + > + {fonts.map((font) => ( + + dispatch( + setReaderSettings( + "fontFamily", + font.fontFamily + ) + ) + } + icon={ + font.fontFamily === reader.fontFamily && + "check" + } + title={font.name} + style={{ backgroundColor: theme.menuColor }} + titleStyle={{ + color: theme.textColorPrimary, + }} + /> + ))} + + + + + + dispatch( + setAppSettings( + "showScrollPercentage", + !showScrollPercentage + ) + ) + } + color={theme.colorAccent} + /> + + + + + + (Justify does not work with selectable text) + + + + + + + + ); +}; + +export default ReaderSheet; + +const styles = StyleSheet.create({ + contentContainer: { + flex: 1, + borderTopLeftRadius: 8, + borderTopRightRadius: 8, + backgroundColor: "rgba(0,0,0,0.7)", + }, + readerSettingsContainer: { + flex: 1, + alignItems: "center", + paddingTop: 30, + }, + title: { + color: "#FFFFFF", + fontWeight: "bold", + }, +}); diff --git a/src/screens/Chapter/components/VerticalScrollbar.js b/src/screens/Chapter/components/VerticalScrollbar.js new file mode 100644 index 00000000..4cf275b9 --- /dev/null +++ b/src/screens/Chapter/components/VerticalScrollbar.js @@ -0,0 +1,131 @@ +import React from "react"; +import { Dimensions, View, Text, StyleSheet } from "react-native"; + +import Slider from "@react-native-community/slider"; +import { getDeviceOrientation } from "../../../services/utils/helpers"; + +const VerticalScrollbar = ({ + theme, + hide, + contentSize, + scrollPercentage, + setLoading, + scrollViewRef, + setScrollPercentage, +}) => { + const onSlidingComplete = (value) => { + setLoading(true); + setScrollPercentage(value); + scrollViewRef.current.scrollTo({ + x: 0, + y: Math.round((value * contentSize) / 100), + animated: false, + }); + setLoading(false); + }; + + if (hide) { + return null; + } else if (getDeviceOrientation() === "potrait") { + return ( + + + {scrollPercentage} + + + + 100 + + + ); + } else { + return ( + + + {scrollPercentage} + + + + 100 + + + ); + } +}; + +export default VerticalScrollbar; + +const styles = StyleSheet.create({ + verticalSliderContainer: { + position: "absolute", + zIndex: 2, + right: -(Dimensions.get("window").width / 2) + 40, + bottom: 300, + backgroundColor: "rgba(0,0,0,0.7)", + flexDirection: "row", + justifyContent: "flex-end", + alignItems: "center", + borderRadius: 50, + marginHorizontal: 8, + transform: [{ rotate: "90deg" }], + }, + horizontalSliderContainer: { + position: "absolute", + zIndex: 2, + bottom: 100, + backgroundColor: "rgba(0,0,0,0.7)", + flexDirection: "row", + justifyContent: "flex-end", + alignItems: "center", + borderRadius: 50, + marginHorizontal: 8, + }, +}); diff --git a/src/screens/Chapter/readerStyleController.js b/src/screens/Chapter/readerStyleController.js new file mode 100644 index 00000000..a3d58012 --- /dev/null +++ b/src/screens/Chapter/readerStyleController.js @@ -0,0 +1,31 @@ +export const readerBackground = (val) => { + const backgroundColor = { + 1: "#000000", + 2: "#FFFFFF", + 3: "#F4ECD8", + 4: "#444444", + }; + + return backgroundColor[val] ?? val; +}; + +export const readerTextColor = (val) => { + const textColor = + val === 1 ? "rgba(255,255,255,0.7)" : val === 4 ? "#FFFFFF" : "#000000"; + + return textColor ?? val; +}; + +export const readerLineHeight = (fontSize, lineHeightMultiplier) => { + let lineHeight = fontSize * lineHeightMultiplier; + + lineHeight = Math.round(lineHeight); + + return lineHeight; +}; + +export const errorTextColor = (val) => { + const textColor = val === 1 ? "rgba(255,255,255,0.7)" : "rgba(0,0,0,0.54)"; + + return textColor; +}; diff --git a/src/screens/Extension/Extension.js b/src/screens/Extension/Extension.js new file mode 100644 index 00000000..8cb183b4 --- /dev/null +++ b/src/screens/Extension/Extension.js @@ -0,0 +1,205 @@ +import React, { useEffect, useState } from "react"; +import { StyleSheet, View, ActivityIndicator } from "react-native"; +import * as WebBrowser from "expo-web-browser"; + +import NovelCover from "../../components/NovelCover"; +import EmptyView from "../../components/EmptyView"; + +import { Searchbar } from "../../components/Searchbar"; +import { useTheme, useLibrary, useSettings } from "../../hooks/reduxHooks"; +import NovelList from "../../components/NovelList"; +import { showToast } from "../../hooks/showToast"; +import ErrorView from "../../components/ErrorView"; +import { useDispatch } from "react-redux"; +import { setAppSettings } from "../../redux/settings/settings.actions"; + +import { getSource } from "../../sources/sources"; + +const Extension = ({ navigation, route }) => { + const { sourceId, sourceName, url } = route.params; + + const theme = useTheme(); + const library = useLibrary(); + const dispatch = useDispatch(); + const { displayMode } = useSettings(); + + const [loading, setLoading] = useState(true); + const [novels, setNovels] = useState([]); + const [page, setPage] = useState(1); + const [error, setError] = useState(); + + const [searchText, setSearchText] = useState(""); + + const incrementPage = () => setPage((page) => page + 1); + + const clearSearchbar = () => { + setNovels([]); + setPage(1); + setLoading(true); + setSearchText(""); + }; + + const getNovels = async () => { + try { + const source = getSource(sourceId); + const res = await source.popularNovels(page); + setNovels((novels) => [...novels, ...res]); + setLoading(false); + } catch (error) { + setError(error.message); + showToast(error.message); + setNovels([]); + setLoading(false); + } + }; + + const getSearchResults = async () => { + try { + setLoading(true); + const source = getSource(sourceId); + const res = await source.searchNovels(searchText); + setNovels(res); + setLoading(false); + } catch (error) { + setError(error.message); + showToast(error.message); + setNovels([]); + setLoading(false); + } + }; + + const checkIFInLibrary = (sourceId, novelUrl) => { + return library.some( + (obj) => obj.novelUrl === novelUrl && obj.sourceId === sourceId + ); + }; + + useEffect(() => { + getNovels(); + }, [page]); + + const isCloseToBottom = ({ + layoutMeasurement, + contentOffset, + contentSize, + }) => { + const paddingToBottom = 20; + return ( + layoutMeasurement.height + contentOffset.y >= + contentSize.height - paddingToBottom + ); + }; + + const onScroll = ({ nativeEvent }) => { + if (!searchText && isCloseToBottom(nativeEvent)) { + incrementPage(); + } + }; + + const renderItem = ({ item }) => ( + + navigation.navigate("Novel", { + novelName: item.novelName, + novelCover: item.novelCover, + novelUrl: item.novelUrl, + sourceId, + }) + } + libraryStatus={checkIFInLibrary(item.sourceId, item.novelUrl)} + /> + ); + + const listEmptyComponent = () => ( + { + getNovels(); + setLoading(true); + setError(); + }} + openWebView={() => WebBrowser.openBrowserAsync(url)} + theme={theme} + /> + ); + + const displayMenuIcon = () => { + const icons = { + 0: "view-module", + 1: "view-list", + 2: "view-module", + }; + + return icons[displayMode]; + }; + + const getDisplayMode = () => + displayMode === 0 ? 1 : displayMode === 1 ? 2 : displayMode === 2 && 0; + + return ( + + navigation.goBack()} + searchText={searchText} + onChangeText={(text) => setSearchText(text)} + onSubmitEditing={getSearchResults} + clearSearchbar={clearSearchbar} + actions={[ + { + icon: displayMenuIcon(), + color: theme.textColorSecondary, + onPress: () => + dispatch( + setAppSettings("displayMode", getDisplayMode()) + ), + }, + { + icon: "earth", + color: theme.textColorSecondary, + onPress: () => WebBrowser.openBrowserAsync(url), + }, + ]} + /> + + {loading ? ( + + + + ) : ( + + + + ) + } + /> + )} + + ); +}; + +export default Extension; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + contentContainer: { + flex: 1, + }, +}); diff --git a/src/screens/History/History.js b/src/screens/History/History.js new file mode 100644 index 00000000..d1f3fe18 --- /dev/null +++ b/src/screens/History/History.js @@ -0,0 +1,142 @@ +import React, { useState, useEffect } from "react"; +import { StyleSheet, FlatList, ActivityIndicator, Text } from "react-native"; + +import moment from "moment"; +import { useDispatch, useSelector } from "react-redux"; + +import EmptyView from "../../components/EmptyView"; +import HistoryItem from "./HistoryItem"; +import RemoveHistoryDialog from "./RemoveHistoryDialog"; +import { ScreenContainer } from "../../components/Common"; +import { Searchbar } from "../../components/Searchbar"; + +import { getHistoryAction } from "../../redux/history/history.actions"; +import { dateFormat } from "../../services/utils/constants"; +import { useTheme } from "../../hooks/reduxHooks"; + +const History = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + const { history, loading } = useSelector((state) => state.historyReducer); + + const [searchText, setSearchText] = useState(""); + const [searchResults, setSearchResults] = useState([]); + + /** + * Confirm Clear History Dialog + */ + const [visible, setVisible] = useState(false); + const showDialog = () => setVisible(true); + const hideDialog = () => setVisible(false); + + useEffect(() => { + dispatch(getHistoryAction()); + }, [getHistoryAction]); + + const renderHistoryCard = ({ item }) => ( + + ); + + const clearSearchbar = () => { + setSearchText(""); + setSearchResults([]); + }; + + const onChangeText = (text) => { + setSearchText(text); + let results = []; + + text !== "" && + history.map((item) => { + const date = item.date; + const novels = item.novels.filter((novel) => + novel.novelName.toLowerCase().includes(text.toLowerCase()) + ); + + if (novels.length > 0) { + results.push({ + date, + novels, + }); + } + }); + + setSearchResults(results); + }; + + return ( + + + index.toString()} + renderItem={({ item }) => ( + index.toString()} + data={item.novels} + renderItem={renderHistoryCard} + ListHeaderComponent={ + + {moment(item.date).calendar(null, dateFormat)} + + } + /> + )} + ListFooterComponent={ + loading && ( + + ) + } + ListEmptyComponent={ + + } + /> + + + ); +}; + +export default History; + +const styles = StyleSheet.create({}); diff --git a/src/screens/History/HistoryItem.js b/src/screens/History/HistoryItem.js new file mode 100644 index 00000000..75a495fc --- /dev/null +++ b/src/screens/History/HistoryItem.js @@ -0,0 +1,137 @@ +import React from "react"; +import { Pressable, StyleSheet, View, Image, Text } from "react-native"; + +import moment from "moment"; +import { IconButton } from "react-native-paper"; + +import { parseChapterNumber } from "../../services/utils/helpers"; +import { deleteHistoryAction } from "../../redux/history/history.actions"; + +const HistoryItem = ({ history, theme, dispatch, navigation }) => { + const { + historyId, + historyTimeRead, + historyChapterId, + sourceId, + novelId, + novelUrl, + novelName, + novelCover, + chapterName, + chapterUrl, + bookmark, + } = history; + + const getChapterNumber = () => + `Ch. ${parseChapterNumber(chapterName)} - ${moment(historyTimeRead) + .format("h:mm a") + .toUpperCase()}`; + + const navigateToNovel = () => navigation.navigate("Novel", history); + + const navigateToChapter = () => + navigation.navigate("Chapter", { + chapterId: historyChapterId, + chapterUrl, + sourceId, + novelUrl, + novelId, + chapterName, + novelName, + bookmark, + }); + + return ( + + + + + + + + + {novelName} + + + {getChapterNumber()} + + + + + dispatch(deleteHistoryAction(historyId))} + /> + + + + + ); +}; + +export default HistoryItem; + +const styles = StyleSheet.create({ + historyItemContainer: { + marginVertical: 8, + borderRadius: 4, + overflow: "hidden", + }, + pressable: { + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + }, + historyItemCover: { + height: 80, + width: 57, + borderRadius: 4, + }, + historyItemTitle: { + fontSize: 16, + flexWrap: "wrap", + }, + historyActionsContainer: { + flexDirection: "row", + justifyContent: "center", + alignItems: "center", + }, +}); diff --git a/src/screens/History/RemoveHistoryDialog.js b/src/screens/History/RemoveHistoryDialog.js new file mode 100644 index 00000000..fbdb157e --- /dev/null +++ b/src/screens/History/RemoveHistoryDialog.js @@ -0,0 +1,59 @@ +import React from "react"; + +import { Button, Dialog, Portal } from "react-native-paper"; +import { clearAllHistoryAction } from "../../redux/history/history.actions"; + +const RemoveHistoryDialog = ({ + dialogVisible, + hideDialog, + dispatch, + theme, +}) => { + const onPress = () => { + dispatch(clearAllHistoryAction()); + hideDialog(); + }; + + return ( + + + + Are you sure? All history will be lost. + + + + + + + + ); +}; + +export default RemoveHistoryDialog; diff --git a/src/screens/Library/Library.js b/src/screens/Library/Library.js new file mode 100644 index 00000000..29ccf535 --- /dev/null +++ b/src/screens/Library/Library.js @@ -0,0 +1,178 @@ +import React, { useState, useCallback, useRef } from "react"; +import { + StyleSheet, + Text, + View, + RefreshControl, + ActivityIndicator, + TouchableOpacity, +} from "react-native"; +import { useFocusEffect } from "@react-navigation/native"; +import { useSelector, useDispatch } from "react-redux"; + +import { Searchbar } from "../../components/Searchbar"; +import NovelList from "../../components/NovelList"; +import NovelCover from "../../components/NovelCover"; +import EmptyView from "../../components/EmptyView"; + +import { + getLibraryAction, + searchLibraryAction, +} from "../../redux/library/library.actions"; +import { updateLibraryAction } from "../../redux/updates/updates.actions"; +import { useSettings, useTheme } from "../../hooks/reduxHooks"; +import { setNovel } from "../../redux/novel/novel.actions"; +import { Portal, TouchableRipple } from "react-native-paper"; +import LibraryFilterSheet from "./components/LibraryFilterSheet"; + +const LibraryScreen = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + const { showNumberOfNovels } = useSettings(); + + const libraryFilterSheetRef = useRef(null); + + const { + loading, + novels, + filters: { sort, filter }, + } = useSelector((state) => state.libraryReducer); + + const [refreshing, setRefreshing] = useState(false); + const [searchText, setSearchText] = useState(""); + + useFocusEffect( + useCallback(() => { + setSearchText(""); + dispatch(getLibraryAction(sort, filter)); + }, [getLibraryAction, sort, filter]) + ); + + const onRefresh = () => { + setRefreshing(true); + dispatch(updateLibraryAction()); + setRefreshing(false); + }; + + const clearSearchbar = () => { + dispatch(getLibraryAction(sort, filter)); + setSearchText(""); + }; + + const onChangeText = (text) => { + setSearchText(text); + dispatch(searchLibraryAction(text, sort, filter)); + }; + + const renderItem = ({ item }) => ( + { + navigation.navigate("Novel", item); + dispatch(setNovel(item)); + }} + /> + ); + + const refreshControl = () => ( + + ); + + // if (!loading) { + // console.log(novels); + // } + + const listEmptyComponent = () => + searchText === "" && ( + + ); + + return ( + <> + + libraryFilterSheetRef.current.show(), + color: filter + ? theme.filterColor + : theme.textColorSecondary, + }, + ]} + theme={theme} + /> + {loading ? ( + + ) : ( + <> + {searchText !== "" && ( + + navigation.navigate("GlobalSearch", { + novelName: searchText, + }) + } + borderless + rippleColor={theme.colorAccent} + style={styles.emptySearch} + > + + {`Search for "${searchText}" globally`} + + + )} + + + + + + )} + + + ); +}; + +export default LibraryScreen; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + emptySearch: { + alignItems: "center", + paddingVertical: 8, + borderRadius: 4, + }, +}); diff --git a/src/screens/Library/components/LibraryFilterSheet.js b/src/screens/Library/components/LibraryFilterSheet.js new file mode 100644 index 00000000..a53116fa --- /dev/null +++ b/src/screens/Library/components/LibraryFilterSheet.js @@ -0,0 +1,362 @@ +import React, { useState } from "react"; +import { + StyleSheet, + View, + Text, + Animated, + useWindowDimensions, +} from "react-native"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; + +import { Checkbox } from "react-native-paper"; + +import Bottomsheet from "rn-sliding-up-panel"; +import { ListItem } from "../../../components/List"; +import { filterLibrary } from "../../../redux/library/library.actions"; +import { useSettings } from "../../../hooks/reduxHooks"; +import { setAppSettings } from "../../../redux/settings/settings.actions"; + +const LibraryFilterSheet = ({ + bottomSheetRef, + dispatch, + sort, + filter, + theme, +}) => { + const [animatedValue] = useState(new Animated.Value(0)); + + const FirstRoute = () => ( + + 0" + ? "checked" + : "unchecked" + } + onPress={() => + filter === "chaptersDownloaded > 0" + ? dispatch(filterLibrary(sort, "")) + : dispatch( + filterLibrary(sort, "chaptersDownloaded > 0") + ) + } + /> + + filter === "unread = 1" + ? dispatch(filterLibrary(sort, "")) + : dispatch(filterLibrary(sort, "unread = 1")) + } + /> + + filter === "chaptersUnread IS NULL" + ? dispatch(filterLibrary(sort, "")) + : dispatch( + filterLibrary(sort, "chaptersUnread IS NULL") + ) + } + /> + + ); + + const SecondRoute = () => ( + + + sort === "novels.novelId ASC" + ? dispatch(filterLibrary("novels.novelId DESC", filter)) + : dispatch(filterLibrary("novels.novelId ASC", filter)) + } + /> + + sort === "novels.novelName ASC" + ? dispatch( + filterLibrary("novels.novelName DESC", filter) + ) + : dispatch( + filterLibrary("novels.novelName ASC", filter) + ) + } + /> + + sort === "novels.unread ASC" + ? dispatch(filterLibrary("novels.unread DESC", filter)) + : dispatch(filterLibrary("novels.unread ASC", filter)) + } + /> + + sort === "chaptersDownloaded ASC" + ? dispatch( + filterLibrary("chaptersDownloaded DESC", filter) + ) + : dispatch( + filterLibrary("chaptersDownloaded ASC", filter) + ) + } + /> + + sort === "chaptersUnread ASC" + ? dispatch(filterLibrary("chaptersUnread DESC", filter)) + : dispatch(filterLibrary("chaptersUnread ASC", filter)) + } + /> + + ); + + const displayModes = [ + { displayMode: 0, label: "Compact Grid" }, + { displayMode: 1, label: "Comfortable Grid" }, + { displayMode: 2, label: "List" }, + ]; + + const { + displayMode, + showDownloadBadges, + showUnreadBadges, + showNumberOfNovels, + } = useSettings(); + + const renderCheckboxes = () => { + return displayModes.map((mode) => ( + + dispatch(setAppSettings("displayMode", mode.displayMode)) + } + /> + )); + }; + + const ThirdRoute = () => ( + + + Display Mode + + {renderCheckboxes()} + + + Badges + + + dispatch( + setAppSettings( + "showDownloadBadges", + !showDownloadBadges + ) + ) + } + /> + + dispatch( + setAppSettings("showUnreadBadges", !showUnreadBadges) + ) + } + /> + + dispatch( + setAppSettings( + "showNumberOfNovels", + !showNumberOfNovels + ) + ) + } + /> + + ); + + const renderScene = SceneMap({ + first: FirstRoute, + second: SecondRoute, + third: ThirdRoute, + }); + + const layout = useWindowDimensions(); + + const [index, setIndex] = useState(0); + const [routes] = useState([ + { key: "first", title: "Filter" }, + { key: "second", title: "Sort" }, + { key: "third", title: "Display" }, + ]); + + const renderTabBar = (props) => ( + ( + {route.title} + )} + inactiveColor={theme.textColorSecondary} + activeColor={theme.colorAccent} + pressColor={theme.rippleColor} + /> + ); + + return ( + + + + + + ); +}; + +export default LibraryFilterSheet; + +const styles = StyleSheet.create({ + contentContainer: { + flex: 1, + borderTopRightRadius: 8, + borderTopLeftRadius: 8, + }, +}); diff --git a/src/screens/More/About.js b/src/screens/More/About.js new file mode 100644 index 00000000..bb3f502f --- /dev/null +++ b/src/screens/More/About.js @@ -0,0 +1,72 @@ +import React from "react"; +import { View } from "react-native"; +import * as Linking from "expo-linking"; + +import { Appbar } from "../../components/Appbar"; + +import { useSelector } from "react-redux"; +import { Divider, ListItem, ListSection } from "../../components/List"; + +const AboutScreen = ({ navigation }) => { + const theme = useSelector((state) => state.settingsReducer.theme); + + return ( + <> + navigation.goBack()} /> + + + + + + Linking.openURL( + "https://github.com/rajarsheechatterjee/lnreader/commits/main" + ) + } + theme={theme} + /> + + + Linking.openURL("https://discord.gg/QdcWN4MD63") + } + theme={theme} + /> + + Linking.openURL( + "https://github.com/rajarsheechatterjee/lnreader" + ) + } + theme={theme} + /> + + Linking.openURL( + "https://github.com/rajarsheechatterjee/lnreader-sources" + ) + } + theme={theme} + /> + + + + ); +}; + +export default AboutScreen; diff --git a/src/screens/More/AdvancedSettings.js b/src/screens/More/AdvancedSettings.js new file mode 100644 index 00000000..b5950781 --- /dev/null +++ b/src/screens/More/AdvancedSettings.js @@ -0,0 +1,129 @@ +import React, { useState } from "react"; +import { useDispatch } from "react-redux"; + +import { Appbar } from "../../components/Appbar"; +import { ScreenContainer } from "../../components/Common"; +import { ListItem, ListSection, ListSubHeader } from "../../components/List"; + +import { useTheme } from "../../hooks/reduxHooks"; + +import { clearAllHistoryAction } from "../../redux/history/history.actions"; +import { deleteNovelCache } from "../../database/queries/NovelQueries"; +import { Button, Dialog, Portal } from "react-native-paper"; + +const AdvancedSettings = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + + const [visible, setVisible] = useState(false); + const showDialog = () => setVisible(true); + const hideDialog = () => setVisible(false); + + /** + * Confirm Clear Database Dialog + */ + const [clearDatabaseDialog, setClearDatabaseDialog] = useState(false); + const showClearDatabaseDialog = () => setClearDatabaseDialog(true); + const hideClearDatabaseDialog = () => setClearDatabaseDialog(false); + + return ( + + navigation.goBack()} /> + + Data + + + + + + + Are you sure? All history will be lost. + + + + + + + + + Are you sure? Read chapters and progress of non-library + novels will be lost. + + + + + + + + + ); +}; + +export default AdvancedSettings; diff --git a/src/screens/More/BackupSettings.js b/src/screens/More/BackupSettings.js new file mode 100644 index 00000000..5274e7c1 --- /dev/null +++ b/src/screens/More/BackupSettings.js @@ -0,0 +1,54 @@ +import React from "react"; +import { useDispatch } from "react-redux"; + +import { Appbar } from "../../components/Appbar"; +import { + InfoItem, + ListItem, + ListSection, + ListSubHeader, +} from "../../components/List"; +import { ScreenContainer } from "../../components/Common"; + +import { useTheme } from "../../hooks/reduxHooks"; +import { restoreLibraryAction } from "../../redux/library/library.actions"; +import { createBackup } from "../../services/backup"; + +const BackupSettings = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + + return ( + <> + + navigation.goBack()} + /> + + Backup + + dispatch(restoreLibraryAction())} + theme={theme} + /> + + + + + ); +}; + +export default BackupSettings; diff --git a/src/screens/More/GeneralSettings.js b/src/screens/More/GeneralSettings.js new file mode 100644 index 00000000..252bd305 --- /dev/null +++ b/src/screens/More/GeneralSettings.js @@ -0,0 +1,132 @@ +import React, { useState } from "react"; +import { useDispatch, useSelector } from "react-redux"; + +import { Appbar } from "../../components/Appbar"; +import { + Divider, + ListItem, + ListSection, + ListSubHeader, +} from "../../components/List"; +import { ScreenContainer } from "../../components/Common"; + +import { useTheme } from "../../hooks/reduxHooks"; +import DisplayModeModal from "./components/DisplayModeModal"; +import GridSizeModal from "./components/GridSizeModal"; +import ThemeModal from "./components/ThemeModal"; +import { setAccentColor } from "../../redux/settings/settings.actions"; +import ColorPickerModal from "../../components/ColorPickerModal"; + +const GenralSettings = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + + const { displayMode, novelsPerRow } = useSelector( + (state) => state.settingsReducer + ); + + const displayModeLabel = (displayMode) => { + const label = { + 0: "Compact Grid", + 1: "Comfortable Grid", + 2: "List", + }; + + return label[displayMode] ?? "Compact Grid"; + }; + + /** + * Display Mode Modal + */ + const [displayModalVisible, setDisplayModalVisible] = useState(false); + const showDisplayModal = () => setDisplayModalVisible(true); + const hideDisplayModal = () => setDisplayModalVisible(false); + + /** + * Theme Modal + */ + const [themeModalVisible, setthemeModalVisible] = useState(false); + const showthemeModal = () => setthemeModalVisible(true); + const hidethemeModal = () => setthemeModalVisible(false); + + /** + * Grid Size Modal + */ + const [gridSizeModalVisible, setGridSizeModalVisible] = useState(false); + const showGridSizeModal = () => setGridSizeModalVisible(true); + const hideGridSizeModal = () => setGridSizeModalVisible(false); + + /** + * Accent Color Modal + */ + const [accentColorModal, setAccentColorModal] = useState(false); + const showAccentColorModal = () => setAccentColorModal(true); + const hideAccentColorModal = () => setAccentColorModal(false); + + return ( + + navigation.goBack()} /> + + Display + + + + Theme + + + + + + + dispatch(setAccentColor(val))} + theme={theme} + /> + + ); +}; + +export default GenralSettings; diff --git a/src/screens/More/More.js b/src/screens/More/More.js new file mode 100644 index 00000000..74b10872 --- /dev/null +++ b/src/screens/More/More.js @@ -0,0 +1,66 @@ +import React from "react"; +import { StyleSheet, View, Image } from "react-native"; + +import { Appbar } from "../../components/Appbar"; +import { ListItem, ListSection } from "../../components/List"; + +import { useTheme } from "../../hooks/reduxHooks"; + +const MoreScreen = ({ navigation }) => { + const theme = useTheme(); + + return ( + <> + + + + + + + + + + navigation.navigate("MoreStack", { + screen: "SettingsStack", + }) + } + theme={theme} + /> + + + navigation.navigate("MoreStack", { + screen: "About", + }) + } + theme={theme} + /> + + + + ); +}; + +export default MoreScreen; + +const styles = StyleSheet.create({}); diff --git a/src/screens/More/ReaderSettings.js b/src/screens/More/ReaderSettings.js new file mode 100644 index 00000000..504af27b --- /dev/null +++ b/src/screens/More/ReaderSettings.js @@ -0,0 +1,278 @@ +import React, { useState } from "react"; +import { Pressable, ScrollView, StyleSheet, Text, View } from "react-native"; +import { ToggleButton } from "react-native-paper"; +import { useDispatch } from "react-redux"; + +import { Appbar } from "../../components/Appbar"; +import ColorPickerModal from "../../components/ColorPickerModal"; +import { Row, ScreenContainer } from "../../components/Common"; +import { ListItem, ListSection, ListSubHeader } from "../../components/List"; + +import { useReaderSettings, useTheme } from "../../hooks/reduxHooks"; +import { setReaderSettings } from "../../redux/settings/settings.actions"; +import { + readerBackground, + readerLineHeight, + readerTextColor, +} from "../Chapter/readerStyleController"; + +const ReaderSettings = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + + const reader = useReaderSettings(); + + const textColor = { + 1: "rgba(255,255,255,0.7)", + 2: "#000000", + 3: "#000000", + 4: "#FFFFFF", + }; + + /** + * Reader Background Color Modal + */ + const [readerBackgroundColorModal, setReaderBackgroundtColorModal] = + useState(false); + const showReaderBackgroundtColorModal = () => + setReaderBackgroundtColorModal(true); + const hideReaderBackgroundtColorModal = () => + setReaderBackgroundtColorModal(false); + + /** + * Reader Text Color Modal + */ + const [readerTextColorModal, setReaderTextColorModal] = useState(false); + const showReaderTextColorModal = () => setReaderTextColorModal(true); + const hideReaderTextColorModal = () => setReaderTextColorModal(false); + + const setReaderBackground = (val) => { + dispatch(setReaderSettings("theme", val)); + }; + + const setReaderTextColor = (val) => { + dispatch(setReaderSettings("textColor", val ?? reader.textColor)); + }; + + const readerStyles = [ + { + paddingVertical: 16, + paddingBottom: 32, + fontSize: reader.textSize, + color: reader.textColor, + lineHeight: readerLineHeight(reader.textSize, reader.lineHeight), + textAlign: reader.textAlign, + paddingHorizontal: `${reader.padding}%`, + }, + reader.fontFamily && { + fontFamily: reader.fontFamily, + }, + ]; + + const presetThemes = [ + { + value: 1, + backgroundColor: "#000000", + textColor: "rgba(255,255,255,0.7)", + }, + { value: 2, backgroundColor: "#FFFFFF", textColor: "#000000" }, + { value: 3, backgroundColor: "#F4ECD8", textColor: "#000000" }, + { value: 4, backgroundColor: "#444444", textColor: "#FFFFFF" }, + ]; + + const onValueChange = (value) => { + dispatch(setReaderSettings("theme", value ?? reader.theme)); + dispatch( + setReaderSettings("textColor", textColor[value] ?? reader.textColor) + ); + }; + + const textAlignments = [ + { value: "left", icon: "format-align-left" }, + { value: "justify", icon: "format-align-justify" }, + { value: "right", icon: "format-align-right" }, + ]; + + const onValueChangeTextAlign = (value) => { + dispatch(setReaderSettings("textAlign", value ?? reader.textAlign)); + }; + + return ( + + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Ut lobortis nunc id nisl tempor, sed tristique sem + sagittis. Mauris consequat orci egestas volutpat + vestibulum. Nullam convallis, leo in porttitor + fringilla, ex mi finibus felis, non molestie ligula + ligula facilisis ligula. Nam eu est a turpis porttitor + aliquet sed vel risus. Ut ac scelerisque diam. Nulla + fringilla enim non ex rhoncus faucibus. Integer eget + lacus justo. Lorem ipsum dolor sit amet, consectetur + adipiscing elit. Ut vitae tempor metus. Morbi nec nisl + cursus, gravida ex vitae, laoreet leo. Pellentesque in + lectus ante. Aliquam porta suscipit pretium. Sed ut + ligula at dolor pretium egestas quis vitae urna. In + ullamcorper venenatis orci, eu pulvinar nibh venenatis + sit amet. + + + + Preset + + + Preset Themes + + + + {presetThemes.map((theme) => ( + + ))} + + + + Reader + + + Text + + + + Text Align + + + {reader.textAlign} + + + + + {textAlignments.map((item) => ( + + ))} + + + + + + + + + ); +}; + +export default ReaderSettings; + +const styles = StyleSheet.create({ + pressableListItem: { + padding: 16, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + }, + presetToggleButton: { + marginLeft: 12, + borderRadius: 50, + borderTopRightRadius: 50, + borderBottomRightRadius: 50, + borderTopLeftRadius: 50, + borderBottomLeftRadius: 50, + borderWidth: 0, + }, +}); diff --git a/src/screens/More/Settings.js b/src/screens/More/Settings.js new file mode 100644 index 00000000..cef9c460 --- /dev/null +++ b/src/screens/More/Settings.js @@ -0,0 +1,76 @@ +import React from "react"; +import { View } from "react-native"; + +import { Appbar } from "../../components/Appbar"; +import { ListItem } from "../../components/List"; + +import { useTheme } from "../../hooks/reduxHooks"; + +const SettingsScreen = ({ navigation }) => { + const theme = useTheme(); + + return ( + <> + + + + navigation.navigate("SettingsStack", { + screen: "GeneralSettings", + }) + } + theme={theme} + /> + + navigation.navigate("SettingsStack", { + screen: "ReaderSettings", + }) + } + theme={theme} + /> + + navigation.navigate("SettingsStack", { + screen: "TrackerSettings", + }) + } + theme={theme} + /> + + navigation.navigate("SettingsStack", { + screen: "BackupSettings", + }) + } + theme={theme} + /> + + navigation.navigate("SettingsStack", { + screen: "AdvancedSettings", + }) + } + theme={theme} + /> + + + ); +}; + +export default SettingsScreen; diff --git a/src/screens/More/TrackerSettings.js b/src/screens/More/TrackerSettings.js new file mode 100644 index 00000000..5367524c --- /dev/null +++ b/src/screens/More/TrackerSettings.js @@ -0,0 +1,158 @@ +import React, { useState } from "react"; +import { View } from "react-native"; +import { Modal, Portal, Text, Button, Provider } from "react-native-paper"; + +import * as WebBrowser from "expo-web-browser"; +import { + myAnimeListConfig, + getAccessToken, + malTokenWatcher, +} from "../../services/Trackers/myAnimeList"; +import { Appbar } from "../../components/Appbar"; + +import { useSelector, useDispatch } from "react-redux"; +import { + Divider, + ListItem, + ListSection, + ListSubHeader, +} from "../../components/List"; +import { removeTracker, setTracker } from "../../redux/tracker/tracker.actions"; + +const TrackerScreen = ({ navigation }) => { + const theme = useSelector((state) => state.settingsReducer.theme); + const tracker = useSelector((state) => state.trackerReducer.tracker); + const dispatch = useDispatch(); + + // Tracker Modal + const [visible, setVisible] = useState(false); + const showModal = () => setVisible(true); + const hideModal = () => setVisible(false); + + return ( + + navigation.goBack()} /> + + + Services + { + if (tracker) { + showModal(); + } else { + await WebBrowser.openAuthSessionAsync( + myAnimeListConfig.authUrl, + myAnimeListConfig.redirectUri + ).then((res) => { + console.log(res.type); + if (res.type === "success") { + const { url } = res; + + const codeExtractor = new RegExp( + /=([^&]+)/ + ); + let code = url.match(codeExtractor); + + console.log(code); + + if (code) { + code = code[1]; + getAccessToken( + code, + myAnimeListConfig.codeChallenge + ).then((objects) => { + console.log(objects); + dispatch(setTracker(objects)); + }); + } + } + }); + } + }} + right={tracker && "check"} + theme={theme} + /> + {tracker && tracker.expires_in < new Date(Date.now()) && ( + <> + + + Settings + + { + const res = malTokenWatcher(tracker); + dispatch(setTracker(res)); + }} + theme={theme} + /> + + )} + + + + + + Log out from MyAnimeList? + + + + + + + + + + ); +}; + +export default TrackerScreen; diff --git a/src/screens/More/components/AccentColorModal.js b/src/screens/More/components/AccentColorModal.js new file mode 100644 index 00000000..921f612e --- /dev/null +++ b/src/screens/More/components/AccentColorModal.js @@ -0,0 +1,80 @@ +import React, { useState } from "react"; +import { StyleSheet, Text } from "react-native"; +import { Modal, Portal, TextInput } from "react-native-paper"; + +const AccentColorModal = ({ + accentColorModal, + hideAccentColorModal, + theme, + onPress, + color, +}) => { + const [text, setText] = useState(color); + const [error, setError] = useState(); + + return ( + + { + hideAccentColorModal(); + setText(); + setError(); + }} + contentContainerStyle={[ + styles.containerStyle, + { backgroundColor: theme.colorPrimary }, + ]} + > + + Hex Color Code + + setText(text)} + onSubmitEditing={() => { + if (text.match(/^#([0-9a-f]{6}|[0-9a-f]{3})$/i)) { + onPress(text); + hideAccentColorModal(); + } else { + setError("Enter a valid hex color code"); + } + }} + mode="outlined" + theme={{ + colors: { + primary: color, + placeholder: theme.textColorHint, + text: theme.textColorPrimary, + background: "transparent", + }, + }} + underlineColor={theme.textColorHint} + dense + error={error} + /> + {error} + + + ); +}; + +export default AccentColorModal; + +const styles = StyleSheet.create({ + containerStyle: { + margin: 30, + padding: 20, + borderRadius: 8, + }, + dialogTitle: { + fontSize: 18, + marginBottom: 16, + }, +}); diff --git a/src/screens/More/components/DisplayModeModal.js b/src/screens/More/components/DisplayModeModal.js new file mode 100644 index 00000000..6b6a3657 --- /dev/null +++ b/src/screens/More/components/DisplayModeModal.js @@ -0,0 +1,62 @@ +import React from "react"; +import { StyleSheet } from "react-native"; +import { Portal, Modal, Checkbox } from "react-native-paper"; +import { setAppSettings } from "../../../redux/settings/settings.actions"; + +const DisplayModeModal = ({ + theme, + dispatch, + displayMode, + hideDisplayModal, + displayModalVisible, +}) => { + const displayModes = [ + { displayMode: 0, label: "Compact Grid" }, + { displayMode: 1, label: "Comfortable Grid" }, + { displayMode: 2, label: "List" }, + ]; + + const renderCheckboxes = () => { + return displayModes.map((mode) => ( + + dispatch(setAppSettings("displayMode", mode.displayMode)) + } + /> + )); + }; + + return ( + + + {renderCheckboxes()} + + + ); +}; + +export default DisplayModeModal; + +const styles = StyleSheet.create({ + containerStyle: { + padding: 20, + margin: 20, + borderRadius: 6, + }, +}); diff --git a/src/screens/More/components/GridSizeModal.js b/src/screens/More/components/GridSizeModal.js new file mode 100644 index 00000000..588c821e --- /dev/null +++ b/src/screens/More/components/GridSizeModal.js @@ -0,0 +1,97 @@ +import React from "react"; +import { Text, StyleSheet } from "react-native"; +import { Portal, Modal } from "react-native-paper"; +import Slider from "@react-native-community/slider"; +import { RadioButton, RadioButtonGroup } from "../../../components/RadioButton"; +import { setNovelsPerRow } from "../../../redux/settings/settings.actions"; + +const GridSizeModal = ({ + dispatch, + novelsPerRow, + gridSizeModalVisible, + hideGridSizeModal, + theme, +}) => { + const gridSizes = { + 5: "XS", + 4: "S", + 3: "M", + 2: "L", + 1: "XL", + }; + + return ( + + + + Grid size + + + {`${novelsPerRow} per row`} + + {/* dispatch(setNovelsPerRow(value))} + /> */} + dispatch(setNovelsPerRow(value))} + value={novelsPerRow} + > + {Object.keys(gridSizes).map((item) => ( + + ))} + + + + ); +}; + +export default GridSizeModal; + +const styles = StyleSheet.create({ + containerStyle: { + padding: 20, + margin: 20, + borderRadius: 6, + }, + modalHeader: { + fontSize: 18, + marginBottom: 10, + }, + modalDescription: { + marginBottom: 16, + }, + slider: { + width: "100%", + height: 40, + }, +}); diff --git a/src/screens/More/components/ThemeModal.js b/src/screens/More/components/ThemeModal.js new file mode 100644 index 00000000..7fd82c84 --- /dev/null +++ b/src/screens/More/components/ThemeModal.js @@ -0,0 +1,60 @@ +import React from "react"; +import { StyleSheet } from "react-native"; +import { Portal, Modal, Checkbox } from "react-native-paper"; + +import { setStatusBarStyle } from "expo-status-bar"; +import { setAppTheme } from "../../../redux/settings/settings.actions"; +import ImmersiveMode from "react-native-immersive-mode"; + +const ThemeModal = ({ themeModalVisible, hidethemeModal, dispatch, theme }) => { + const themes = [ + { id: 0, name: "AMOLED Dark", statusBar: "light" }, + { id: 1, name: "Light", statusBar: "dark" }, + { id: 2, name: "Dark", statusBar: "light" }, + { id: 3, name: "Midnight Dusk", statusBar: "light" }, + { id: 4, name: "Lime", statusBar: "light" }, + { id: 5, name: "Iris Blue", statusBar: "light" }, + ]; + + const renderThemeCheckboxes = () => + themes.map((item) => ( + { + dispatch(setAppTheme(item.id)); + // setStatusBarStyle(item.statusBar); + ImmersiveMode.setBarColor(item.colorPrimary); + }} + /> + )); + + return ( + + + {renderThemeCheckboxes()} + + + ); +}; + +export default ThemeModal; + +const styles = StyleSheet.create({ + containerStyle: { + padding: 20, + margin: 20, + borderRadius: 6, + }, +}); diff --git a/src/screens/Novel/Novel.js b/src/screens/Novel/Novel.js new file mode 100644 index 00000000..c094a8ba --- /dev/null +++ b/src/screens/Novel/Novel.js @@ -0,0 +1,408 @@ +import React, { useEffect, useRef, useState } from "react"; +import { + StyleSheet, + View, + FlatList, + RefreshControl, + StatusBar, + Dimensions, + Share, +} from "react-native"; + +import { Provider, Portal, Appbar, IconButton, Menu } from "react-native-paper"; +import { useDispatch } from "react-redux"; + +import { + bookmarkChapterAction, + deleteAllChaptersAction, + downloadAllChaptersAction, + getNovelAction, + markChapterReadAction, + markChaptersRead, + markChapterUnreadAction, + markPreviousChaptersReadAction, + sortAndFilterChapters, + updateNovelAction, +} from "../../redux/novel/novel.actions"; +import { + useContinueReading, + useNovel, + usePreferences, + useTheme, +} from "../../hooks/reduxHooks"; +import { showToast } from "../../hooks/showToast"; + +import ChapterItem from "./components/ChapterItem"; +import NovelInfoHeader from "./components/NovelHeader"; +import ChaptersSettingsSheet from "./components/ChaptersSettingsSheet"; +import TrackSheet from "./components/Tracker/TrackSheet"; +import ChapterActionsSheet from "./components/ChapterActionsSheet"; +import { Row } from "../../components/Common"; + +const Novel = ({ route, navigation }) => { + const item = route.params; + const { sourceId, novelUrl, novelName, followed, novelId } = item; + + const theme = useTheme(); + const dispatch = useDispatch(); + const { novel, chapters, loading, updating, downloading } = useNovel(); + + const [selected, setSelected] = useState([]); + const [downloadMenu, showDownloadMenu] = useState(false); + + let chaptersSettingsSheetRef = useRef(null); + let trackerSheetRef = useRef(null); + let chapterActionsSheetRef = useRef(null); + + const { + sort = "ORDER BY chapterId ASC", + filter = "", + showChapterTitles = false, + } = usePreferences(novel.novelId); + + let { lastReadChapter, position } = useContinueReading( + chapters, + novel.novelId + ); + + useEffect(() => { + dispatch( + getNovelAction(followed, sourceId, novelUrl, novelId, sort, filter) + ); + }, [getNovelAction]); + + const onRefresh = () => { + dispatch(updateNovelAction(sourceId, novelUrl, novelId, sort, filter)); + showToast(`Updated ${novelName}`); + }; + + const refreshControl = () => ( + + ); + + const renderItem = ({ item, index }) => ( + + ); + + return ( + + + {selected.length > 0 ? ( + + { + setSelected([]); + }} + /> + + + { + setSelected(chapters); + }} + /> + + ) : ( + + navigation.goBack()} + /> + + showDownloadMenu(false)} + anchor={ + showDownloadMenu(true)} + /> + } + contentStyle={{ + backgroundColor: theme.menuColor, + }} + > + + dispatch( + downloadAllChaptersAction( + novel.sourceId, + novel.novelUrl, + chapters + ) + ) + } + /> + + dispatch( + deleteAllChaptersAction(chapters) + ) + } + /> + + + Share.share({ + message: novel.sourceUrl, + }) + } + /> + + + )} + item.chapterId.toString()} + removeClippedSubviews={true} + maxToRenderPerBatch={5} + windowSize={15} + initialNumToRender={7} + renderItem={renderItem} + ListHeaderComponent={ + + } + refreshControl={refreshControl()} + /> + {selected.length > 0 && ( + + {selected.some((obj) => obj.downloaded === 0) && ( + { + dispatch( + downloadAllChaptersAction( + novel.sourceId, + novel.novelUrl, + selected + ) + ); + setSelected([]); + }} + /> + )} + {selected.some((obj) => obj.downloaded === 1) && ( + { + dispatch(deleteAllChaptersAction(selected)); + setSelected([]); + }} + /> + )} + { + dispatch(bookmarkChapterAction(selected)); + setSelected([]); + }} + /> + + {selected.some((obj) => obj.read === 0) && ( + { + dispatch( + markChaptersRead( + selected, + novel.novelId, + sort, + filter + ) + ); + setSelected([]); + }} + /> + )} + + {selected.some((obj) => obj.read === 1) && ( + { + dispatch( + markChapterUnreadAction( + selected, + novel.novelId + ) + ); + setSelected([]); + }} + /> + )} + {selected.length === 1 && ( + { + dispatch( + markPreviousChaptersReadAction( + selected[0].chapterId, + selected[0].novelId + ) + ); + setSelected([]); + }} + /> + )} + + )} + {!loading && ( + + + + {/* */} + + )} + + + ); +}; + +export default Novel; + +const styles = StyleSheet.create({ + container: { flex: 1 }, + rowBack: { + alignItems: "center", + flex: 1, + flexDirection: "row", + justifyContent: "space-between", + }, +}); diff --git a/src/screens/Novel/components/ChapterActionsSheet.js b/src/screens/Novel/components/ChapterActionsSheet.js new file mode 100644 index 00000000..e5bd7e22 --- /dev/null +++ b/src/screens/Novel/components/ChapterActionsSheet.js @@ -0,0 +1,176 @@ +import React, { useState } from "react"; +import { StyleSheet, View, Text, Animated } from "react-native"; +import { List } from "react-native-paper"; + +import Bottomsheet from "rn-sliding-up-panel"; +import BottomSheetHandle from "../../../components/BottomSheetHandle"; +import { ListItem } from "../../../components/List"; +import { + markPreviousChaptersReadAction, + markPreviousChaptersUnreadAction, +} from "../../../redux/novel/novel.actions"; + +const ChapterActionsSheet = ({ + bottomSheetRef, + selected, + theme, + markChapterReadAction, + markChapterUnreadAction, + dispatch, + bookmarkChapterAction, + setSelected, +}) => { + const [animatedValue] = useState(new Animated.Value(0)); + + return ( + + + + {selected?.chapterName} + + ( + + )} + onPress={() => { + dispatch( + markPreviousChaptersReadAction( + selected?.chapterId, + selected?.novelId + ) + ); + // bottomSheetRef.current.hide(); + }} + rippleColor={theme.rippleColor} + /> + ( + + )} + onPress={() => { + dispatch( + markPreviousChaptersUnreadAction( + selected?.chapterId, + selected?.novelId + ) + ); + // bottomSheetRef.current.hide(); + }} + rippleColor={theme.rippleColor} + /> + ( + + )} + onPress={() => { + if (selected?.read) { + dispatch( + markChapterUnreadAction(selected?.chapterId) + ); + setSelected((selected) => ({ + ...selected, + read: 0, + })); + } else { + dispatch( + markChapterReadAction( + selected?.chapterId, + selected?.novelId + ) + ); + setSelected((selected) => ({ + ...selected, + read: 1, + })); + } + // bottomSheetRef.current.hide(); + }} + rippleColor={theme.rippleColor} + /> + ( + + )} + onPress={() => { + dispatch( + bookmarkChapterAction( + selected?.bookmark, + selected?.chapterId + ) + ); + setSelected((selected) => ({ + ...selected, + bookmark: !selected.bookmark, + })); + + // bottomSheetRef.current.hide(); + }} + rippleColor={theme.rippleColor} + /> + + + ); +}; + +export default ChapterActionsSheet; + +const styles = StyleSheet.create({ + contentContainer: { + flex: 1, + borderTopRightRadius: 8, + borderTopLeftRadius: 8, + }, +}); diff --git a/src/screens/Novel/components/ChapterItem.js b/src/screens/Novel/components/ChapterItem.js new file mode 100644 index 00000000..54bc4675 --- /dev/null +++ b/src/screens/Novel/components/ChapterItem.js @@ -0,0 +1,253 @@ +import React, { useState } from "react"; +import { + View, + Text, + ActivityIndicator, + StyleSheet, + Pressable, +} from "react-native"; + +import { TouchableRipple, IconButton, Menu } from "react-native-paper"; +import { Row } from "../../../components/Common"; + +import { + deleteChapterAction, + downloadChapterAction, +} from "../../../redux/novel/novel.actions"; +import { parseChapterNumber } from "../../../services/utils/helpers"; + +const ChapterItem = ({ + novelUrl, + novelName, + chapter, + sourceId, + dispatch, + theme, + navigation, + downloading, + index, + position, + selected, + setSelected, + showChapterTitles, + chapterActionsSheetRef, +}) => { + const [deleteChapterMenu, setDeleteChapterMenu] = useState(false); + const showDeleteChapterMenu = () => setDeleteChapterMenu(true); + const hideDeleteChapterMenu = () => setDeleteChapterMenu(false); + + const navigateToChapter = () => + navigation.navigate("Chapter", { + sourceId, + novelUrl, + novelId: chapter.novelId, + chapterId: chapter.chapterId, + chapterUrl: chapter.chapterUrl, + chapterName: chapter.chapterName, + novelName: novelName, + bookmark: chapter.bookmark, + }); + + const displayDownloadButton = () => { + if (downloading.indexOf(chapter.chapterId) !== -1) { + return ( + + ); + } else if (chapter.downloaded === 1) { + return ( + + } + contentStyle={{ backgroundColor: theme.menuColor }} + > + + dispatch( + deleteChapterAction( + chapter.chapterId, + chapter.chapterName + ) + ) + } + title="Delete" + titleStyle={{ color: theme.textColorPrimary }} + /> + + ); + } else { + return ( + + dispatch( + downloadChapterAction( + sourceId, + novelUrl, + chapter.chapterUrl, + chapter.chapterName, + chapter.chapterId + ) + ) + } + style={{ margin: 2 }} + /> + ); + } + }; + + const bookmarkButton = () => { + if (chapter.bookmark) { + return ( + + ); + } + }; + + const isSelected = (chapterId) => { + return selected.some((obj) => obj.chapterId === chapterId); + }; + + const onPress = () => { + if (selected.length === 0) { + navigateToChapter(); + } else { + if (isSelected(chapter.chapterId)) { + setSelected((selected) => + selected.filter( + (item) => item.chapterId !== chapter.chapterId + ) + ); + } else { + setSelected((selected) => [...selected, chapter]); + } + } + }; + + const onLongPress = () => { + if (isSelected(chapter.chapterId)) { + setSelected((selected) => + selected.filter((item) => item.chapterId !== chapter.chapterId) + ); + } else { + setSelected((selected) => [...selected, chapter]); + } + }; + + return ( + + + {bookmarkButton()} + + + {showChapterTitles + ? parseChapterNumber(chapter.chapterName) + ? "Chapter " + + parseChapterNumber(chapter.chapterName) + : "Chapter " + index + : chapter.chapterName.substring(0, 50)} + + + {chapter.releaseDate && ( + + {chapter.releaseDate} + + )} + {position && + !chapter.read && + position[chapter.chapterId] && + position[chapter.chapterId].percentage < 100 && + position[chapter.chapterId].percentage > 0 && ( + + {chapter.releaseDate && "• "} + {"Progress " + + position[chapter.chapterId].percentage + + "%"} + + )} + + + + {displayDownloadButton()} + + ); +}; + +export default ChapterItem; + +const styles = StyleSheet.create({ + chapterCardContainer: { + paddingHorizontal: 15, + paddingVertical: 7, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + }, +}); diff --git a/src/screens/Novel/components/ChaptersSettingsSheet.js b/src/screens/Novel/components/ChaptersSettingsSheet.js new file mode 100644 index 00000000..cf4e2ffc --- /dev/null +++ b/src/screens/Novel/components/ChaptersSettingsSheet.js @@ -0,0 +1,213 @@ +import React, { useState } from "react"; +import { + StyleSheet, + View, + Text, + Animated, + useWindowDimensions, +} from "react-native"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; + +import Bottomsheet from "rn-sliding-up-panel"; +import BottomSheetHandle from "../../../components/BottomSheetHandle"; +import { showChapterTitlesAction } from "../../../redux/novel/novel.actions"; +import { ListItem } from "../../../components/List"; +import { RadioButton, RadioButtonGroup } from "../../../components/RadioButton"; +import { Checkbox } from "react-native-paper"; + +const ChaptersSettingsSheet = ({ + bottomSheetRef, + novelId, + sortAndFilterChapters, + dispatch, + sort, + filter, + theme, + showChapterTitles, +}) => { + const sortChapters = (val) => + dispatch(sortAndFilterChapters(novelId, val, filter)); + + const filterChapters = (val) => + dispatch(sortAndFilterChapters(novelId, sort, val)); + + const [animatedValue] = useState(new Animated.Value(0)); + + const FirstRoute = () => ( + + + filter.match("AND downloaded=1") + ? filterChapters( + filter.replace(" AND downloaded=1", "") + ) + : filterChapters(filter + " AND downloaded=1") + } + /> + { + if (filter.match("AND `read`=0")) { + filterChapters( + filter.replace(" AND `read`=0", " AND `read`=1") + ); + } else if (filter.match("AND `read`=1")) { + filterChapters(filter.replace(" AND `read`=1", "")); + } else { + filterChapters(filter + " AND `read`=0"); + } + }} + /> + { + filter.match("AND bookmark=1") + ? filterChapters(filter.replace(" AND bookmark=1", "")) + : filterChapters(filter + " AND bookmark=1"); + }} + /> + + ); + + const SecondRoute = () => ( + + + sort === "ORDER BY chapterId ASC" + ? sortChapters("ORDER BY chapterId DESC") + : sortChapters("ORDER BY chapterId ASC") + } + /> + + ); + + const ThirdRoute = () => ( + + + dispatch(showChapterTitlesAction(novelId, value)) + } + value={showChapterTitles} + > + + + + + ); + + const renderScene = SceneMap({ + first: FirstRoute, + second: SecondRoute, + third: ThirdRoute, + }); + + const layout = useWindowDimensions(); + + const [index, setIndex] = useState(0); + const [routes] = useState([ + { key: "first", title: "Filter" }, + { key: "second", title: "Sort" }, + { key: "third", title: "Display" }, + ]); + + const renderTabBar = (props) => ( + ( + {route.title} + )} + inactiveColor={theme.textColorSecondary} + activeColor={theme.colorAccent} + pressColor={theme.rippleColor} + /> + ); + + return ( + + + + + + ); +}; + +export default ChaptersSettingsSheet; + +const styles = StyleSheet.create({ + contentContainer: { + flex: 1, + borderTopRightRadius: 8, + borderTopLeftRadius: 8, + }, +}); diff --git a/src/screens/Novel/components/Info/GenreChip.js b/src/screens/Novel/components/Info/GenreChip.js new file mode 100644 index 00000000..146c1d2f --- /dev/null +++ b/src/screens/Novel/components/Info/GenreChip.js @@ -0,0 +1,30 @@ +import React from "react"; +import { Text, StyleSheet } from "react-native"; + +export const GenreChip = ({ children, theme }) => ( + + {children} + +); + +const styles = StyleSheet.create({ + genreChip: { + flex: 1, + justifyContent: "center", + paddingVertical: 2, + paddingHorizontal: 10, + marginHorizontal: 2, + fontSize: 13, + borderWidth: 1, + borderRadius: 50, + }, +}); diff --git a/src/screens/Novel/components/Info/NovelDetailsComponents.js b/src/screens/Novel/components/Info/NovelDetailsComponents.js new file mode 100644 index 00000000..6a09f0b1 --- /dev/null +++ b/src/screens/Novel/components/Info/NovelDetailsComponents.js @@ -0,0 +1,247 @@ +import React from "react"; +import { + FlatList, + Image, + ImageBackground, + StyleSheet, + Text, + View, + Pressable, +} from "react-native"; + +import { Chip, IconButton } from "react-native-paper"; +import { MaterialCommunityIcons } from "@expo/vector-icons"; +import { LinearGradient } from "expo-linear-gradient"; +import easeGradient from "react-native-easing-gradient"; +import FastImage from "react-native-fast-image"; + +const NovelInfoContainer = ({ children }) => ( + {children} +); + +const CoverImage = ({ children, source, theme }) => { + const { colors, locations } = easeGradient({ + colorStops: { + 0: { color: "rgba(0,0,0,0.2)" }, + 1: { color: theme.colorPrimaryDark }, + }, + }); + + return ( + + + {children} + + + ); +}; + +const NovelThumbnail = ({ source }) => ( + +); + +const NovelTitle = ({ theme, children, onLongPress, onPress }) => ( + + {children} + +); + +const NovelAuthor = ({ theme, children }) => ( + + {children} + +); + +const NovelInfo = ({ theme, children }) => ( + + {children} + +); + +const FollowButton = ({ theme, onPress, followed }) => ( + + + + + {followed ? "In Library" : "Add to library"} + + + +); + +const TrackerButton = ({ theme, isTracked, onPress }) => ( + + + + + {isTracked ? "Tracked" : "Tracking"} + + + +); + +const GenreChip = ({ children, theme }) => ( + + {children} + +); + +const NovelGenres = ({ theme, genre }) => { + const data = genre.split(","); + + const renderItem = ({ item }) => ( + {item} + ); + + return ( + item} + renderItem={renderItem} + showsHorizontalScrollIndicator={false} + /> + ); +}; + +export { + NovelInfoContainer, + CoverImage, + NovelThumbnail, + NovelTitle, + NovelAuthor, + NovelInfo, + FollowButton, + TrackerButton, + NovelGenres, +}; + +const styles = StyleSheet.create({ + novelInfoContainer: { + flex: 1, + flexDirection: "row", + margin: 16, + paddingTop: 90, + }, + coverImage: { + height: 285, + }, + linearGradient: { + height: 286, + }, + novelThumbnail: { + height: 160, + width: 110, + margin: 3.2, + borderRadius: 6, + }, + novelTitle: { + fontWeight: "bold", + fontSize: 18, + }, + novelAuthor: { + marginVertical: 3, + fontSize: 14, + fontWeight: "bold", + }, + novelInfo: { + marginVertical: 3, + fontSize: 14, + }, + followButton: { + height: 32, + justifyContent: "center", + alignItems: "center", + marginLeft: 16, + paddingLeft: 4, + borderWidth: 0, + elevation: 0, + }, + novelGenres: { + // marginTop: 12, + paddingHorizontal: 16, + paddingBottom: 16, + }, + genreChip: { + flex: 1, + justifyContent: "center", + paddingVertical: 2, + paddingHorizontal: 10, + marginHorizontal: 2, + fontSize: 13, + borderWidth: 1, + borderRadius: 50, + }, +}); diff --git a/src/screens/Novel/components/Info/NovelSummary.js b/src/screens/Novel/components/Info/NovelSummary.js new file mode 100644 index 00000000..52c042ae --- /dev/null +++ b/src/screens/Novel/components/Info/NovelSummary.js @@ -0,0 +1,56 @@ +import React, { useState } from "react"; +import { View, Text, StyleSheet } from "react-native"; + +const NovelSummary = ({ summary, followed, theme }) => { + const [more, showMore] = useState(!followed); + + return ( + + showMore(!more)} + ellipsizeMode="clip" + > + {summary} + + showMore(!more)} + > + {more ? "Less" : "More"} + + + ); +}; + +export default NovelSummary; + +const styles = StyleSheet.create({ + summaryContainer: { + paddingHorizontal: 16, + marginVertical: 16, + }, + // summaryHeader: { + // marginTop: 5, + // paddingVertical: 5, + // fontSize: 15, + // fontWeight: "bold", + // }, + showMoreButton: { + fontWeight: "bold", + position: "absolute", + bottom: 0, + right: 18, + paddingLeft: 6, + }, +}); diff --git a/src/screens/Novel/components/Info/ReadButton.js b/src/screens/Novel/components/Info/ReadButton.js new file mode 100644 index 00000000..13288566 --- /dev/null +++ b/src/screens/Novel/components/Info/ReadButton.js @@ -0,0 +1,58 @@ +import React from "react"; +import { StyleSheet } from "react-native"; + +import { Button } from "react-native-paper"; + +const ReadButton = ({ navigation, novel, chapters, theme, lastRead }) => { + return ( + chapters.length > 0 && + (lastRead ? ( + + ) : ( + + )) + ); +}; + +export default ReadButton; + +const styles = StyleSheet.create({ + startButton: { + marginTop: 8, + marginBottom: 16, + marginHorizontal: 16, + }, +}); diff --git a/src/screens/Novel/components/NovelHeader.js b/src/screens/Novel/components/NovelHeader.js new file mode 100644 index 00000000..c421e723 --- /dev/null +++ b/src/screens/Novel/components/NovelHeader.js @@ -0,0 +1,248 @@ +import React from "react"; +import { View, Text, StyleSheet, Clipboard, Pressable } from "react-native"; + +import * as WebBrowser from "expo-web-browser"; +import { TouchableRipple, IconButton } from "react-native-paper"; + +import { followNovelAction } from "../../../redux/novel/novel.actions"; +import { useTrackingStatus } from "../../../hooks/reduxHooks"; + +import { + CoverImage, + NovelAuthor, + NovelInfo, + NovelInfoContainer, + NovelThumbnail, + NovelTitle, + FollowButton, + TrackerButton, + NovelGenres, +} from "./Info/NovelDetailsComponents"; +import { Row } from "../../../components/Common"; +import NovelSummary from "./Info/NovelSummary"; +import ReadButton from "./Info/ReadButton"; +import { showToast } from "../../../hooks/showToast"; + +const NovelInfoHeader = ({ + item, + novel, + theme, + filter, + loading, + dispatch, + chapters, + lastRead, + navigation, + trackerSheetRef, + chaptersSettingsSheetRef, +}) => { + const { tracker, trackedNovels } = useTrackingStatus(); + + let isTracked = false; + + if (!loading) { + isTracked = trackedNovels.find((obj) => obj.novelId === novel.novelId); + } + + return ( + + + + + + + navigation.navigate("GlobalSearch", { + novelName: item.novelName, + }) + } + onLongPress={() => { + Clipboard.setString(item.novelName); + showToast( + "Copied to clipboard: " + item.novelName + ); + }} + > + {item.novelName} + + {!loading && ( + <> + + {novel.author} + + + {novel.status} + + + {novel.source} + + + )} + + + + {!loading && ( + <> + + dispatch(followNovelAction(novel))} + /> + {tracker && ( + trackerSheetRef.current.show()} + /> + )} + + + navigation.navigate("MigrateNovel", { + sourceId: novel.sourceId, + novelName: novel.novelName, + }) + } + style={{ + justifyContent: "center", + alignItems: "center", + paddingBottom: 8, + }} + > + + + Migrate + + + + + + WebBrowser.openBrowserAsync(novel.sourceUrl) + } + style={{ + justifyContent: "center", + alignItems: "center", + paddingBottom: 8, + }} + > + + + WebView + + + + + + + + chaptersSettingsSheetRef.current.show()} + rippleColor={theme.rippleColor} + > + <> + + {`${chapters.length} Chapters`} + + + + + + )} + + ); +}; + +export default NovelInfoHeader; + +const styles = StyleSheet.create({ + novelDetails: { + flex: 1, + paddingHorizontal: 16, + paddingTop: 8, + }, + chapters: { + paddingHorizontal: 16, + paddingVertical: 4, + fontSize: 16, + fontWeight: "bold", + }, + bottomsheet: { + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + paddingRight: 12, + }, +}); diff --git a/src/screens/Novel/components/Tracker/MyAnimeListCards.js b/src/screens/Novel/components/Tracker/MyAnimeListCards.js new file mode 100644 index 00000000..caf44a41 --- /dev/null +++ b/src/screens/Novel/components/Tracker/MyAnimeListCards.js @@ -0,0 +1,194 @@ +import React from "react"; +import { StyleSheet, View, Text, Image } from "react-native"; +import { TouchableRipple, IconButton } from "react-native-paper"; +import { useDispatch } from "react-redux"; +import { untrackNovel } from "../../../../redux/tracker/tracker.actions"; + +export const AddMalTrackingCard = ({ theme, setTrackSearchDialog }) => ( + + + setTrackSearchDialog(true)} + rippleColor={theme.colorAccent} + > + + Add Tracking + + + +); + +export const MalTrackItemCard = ({ + trackItem, + setTrackStatusDialog, + setTrackChaptersDialog, + setTrackScoreDialog, + getStatus, + theme, +}) => { + const dispatch = useDispatch(); + + return ( + + + + + + {trackItem.title} + + dispatch(untrackNovel(trackItem.id))} + /> + + + + setTrackStatusDialog(true)} + rippleColor={theme.rippleColor} + > + + {getStatus(trackItem.my_list_status.status)} + + + setTrackChaptersDialog(true)} + rippleColor={theme.rippleColor} + > + + {`${trackItem.my_list_status.num_chapters_read}/${ + trackItem.num_chapters !== 0 + ? trackItem.num_chapters + : "-" + }`} + + + setTrackScoreDialog(true)} + rippleColor={theme.rippleColor} + > + + {trackItem.my_list_status.score === 0 + ? "-" + : trackItem.my_list_status.score} + + + + + ); +}; + +const styles = StyleSheet.create({ + trackerIcon: { + height: 50, + width: 50, + borderTopLeftRadius: 4, + borderBottomLeftRadius: 4, + }, + rippleContainer: { + flex: 1, + alignItems: "center", + borderTopRightRadius: 4, + borderBottomRightRadius: 4, + }, + addCardContainer: { + flexDirection: "row", + alignItems: "center", + margin: 8, + borderRadius: 4, + elevation: 2, + }, + cardContainer: { + margin: 8, + elevation: 2, + borderRadius: 4, + }, + titleContainer: { + flexDirection: "row", + alignItems: "center", + borderBottomWidth: 1, + }, + listItemContainer: { + flex: 1, + flexDirection: "row", + borderTopRightRadius: 4, + }, + listItem: { + flex: 1, + textAlign: "center", + textAlignVertical: "center", + }, + listItemLeft: { + flex: 1, + borderRightWidth: 1, + borderBottomLeftRadius: 4, + }, + listItemRight: { + flex: 1, + borderLeftWidth: 1, + borderBottomRightRadius: 4, + }, +}); diff --git a/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js b/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js new file mode 100644 index 00000000..3985bfea --- /dev/null +++ b/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js @@ -0,0 +1,67 @@ +import React, { useState } from "react"; +import { StyleSheet, Text } from "react-native"; +import { Modal, TextInput } from "react-native-paper"; +import { + RadioButton, + RadioButtonGroup, +} from "../../../../components/RadioButton"; + +const SetTrackChaptersDialog = ({ + trackItem, + trackChaptersDialog, + setTrackChaptersDialog, + updateTrackChapters, + theme, +}) => { + const [trackChapters, setTrackChapters] = useState( + trackItem.my_list_status.num_chapters_read + ); + + return ( + setTrackChaptersDialog(false)} + contentContainerStyle={[ + styles.containerStyle, + { backgroundColor: theme.colorPrimary }, + ]} + > + + Chapters + + setTrackChapters(text ? +text : "")} + onSubmitEditing={() => updateTrackChapters(trackChapters)} + mode="outlined" + keyboardType="numeric" + theme={{ + colors: { + primary: theme.colorAccent, + placeholder: theme.textColorHint, + text: theme.textColorPrimary, + background: "transparent", + }, + }} + underlineColor={theme.textColorHint} + dense + /> + + ); +}; + +export default SetTrackChaptersDialog; + +const styles = StyleSheet.create({ + containerStyle: { + margin: 30, + padding: 20, + borderRadius: 8, + }, + dialogTitle: { + fontSize: 18, + marginBottom: 16, + }, +}); diff --git a/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js b/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js new file mode 100644 index 00000000..4ae5d456 --- /dev/null +++ b/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js @@ -0,0 +1,78 @@ +import React from "react"; +import { StyleSheet, Text } from "react-native"; +import { Modal } from "react-native-paper"; +import { + RadioButton, + RadioButtonGroup, +} from "../../../../components/RadioButton"; + +const SetTrackScoreDialog = ({ + trackItem, + trackScoreDialog, + setTrackScoreDialog, + updateTrackScore, + theme, +}) => { + const getScoreLabel = (score) => { + const myanimeListScores = { + 0: "No Score", + 1: "Apalling", + 2: "Horrible", + 3: "Very Bad", + 4: "Bad", + 5: "Average", + 6: "Fine", + 7: "Good", + 8: "Very Good", + 9: "Great", + 10: "Masterpiece", + }; + + return `(${score}) ${myanimeListScores[score]}`; + }; + + return ( + setTrackScoreDialog(false)} + contentContainerStyle={[ + styles.containerStyle, + { backgroundColor: theme.colorPrimary }, + ]} + theme={{ colors: { backdrop: "rgba(0,0,0,0.25)" } }} + > + + Score + + + {[...Array(11).keys()].map((item, index) => ( + + ))} + + + ); +}; + +export default SetTrackScoreDialog; + +const styles = StyleSheet.create({ + containerStyle: { + margin: 30, + padding: 20, + borderRadius: 8, + }, + dialogTitle: { + fontSize: 18, + marginBottom: 16, + }, +}); diff --git a/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js b/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js new file mode 100644 index 00000000..5439e000 --- /dev/null +++ b/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js @@ -0,0 +1,67 @@ +import React from "react"; +import { StyleSheet, Text } from "react-native"; +import { Modal } from "react-native-paper"; +import { + RadioButton, + RadioButtonGroup, +} from "../../../../components/RadioButton"; + +const SetTrackStatusDialog = ({ + trackItem, + trackStatusDialog, + setTrackStatusDialog, + updateTrackStatus, + theme, +}) => { + const myAnimeListStatus = { + reading: "Reading", + completed: "Completed", + on_hold: "On Hold", + dropped: "Dropped", + plan_to_read: "Plan to read", + }; + + return ( + setTrackStatusDialog(false)} + contentContainerStyle={[ + styles.containerStyle, + { backgroundColor: theme.colorPrimary }, + ]} + > + + Status + + + {Object.keys(myAnimeListStatus).map((key, index) => ( + + ))} + + + ); +}; + +export default SetTrackStatusDialog; + +const styles = StyleSheet.create({ + containerStyle: { + margin: 30, + padding: 20, + borderRadius: 8, + }, + dialogTitle: { + fontSize: 18, + marginBottom: 16, + }, +}); diff --git a/src/screens/Novel/components/Tracker/TrackSearchDialog.js b/src/screens/Novel/components/Tracker/TrackSearchDialog.js new file mode 100644 index 00000000..d602de6b --- /dev/null +++ b/src/screens/Novel/components/Tracker/TrackSearchDialog.js @@ -0,0 +1,184 @@ +import React, { useEffect, useState } from "react"; +import { StyleSheet, Text, View, Image, ActivityIndicator } from "react-native"; +import { Button, Modal, TextInput, TouchableRipple } from "react-native-paper"; +import { searchNovels } from "../../../../services/Trackers/myAnimeList"; +import { useSelector, useDispatch } from "react-redux"; +import { ScrollView } from "react-native-gesture-handler"; +import { trackNovel } from "../../../../redux/tracker/tracker.actions"; + +const TrackSearchDialog = ({ + trackSearchDialog, + setTrackSearchDialog, + novelId, + novelName, + theme, +}) => { + const [loading, setLoading] = useState(true); + const [searchResults, setSearchResults] = useState([]); + const [searchText, setSearchText] = useState(novelName); + + const [selectedNovel, setSelectedNovel] = useState(); + + const tracker = useSelector((state) => state.trackerReducer.tracker); + + const dispatch = useDispatch(); + + const getSearchresults = async () => { + const res = await searchNovels(searchText, tracker.access_token); + setSearchResults(res); + setLoading(false); + }; + + useEffect(() => { + trackSearchDialog && getSearchresults(); + }, [trackSearchDialog]); + + const renderSearchResultCard = (item) => ( + setSelectedNovel(item.node)} + rippleColor={theme.rippleColor} + borderless + > + <> + + + {item.node.title} + + + + ); + + return ( + setTrackSearchDialog(false)} + contentContainerStyle={[ + styles.containerStyle, + { backgroundColor: theme.colorPrimary }, + ]} + theme={{ colors: { backdrop: "rgba(0,0,0,0.25)" } }} + > + setSearchText(text)} + onSubmitEditing={getSearchresults} + theme={{ + colors: { + primary: theme.colorAccent, + text: theme.textColorPrimary, + background: "transparent", + }, + }} + underlineColor={theme.textColorHint} + right={ + setSearchText("")} + /> + } + /> + + {loading ? ( + + ) : ( + searchResults && + searchResults.data && + searchResults.data.map((result) => + renderSearchResultCard(result) + ) + )} + + + + + + + + + + ); +}; + +export default TrackSearchDialog; + +const styles = StyleSheet.create({ + containerStyle: { + padding: 20, + margin: 20, + borderRadius: 6, + }, +}); diff --git a/src/screens/Novel/components/Tracker/TrackSheet.js b/src/screens/Novel/components/Tracker/TrackSheet.js new file mode 100644 index 00000000..97c482d5 --- /dev/null +++ b/src/screens/Novel/components/Tracker/TrackSheet.js @@ -0,0 +1,180 @@ +import React, { useState, useEffect } from "react"; +import { StyleSheet, View, ToastAndroid } from "react-native"; +import { Portal } from "react-native-paper"; +import Bottomsheet from "rn-sliding-up-panel"; + +import { useSelector, useDispatch } from "react-redux"; +import { updateTracker } from "../../../../redux/tracker/tracker.actions"; + +import TrackSearchDialog from "./TrackSearchDialog"; +import SetTrackStatusDialog from "./SetTrackStatusDialog"; +import SetTrackScoreDialog from "./SetTrackScoreDialog"; +import SetTrackChaptersDialog from "./SetTrackChaptersDialog"; +import { AddMalTrackingCard, MalTrackItemCard } from "./MyAnimeListCards"; + +const TrackSheet = ({ bottomSheetRef, novelId, novelName, theme }) => { + const tracker = useSelector((state) => state.trackerReducer.tracker); + const trackedNovels = useSelector( + (state) => state.trackerReducer.trackedNovels + ); + const dispatch = useDispatch(); + + const [trackItem, setTrackItem] = useState(); + + useEffect(() => { + setTrackItem(trackedNovels.find((obj) => obj.novelId === novelId)); + }, [trackedNovels, novelId]); + + const [trackSearchDialog, setTrackSearchDialog] = useState(false); + const [trackStatusDialog, setTrackStatusDialog] = useState(false); + const [trackChaptersDialog, setTrackChaptersDialog] = useState(false); + const [trackScoreDialog, setTrackScoreDialog] = useState(false); + + const getStatus = (status) => { + const myAnimeListStatus = { + reading: "Reading", + completed: "Completed", + on_hold: "On Hold", + dropped: "Dropped", + plan_to_read: "Plan to read", + }; + + return myAnimeListStatus[status]; + }; + + const updateTrackChapters = (newChapters) => { + if (newChapters !== "") { + setTrackItem({ + ...trackItem, + my_list_status: { + ...trackItem.my_list_status, + num_chapters_read: newChapters, + }, + }); + + dispatch( + updateTracker(trackItem.id, tracker.access_token, { + ...trackItem.my_list_status, + num_chapters_read: newChapters, + }) + ); + + setTrackChaptersDialog(false); + } else { + ToastAndroid.show("Enter a valid number", ToastAndroid.SHORT); + } + }; + + const updateTrackStatus = (newStatus) => { + setTrackItem({ + ...trackItem, + my_list_status: { + ...trackItem.my_list_status, + status: newStatus, + }, + }); + + dispatch( + updateTracker(trackItem.id, tracker.access_token, { + ...trackItem.my_list_status, + status: newStatus, + }) + ); + + setTrackStatusDialog(false); + }; + + const updateTrackScore = (newScore) => { + setTrackItem({ + ...trackItem, + my_list_status: { + ...trackItem.my_list_status, + score: newScore, + }, + }); + + dispatch( + updateTracker(trackItem.id, tracker.access_token, { + ...trackItem.my_list_status, + score: newScore, + }) + ); + + setTrackScoreDialog(false); + }; + + return ( + <> + + + {!trackItem ? ( + + ) : ( + + )} + + + + {trackItem ? ( + <> + + + + + ) : ( + + )} + + + ); +}; + +export default TrackSheet; + +const styles = StyleSheet.create({ + contentContainer: { flex: 1 }, +}); diff --git a/src/screens/Updates/Updates.js b/src/screens/Updates/Updates.js new file mode 100644 index 00000000..5b63dd46 --- /dev/null +++ b/src/screens/Updates/Updates.js @@ -0,0 +1,163 @@ +import React, { useState, useEffect, useCallback } from "react"; +import { + StyleSheet, + View, + FlatList, + ActivityIndicator, + RefreshControl, + Button, + Text, +} from "react-native"; +import { useFocusEffect } from "@react-navigation/native"; +import { useDispatch, useSelector } from "react-redux"; +import EmptyView from "../../components/EmptyView"; +import { + getUpdatesAction, + updateLibraryAction, +} from "../../redux/updates/updates.actions"; +import { Appbar } from "./components/Appbar"; +import UpdatesItem from "./components/UpdatesItem"; +import { useTheme } from "../../hooks/reduxHooks"; +import { Searchbar } from "../../components/Searchbar"; + +import moment from "moment"; +import { dateFormat } from "../../services/utils/constants"; + +const Updates = ({ navigation }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + const { updates, loading } = useSelector((state) => state.updatesReducer); + + const [searchText, setSearchText] = useState(""); + const [searchResults, setSearchResults] = useState([]); + const [refreshing, setRefreshing] = useState(false); + + useFocusEffect( + useCallback(() => { + dispatch(getUpdatesAction()); + }, [getUpdatesAction]) + ); + + const onRefresh = async () => { + setRefreshing(true); + dispatch(updateLibraryAction()); + setRefreshing(false); + }; + + const onPress = (item) => + navigation.navigate("Chapter", { + chapterId: item.chapterId, + chapterUrl: item.chapterUrl, + sourceId: item.sourceId, + novelUrl: item.novelUrl, + chapterName: item.chapterName, + novelId: item.novelId, + novelName: item.novelName, + bookmark: item.bookmark, + }); + + const renderItem = ({ item }) => ( + onPress(item)} /> + ); + + const ListFooterComponent = () => + loading && ; + + const ListEmptyComponent = () => + !loading && ( + + ); + + const refreshControl = () => ( + + ); + + const clearSearchbar = () => { + setSearchText(""); + }; + + const onChangeText = (text) => { + setSearchText(text); + let results = []; + + text !== "" && + updates.map((item) => { + const date = item.date; + const chapters = item.chapters.filter((chapter) => + chapter.novelName.toLowerCase().includes(text.toLowerCase()) + ); + + if (chapters.length > 0) { + results.push({ + date, + chapters, + }); + } + }); + + setSearchResults(results); + }; + + return ( + + dispatch(updateLibraryAction()), + }, + ]} + /> + index.toString()} + renderItem={({ item }) => ( + + {moment(item.date).calendar(null, dateFormat)} + + } + data={item.chapters} + keyExtractor={(item) => item.updateId.toString()} + renderItem={renderItem} + /> + )} + ListFooterComponent={ListFooterComponent()} + ListEmptyComponent={ListEmptyComponent()} + refreshControl={refreshControl()} + /> + + ); +}; + +export default Updates; + +const styles = StyleSheet.create({ + container: { flex: 1 }, + flatList: { flexGrow: 1, paddingVertical: 8 }, +}); diff --git a/src/screens/Updates/components/Appbar.js b/src/screens/Updates/components/Appbar.js new file mode 100644 index 00000000..64d214ac --- /dev/null +++ b/src/screens/Updates/components/Appbar.js @@ -0,0 +1,17 @@ +import React from "react"; +import { Appbar as MaterialAppbar } from "react-native-paper"; + +import { updateLibraryAction } from "../../../redux/updates/updates.actions"; + +export const Appbar = ({ theme, dispatch }) => ( + + + dispatch(updateLibraryAction())} + /> + +); diff --git a/src/screens/Updates/components/UpdatesItem.js b/src/screens/Updates/components/UpdatesItem.js new file mode 100644 index 00000000..5507028b --- /dev/null +++ b/src/screens/Updates/components/UpdatesItem.js @@ -0,0 +1,66 @@ +import React from "react"; +import { View, Text, Image, StyleSheet } from "react-native"; +import FastImage from "react-native-fast-image"; +import { TouchableRipple } from "react-native-paper"; + +const UpdateCard = ({ item, theme, onPress }) => { + return ( + + <> + + + + {item.novelName} + + + {item.chapterName} + + + + + ); +}; + +export default UpdateCard; + +const styles = StyleSheet.create({ + updateCard: { + flexDirection: "row", + alignItems: "center", + paddingVertical: 8, + paddingHorizontal: 16, + }, + updateIcon: { + width: 42, + height: 42, + borderRadius: 4, + }, + chapterDetails: { + flex: 1, + marginLeft: 16, + }, +}); diff --git a/src/services/Source/source.js b/src/services/Source/source.js new file mode 100644 index 00000000..16a97f7a --- /dev/null +++ b/src/services/Source/source.js @@ -0,0 +1,56 @@ +import { showToast } from "../../hooks/showToast"; +import { getSource } from "../../sources/sources"; + +export const fetchSources = async () => { + const url = `https://lnreader-extensions.vercel.app/api/`; + + let res = await fetch(url); + let sources = await res.json(); + + return sources; +}; + +export const fetchNovel = async (sourceId, novelUrl) => { + const source = getSource(sourceId); + + const res = await source.parseNovelAndChapters(novelUrl); + + const novel = { + novelUrl: res.novelUrl, + sourceUrl: res.url, + source: res.sourceName, + sourceId: res.sourceId, + novelName: res.novelName, + novelCover: res.novelCover, + novelSummary: res.summary, + author: res.author, + artist: res.artist, + status: res.status, + genre: res.genre, + followed: 0, + chapters: res.chapters, + }; + + // console.log(novel); + + return novel; +}; + +export const fetchChapter = async (sourceId, novelUrl, chapterUrl) => { + const source = getSource(sourceId); + + let chapter = await source.parseChapter(novelUrl, chapterUrl); + + return chapter; +}; + +export const fetchChapters = async (sourceId, novelUrl) => { + const url = `https://lnreader-extensions.vercel.app/api/${sourceId}/novel/${novelUrl}`; + + let data = await fetch(url); + let res = await data.json(); + + const chapters = res.novelChapters; + + return chapters; +}; diff --git a/src/services/Trackers/myAnimeList.js b/src/services/Trackers/myAnimeList.js new file mode 100644 index 00000000..ee816569 --- /dev/null +++ b/src/services/Trackers/myAnimeList.js @@ -0,0 +1,171 @@ +import * as Linking from "expo-linking"; +import qs from "qs"; + +const clientId = "d2f499825d64b0213bb77e78193ccbb1"; + +const baseOAuthUrl = "https://myanimelist.net/v1/oauth2/authorize"; +const baseApiUrl = "https://api.myanimelist.net/v2"; + +const pkceChallenger = () => { + const MAX_LENGTH = 88; + let code = ""; + + const codes = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + + const randomPicker = () => Math.floor(Math.random() * codes.length); + + for (let index = 0; index < MAX_LENGTH; index++) { + code += codes.charAt(randomPicker()); + } + return code; +}; + +const codeChallenge = pkceChallenger(); + +const redirectUri = Linking.makeUrl(); + +export const authUrl = `${baseOAuthUrl}?response_type=code&client_id=${clientId}&code_challenge_method=plain&code_challenge=${codeChallenge}`; + +const tokenUrl = `https://myanimelist.net/v1/oauth2/token`; + +export const myAnimeListConfig = { + clientId, + redirectUri, + authUrl, + codeChallenge, + tokenUrl, +}; + +export const getAccessToken = async (code, codeChallenge) => { + const headers = { + "Content-Type": "application/x-www-form-urlencoded", + }; + + const body = { + client_id: myAnimeListConfig.clientId, + grant_type: "authorization_code", + code, + code_verifier: codeChallenge, + }; + + const response = await fetch(myAnimeListConfig.tokenUrl, { + headers, + method: "POST", + body: qs.stringify(body), + }); + + let tokenResponse = await response.json(); + + tokenResponse = { + ...tokenResponse, + expires_in: new Date(Date.now() + tokenResponse.expires_in), + }; + + console.log(tokenResponse); + + return tokenResponse; +}; + +export const searchNovels = async (novelName, bearerToken) => { + const searchrl = `${baseApiUrl}/manga?q=${novelName}`; + + const headers = { + Authorization: "Bearer " + bearerToken, + "Content-Type": "application/x-www-form-urlencoded", + }; + + const res = await fetch(searchrl, { method: "GET", headers }); + const searchResults = await res.json(); + + return searchResults; +}; + +export const findListItem = async (malId, bearerToken) => { + const url = `${baseApiUrl}/manga/${malId}?fields=id,num_chapters,my_list_status{start_date,finish_date}`; + + const headers = { + Authorization: "Bearer " + bearerToken, + "Content-Type": "application/x-www-form-urlencoded", + }; + + const res = await fetch(url, { method: "GET", headers }); + const listItem = await res.json(); + + if (!listItem.my_list_status) { + listItem.my_list_status = { + status: "reading", + score: 0, + num_chapters_read: 0, + }; + } + return listItem; +}; + +export const updateItem = async (malId, bearerToken, body) => { + const url = `${baseApiUrl}/manga/${malId}/my_list_status`; + + const headers = { + Authorization: "Bearer " + bearerToken, + "Content-Type": "application/x-www-form-urlencoded", + }; + + const res = await fetch(url, { + method: "PUT", + headers, + body: qs.stringify(body), + }); + + const listItem = await res.json(); + console.log(listItem); + return listItem; +}; + +export const updateMalChaptersRead = async (malId, bearerToken, body) => { + const url = `${baseApiUrl}/manga/${malId}/my_list_status`; + + const headers = { + Authorization: "Bearer " + bearerToken, + "Content-Type": "application/x-www-form-urlencoded", + }; + + const res = await fetch(url, { + method: "PUT", + headers, + body: qs.stringify(body), + }); + + const listItem = await res.json(); + console.log(listItem.num_chapters_read); + return listItem.num_chapters_read; +}; + +const revalidateMalToken = async (refreshToken) => { + const headers = { + "Content-Type": "application/x-www-form-urlencoded", + }; + + const body = { + grant_type: "refresh_token", + refresh_token: refreshToken, + }; + + const res = await fetch(url, { + headers, + method: "POST", + body: qs.stringify(body), + }); + + let tokenResponse = res.json(); + + return tokenResponse; +}; + +export const malTokenWatcher = async (tracker) => { + if (tracker) { + const date = new Date(Date.now()); + if (tracker.expires_in < date) { + return await revalidateMalToken(tracker.refresh_token); + } + } +}; diff --git a/src/services/backup.js b/src/services/backup.js new file mode 100644 index 00000000..6a466582 --- /dev/null +++ b/src/services/backup.js @@ -0,0 +1,76 @@ +import * as DocumentPicker from "expo-document-picker"; +import { StorageAccessFramework } from "expo-file-system"; + +import { getLibrary } from "../database/queries/LibraryQueries"; +import { restoreLibrary } from "../database/queries/NovelQueries"; +import { showToast } from "../hooks/showToast"; + +import * as Notifications from "expo-notifications"; + +Notifications.setNotificationHandler({ + handleNotification: async () => { + return { + shouldShowAlert: true, + shouldPlaySound: true, + shouldSetBadge: true, + }; + }, +}); + +export const createBackup = async () => { + const novels = await getLibrary(); + + const permissions = + await StorageAccessFramework.requestDirectoryPermissionsAsync(); + + if (!permissions.granted) { + return; + } + + const uri = permissions.directoryUri; + + if (uri) { + const fileUri = await StorageAccessFramework.createFileAsync( + uri, + "backup", + "application/json" + ); + + await StorageAccessFramework.writeAsStringAsync( + fileUri, + JSON.stringify(novels) + ); + + showToast("Backup created"); + } +}; + +export const restoreBackup = async () => { + const backup = await DocumentPicker.getDocumentAsync(); + + Notifications.scheduleNotificationAsync({ + content: { title: "Restoring backup" }, + trigger: null, + }); + + if (backup.uri) { + let novels = await StorageAccessFramework.readAsStringAsync(backup.uri); + novels = await JSON.parse(novels); + + novels.map((novel, index) => { + setTimeout(async () => { + if (index + 1 === novels.length) { + Notifications.scheduleNotificationAsync({ + content: { + title: "Library Restored", + body: novels.length + " novels restored", + }, + trigger: null, + }); + } + + await restoreLibrary(novel); + }, 1000 * index); + }); + } +}; diff --git a/src/services/updates.js b/src/services/updates.js new file mode 100644 index 00000000..13ebbe90 --- /dev/null +++ b/src/services/updates.js @@ -0,0 +1,159 @@ +import * as SQLite from "expo-sqlite"; +const db = SQLite.openDatabase("lnreader.db"); + +import { getLibrary } from "../database/queries/LibraryQueries"; +import { fetchChapters, fetchNovel } from "../services/Source/source"; +import * as Notifications from "expo-notifications"; + +Notifications.setNotificationHandler({ + handleNotification: async () => { + return { + shouldShowAlert: true, + shouldPlaySound: true, + shouldSetBadge: true, + }; + }, +}); + +const updateNovelDetails = async (novel, novelId) => { + db.transaction((tx) => { + tx.executeSql( + "UPDATE novels SET novelName = ?, novelCover = ?, novelSummary = ?, author = ?, artist = ?, genre = ?, status = ? WHERE novelId = ?", + [ + novel.novelName, + novel.novelCover, + novel.novelSummary, + novel.author, + novel.artist, + novel.genre, + novel.status, + novelId, + ], + (txObj, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + }); +}; + +export const updateNovel = async (sourceId, novelUrl, novelId) => { + let novel = await fetchNovel(sourceId, novelUrl); + + await updateNovelDetails(novel, novelId); + + db.transaction((tx) => { + novel.chapters.map((chapter) => + tx.executeSql( + "INSERT OR IGNORE INTO chapters (chapterUrl, chapterName, releaseDate, novelId) values (?, ?, ?, ?)", + [ + chapter.chapterUrl, + chapter.chapterName, + chapter.releaseDate, + novelId, + ], + (txObj, { insertId }) => { + if (insertId !== -1) { + tx.executeSql( + "INSERT OR IGNORE INTO updates (chapterId, novelId, updateTime) values (?, ?, (datetime('now','localtime')))", + [insertId, novelId], + (txObj, res) => { + console.log( + "Inserted Chapter Id -> " + + insertId + + " Novel Id " + + novelId + ); + }, + (txObj, error) => console.log("Error ", error) + ); + } + }, + (txObj, error) => console.log("Error ", error) + ) + ); + }); +}; + +export const updateNovelChapters = async (sourceId, novelUrl, novelId) => { + let chapters = await fetchChapters(sourceId, novelUrl); + + db.transaction((tx) => { + chapters.map((chapter) => + tx.executeSql( + "INSERT OR IGNORE INTO chapters (chapterUrl, chapterName, releaseDate, novelId) values (?, ?, ?, ?)", + [ + chapter.chapterUrl, + chapter.chapterName, + chapter.releaseDate, + novelId, + ], + (txObj, { insertId }) => { + if (insertId !== -1) { + console.log( + "Inserted Chapter " + + chapter.chapterUrl + + " Chapter Name " + + chapter.chapterName + + " Novel Id " + + novelId + ); + tx.executeSql( + "INSERT OR IGNORE INTO updates (chapterId, novelId, updateTime) values (?, ?, (datetime('now','localtime')))", + [insertId, novelId], + (txObj, res) => {}, + (txObj, error) => console.log("Error ", error) + ); + } + }, + (txObj, error) => console.log("Error ", error) + ) + ); + }); +}; + +export const updateAllNovels = async () => { + const libraryNovels = await getLibrary(); + + Notifications.scheduleNotificationAsync({ + identifier: "updatingNotif", + content: { title: "Updating library" }, + trigger: null, + }); + + libraryNovels.map((novel, index) => + setTimeout(async () => { + await updateNovelChapters( + novel.sourceId, + novel.novelUrl, + novel.novelId + ); + console.log(novel.novelName + " Updated"); + + if (index + 1 === libraryNovels.length) { + Notifications.scheduleNotificationAsync({ + content: { + title: "Library Updated", + body: libraryNovels.length + " novels updated", + }, + trigger: null, + }); + } + }, 3000 * index) + ); +}; + +export const parseChapterNumber = (chapterName) => { + chapterName = chapterName.toLowerCase(); + chapterName = chapterName.replace(/volume (\d+)/, ""); + + const basic = chapterName.match(/ch (\d+)/); + + const occurrence = chapterName.match(/\d+/); + + if (basic) { + return basic[0]; + } else if (occurrence) { + return occurrence[0]; + } else { + return 0; + } +}; diff --git a/src/services/utils/constants.js b/src/services/utils/constants.js new file mode 100644 index 00000000..76d56601 --- /dev/null +++ b/src/services/utils/constants.js @@ -0,0 +1,18 @@ +export const fonts = [ + { fontFamily: "", name: "Original" }, + { fontFamily: "arbutus-slab", name: "Arbutus Slab" }, + { fontFamily: "domine", name: "Domine" }, + { fontFamily: "lato", name: "Lato" }, + { fontFamily: "noto-sans", name: "Noto Sans" }, + { fontFamily: "open-sans", name: "Open Sans" }, + { fontFamily: "pt-serif", name: "PT Serif" }, +]; + +export const dateFormat = { + sameDay: "[Today]", + nextDay: "[Tomorrow]", + nextWeek: "dddd", + lastDay: "[Yesterday]", + lastWeek: "[Last] dddd", + sameElse: "DD/MM/YYYY", +}; diff --git a/src/services/utils/helpers.js b/src/services/utils/helpers.js new file mode 100644 index 00000000..024a0347 --- /dev/null +++ b/src/services/utils/helpers.js @@ -0,0 +1,27 @@ +import { useWindowDimensions } from "react-native"; + +export const parseChapterNumber = (chapterName) => { + chapterName = chapterName.toLowerCase(); + chapterName = chapterName.replace(/volume (\d+)/, ""); + + const basic = chapterName.match(/[ch]i (\d+)/); + const occurrence = chapterName.match(/\d+/); + + if (basic) { + return basic[0]; + } else if (occurrence) { + return occurrence[0]; + } else { + return 0; + } +}; + +export const getDeviceOrientation = () => { + const window = useWindowDimensions(); + + if (window.width > window.height) { + return "landscape"; + } else { + return "potrait"; + } +}; diff --git a/src/sources/en/boxnovel.js b/src/sources/en/boxnovel.js new file mode 100644 index 00000000..251ec64f --- /dev/null +++ b/src/sources/en/boxnovel.js @@ -0,0 +1,206 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://boxnovel.com/novel"; +const searchUrl = "https://boxnovel.com/"; + +const sourceId = 1; + +const popularNovels = async (page) => { + let url = `${baseUrl}/page/${page}/?m_orderby=rating`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".page-item-detail").each(function (result) { + const novelName = $(this).find("h5 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h5 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}/`, ""); + + const novel = { + sourceId, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/${novelUrl}`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + $(".post-title > h3 > span").remove(); + + novel.sourceId = 1; + + novel.sourceName = "BoxNovel"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".post-title > h3") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $(".summary_image > a > img").attr("src"); + + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + switch (detailName) { + case "Genre(s)": + novel.genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author(s)": + novel.author = detail.trim(); + break; + case "Artist(s)": + novel.status = detail.trim(); + break; + } + }); + + $(".description-summary > div.summary__content").find("em").remove(); + + novel.summary = $(".description-summary > div.summary__content") + .text() + .replace(/[\t\n]/g, ""); + + let novelChapters = []; + + $(".wp-manga-chapter").each(function (result) { + const chapterName = $(this) + .find("a") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + const releaseDate = $(this) + .find("span") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + const chapterUrl = $(this).find("a").attr("href").replace(url, ""); + + const chapter = { chapterName, releaseDate, chapterUrl }; + + novelChapters.push(chapter); + }); + + novel.chapters = novelChapters.reverse(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}/${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("div.text-left > h3").text(); + let chapterText = $(".reading-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($(".nav-next").length) { + nextChapter = $(".nav-next") + .find("a") + .attr("href") + .replace(baseUrl + "/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($(".nav-previous").length) { + prevChapter = $(".nav-previous") + .find("a") + .attr("href") + .replace(baseUrl + "/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${searchUrl}?s=${searchTerm}&post_type=wp-manga&m_orderby=rating`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".c-tabs-item__content").each(function (result) { + const novelName = $(this).find("h4 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h4 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}/`, ""); + + const novel = { + sourceId, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const BoxNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default BoxNovelScraper; diff --git a/src/sources/en/comrademao.js b/src/sources/en/comrademao.js new file mode 100644 index 00000000..4fa9238f --- /dev/null +++ b/src/sources/en/comrademao.js @@ -0,0 +1,198 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const sourceId = 27; + +const sourceName = "Comrade Mao"; + +const baseUrl = "https://comrademao.com/"; + +const popularNovels = async (page) => { + let url = baseUrl + "novel/page/" + page; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("article.blog-article").each(function (result) { + const novelName = $(this).find("h5 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h5 > a").attr("href"); + novelUrl = novelUrl.replace(baseUrl + "novel/", ""); + + const novel = { + sourceId, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = baseUrl + "novel/" + novelUrl; + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 27; + + novel.sourceName = sourceName; + + novel.url = url; + + novel.novelUrl = novelUrl; + + function getNovelName(y) { + return y + .replace("-", " ") + .replace(/(?:^|\s)\S/g, (a) => a.toUpperCase()); + } + + novelName = getNovelName(novelUrl); + novel.novelName = novelName; + + novel.novelCover = $("#thumbnail > img").attr("src"); + + novel.summary = $("div#Description").text(); + + novel.genre = $("div#Genre") + .text() + .replace(/Genre:|\s/g, ""); + + novel.status = $("div#Status") + .text() + .replace(/Status:|\s/g, ""); + + novel.author = $("div#Publisher") + .text() + .replace(/Publisher:|\s/g, ""); + + let novelChapters = []; + + const latestChapter = $("tbody > tr") + .first() + .next() + .find("td > a") + .text() + .replace(/^\D+/g, ""); + + for (let i = 1; i <= latestChapter; i++) { + const chapterName = "Chapter " + i; + const releaseDate = null; + const chapterUrl = novelUrl.slice(0, -1) + "-chapter-" + i + "/"; + + const chapter = { + chapterName, + releaseDate, + chapterUrl, + }; + + novelChapters.push(chapter); + } + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}mtl/${novelUrl}/${chapterUrl}`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let chapterName = $(".entry-title").text(); + + let chapterText = $(".entry-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($(".nav-next").find("a").length) { + nextChapter = $(".nav-next") + .find("a") + .attr("href") + .replace(baseUrl + "mtl/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($(".nav-previous").find("a").length) { + prevChapter = $(".nav-previous") + .find("a") + .attr("href") + .replace(baseUrl + "mtl/" + novelUrl + "/", ""); + } + + novelUrl = novelUrl + "/"; + chapterUrl = chapterUrl + "/"; + + const chapter = { + sourceId, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = baseUrl + "?s=" + searchTerm + "&post_type=novel"; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("article.blog-article").each(function (result) { + const novelName = $(this).find("h5 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h5 > a").attr("href"); + novelUrl = novelUrl.replace(baseUrl + "novel/", ""); + + const novel = { + sourceId, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const ComradeMaoScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default ComradeMaoScraper; diff --git a/src/sources/en/fastnovel.js b/src/sources/en/fastnovel.js new file mode 100644 index 00000000..73a1428c --- /dev/null +++ b/src/sources/en/fastnovel.js @@ -0,0 +1,177 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://fastnovel.net"; +const searchUrl = `https://fastnovel.net/search/`; + +const popularNovels = async (page) => { + const url = `${baseUrl}/list/most-popular.html?page=${page}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".film-item").each(function (result) { + const novelName = $(this).find(".name").text(); + const novelCover = $(this).find(".img").attr("data-original"); + const novelUrl = $(this).find("a").attr("href").substring(1); + + const novel = { + sourceId: 3, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 3; + + novel.sourceName = "FastNovel"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1").text(); + + novel.novelCover = $(".book-cover").attr("data-original"); + + novel.summary = $("div.film-content > p").text(); + + novel.author = $("li > label") + .filter(function () { + return $(this).text().trim() === "Author:"; + }) + .next() + .text(); + + novel.genre = $("li") + .filter(function () { + return $(this).find("label").text().trim() === "Genre:"; + }) + .text() + .replace("Genre:", ""); + + novel.artist = null; + + novel.Status = null; + + let novelChapters = []; + + $(".chapter").each(function (result) { + const chapterName = $(this).text(); + const releaseDate = null; + let chapterUrl = $(this).attr("href"); + chapterUrl = chapterUrl.replace(`/${novelUrl}/`, ""); + + const novel = { + chapterName, + releaseDate, + chapterUrl, + }; + + novelChapters.push(novel); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}/${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $(".episode-name").text(); + let chapterText = $("#chapter-body").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + nextChapter = $("div.btn-group > a") + .filter(function () { + return $(this).text().trim() === "Next Chapter"; + }) + .attr("href") + .replace("/", ""); + + let prevChapter = null; + + prevChapter = $("div.btn-group > a") + .filter(function () { + return $(this).text().trim() === "Prev Chapter"; + }) + .attr("href") + .replace("/", ""); + + const chapter = { + sourceId: 3, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".film-item").each(function (result) { + const novelName = $(this).find("div.title > p.name").text(); + const novelCover = $(this).find(".img").attr("data-original"); + const novelUrl = $(this).find("a").attr("href").substring(1); + + const novel = { + sourceId: 3, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const fastNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default fastNovelScraper; diff --git a/src/sources/en/foxaholic.js b/src/sources/en/foxaholic.js new file mode 100644 index 00000000..b925c85b --- /dev/null +++ b/src/sources/en/foxaholic.js @@ -0,0 +1,219 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://foxaholic.com/"; + +const popularNovels = async (page) => { + let url = baseUrl + "novel/page/" + page + "/?m_orderby=rating"; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".page-item-detail").each(function (result) { + const novelName = $(this).find(".h5 > a").text(); + const novelCover = $(this).find("img").attr("data-src"); + + let novelUrl = $(this).find(".h5 > a").attr("href").split("/")[4]; + novelUrl += "/"; + + const novel = { + sourceId: 22, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}novel/${novelUrl}`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 22; + + novel.sourceName = "Foxaholic"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".post-title > h1") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $(".summary_image > a > img").attr("data-src"); + + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + switch (detailName) { + case "Genre": + novel.genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author": + novel.author = detail.trim(); + break; + case "Artist": + novel.status = detail.trim(); + break; + } + }); + + $(".description-summary > div.summary__content").find("em").remove(); + + novel.summary = $(".description-summary > div.summary__content") + .text() + .trim(); + + let novelChapters = []; + + const novelId = $("#manga-chapters-holder").attr("data-id"); + + console.log(novelId); + + let formData = new FormData(); + formData.append("action", "manga_get_chapters"); + formData.append("manga", novelId); + + const data = await fetch( + "https://www.foxaholic.com/wp-admin/admin-ajax.php", + { + method: "POST", + body: formData, + } + ); + const text = await data.text(); + console.log(text); + + $ = cheerio.load(text); + + $(".wp-manga-chapter").each(function (result) { + chapterName = $(this) + .find("a") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + releaseDate = $(this).find("span").text().trim(); + + chapterUrl = $(this).find("a").attr("href").split("/"); + + chapterUrl[6] + ? (chapterUrl = chapterUrl[5] + "/" + chapterUrl[6]) + : (chapterUrl = chapterUrl[5]); + + novelChapters.push({ chapterName, releaseDate, chapterUrl }); + }); + + novel.chapters = novelChapters.reverse(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}novel/${novelUrl}${chapterUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1#chapter-heading").text(); + let chapterText = $(".reading-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($(".nav-next").length) { + nextChapter = $(".nav-next").find("a").attr("href").split("/"); + nextChapter[6] + ? (nextChapter = nextChapter[5] + "/" + nextChapter[6]) + : (nextChapter = nextChapter[5]); + } + + let prevChapter = null; + + if ($(".nav-previous").length) { + prevChapter = $(".nav-previous").find("a").attr("href").split("/"); + prevChapter[6] + ? (prevChapter = prevChapter[5] + "/" + prevChapter[6]) + : (prevChapter = prevChapter[5]); + } + + const chapter = { + sourceId: 22, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}?s=${searchTerm}&post_type=wp-manga`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".c-tabs-item__content").each(function (result) { + const novelName = $(this).find(".h4 > a").text(); + const novelCover = $(this).find("img").attr("data-src"); + + let novelUrl = $(this).find(".h4 > a").attr("href").split("/")[4]; + novelUrl += "/"; + const novel = { + sourceId: 22, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const FoxaHolicScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default FoxaHolicScraper; diff --git a/src/sources/en/freewebnovel.js b/src/sources/en/freewebnovel.js new file mode 100644 index 00000000..7109002a --- /dev/null +++ b/src/sources/en/freewebnovel.js @@ -0,0 +1,213 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://freewebnovel.com/"; + +const popularNovels = async (page) => { + let url = baseUrl + "completed-novel/" + page; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".li-row").each(function (result) { + const novelName = $(this).find(".tit").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this) + .find("h3 > a") + .attr("href") + .replace(".html", "") + .slice(1); + + const novel = { + sourceId: 13, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}${novelUrl}.html`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 13; + + novel.sourceName = "FreeWebNovel"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1.tit").text(); + + novel.novelCover = $(".pic > img").attr("src"); + + novel.genre = $("[title=Genre]") + .next() + .text() + .replace(/[\t\n]/g, ""); + + novel.author = $("[title=Author]") + .next() + .text() + .replace(/[\t\n]/g, ""); + + novel.artist = null; + + novel.status = $("[title=Status]") + .next() + .text() + .replace(/[\t\n]/g, ""); + + // novel.Alternative = $("[title='Alternative names']") + // .next() + // .text() + // .replace(/[\t\n]/g, ""); + + let novelSummary = $(".inner").text(); + novel.summary = novelSummary; + + let novelChapters = []; + + let latestChapter; + + $("h3.tit").each(function (res) { + if ($(this).find("a").text() === novel.novelName) { + // console.log($(this).find("a").text()); + // console.log(novel.novelName); + latestChapter = $(this).next().find("span.s3").text().match(/\d+/); + } + }); + + latestChapter = latestChapter[0]; + + for (let i = 1; i <= parseInt(latestChapter); i++) { + const chapterName = "Chapter " + i; + + const releaseDate = null; + + const chapterUrl = "chapter-" + i; + + const chapter = { chapterName, releaseDate, chapterUrl }; + + novelChapters.push(chapter); + } + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${novelUrl}/${chapterUrl}.html`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let chapterName = $("h1.tit").text(); + + let chapterText = $("div.txt").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($("[title='Read Next chapter']").length) { + nextChapter = $("[title='Read Next chapter']") + .attr("href") + .replace("/" + novelUrl + "/", "") + .replace(".html", ""); + } + + let prevChapter = null; + + if ($("[title='Read Privious Chapter']").length) { + prevChapter = $("[title='Read Privious Chapter']") + .attr("href") + .replace("/" + novelUrl + "/", "") + .replace(".html", ""); + } + + chapterUrl = chapterUrl; + + const chapter = { + sourceId: 13, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = baseUrl + "search/"; + + const formData = new FormData(); + formData.append("searchkey", searchTerm); + + const result = await fetch(url, { + method: "POST", + body: formData, + }); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".li-row > .li > .con").each(function (result) { + const novelName = $(this).find(".tit").text(); + const novelCover = $(this).find(".pic > a > img").attr("data-cfsrc"); + + let novelUrl = $(this) + .find("h3 > a") + .attr("href") + .replace(".html", "") + .slice(1); + + novelUrl += "/"; + + const novel = { + sourceId: 13, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const FreeWebNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default FreeWebNovelScraper; diff --git a/src/sources/en/jpmtl.js b/src/sources/en/jpmtl.js new file mode 100644 index 00000000..2de38d11 --- /dev/null +++ b/src/sources/en/jpmtl.js @@ -0,0 +1,183 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://jpmtl.com/"; + +const popularNovels = async (page) => { + let url = + "https://jpmtl.com/v2/book/show/browse?query=&categories=&content_type=0&direction=0&page=" + + page + + "&limit=20&type=5&status=all&language=3&exclude_categories="; + + const result = await fetch(url); + const body = await result.json(); + + let novels = []; + + body.map((item) => { + const novelName = item.title; + const novelCover = item.cover; + const novelUrl = item.id + "/"; + + const novel = { sourceId: 14, novelName, novelCover, novelUrl }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}books/${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 14; + + novel.sourceName = "JPMTL"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1.book-sidebar__title").text(); + + novel.novelCover = $(".book-sidebar").find("img").attr("src"); + + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel[detailName] = detail; + }); + + novel.summary = $(".main-book__synopsis").text(); + + novel.genre = ""; + + $("a.main-book__category").each(function (result) { + novel.genre += $(this).text(); + }); + + novel.author = $(".book-sidebar__author > .book-sidebar__info") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + let novelChapters = []; + + const chapterListUrl = `https://jpmtl.com/v2/chapter/${novelUrl}/list?state=published&structured=true&d`; + + const chapterResult = await fetch(chapterListUrl); + const volumes = await chapterResult.json(); + + volumes.map((volume) => { + volume.chapters.map((chapter) => { + const chapterName = chapter.title; + const releaseDate = chapter.created_at; + const chapterUrl = chapter.id; + + const obj = { + sourceId: 14, + chapterName, + releaseDate, + chapterUrl, + }; + + novelChapters.push(obj); + }); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}books/${novelUrl}${chapterUrl}`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + console.log(url); + + $ = cheerio.load(body); + + const chapterName = $(".chapter-content__title").text(); + let chapterText = $(".chapter-content__content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + let prevChapter = null; + + $(".chapter-wrapper__nav").each(function (result) { + const chId = $(this) + .attr("href") + .replace("/books/" + novelUrl + "/", ""); + if (chId < chapterUrl) { + prevChapter = chId; + } else { + nextChapter = chId; + } + }); + + novelUrl += "/"; + + const chapter = { + sourceId: 14, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `https://jpmtl.com/v2/book/show/browse?query=${searchTerm}&categories=&content_type=2&direction=0&page=1&limit=20&type=5&status=all&language=3&exclude_categories=`; + + const result = await fetch(url); + const body = await result.json(); + + const novels = []; + + body.map((item) => { + const novelName = item.title; + const novelCover = item.cover; + const novelUrl = item.id + "/"; + + const novel = { sourceId: 14, novelName, novelCover, novelUrl }; + + novels.push(novel); + }); + + return novels; +}; + +const JPMTLScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default JPMTLScraper; diff --git a/src/sources/en/kisslightnovels.js b/src/sources/en/kisslightnovels.js new file mode 100644 index 00000000..76b675ca --- /dev/null +++ b/src/sources/en/kisslightnovels.js @@ -0,0 +1,199 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://kisslightnovels.info/"; + +const popularNovels = async (page) => { + const url = `${baseUrl}light-novel/page/${page}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".page-item-detail").each(function (result) { + const novelName = $(this).find("h5 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h5 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}novel/`, ""); + + const novel = { + sourceId: 11, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}novel/${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 11; + + novel.sourceName = "KissLightNovels"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".post-title > h1") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $(".summary_image > a > img").attr("src"); + + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + switch (detailName) { + case "Genre(s)": + novel.genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author(s)": + novel.author = detail.trim(); + break; + case "Artist(s)": + novel.status = detail.trim(); + break; + } + }); + + $(".description-summary > div.summary__content").find("em").remove(); + + novel.summary = $(".description-summary > div.summary__content") + .text() + .replace(/[\t\n]/g, ""); + + let novelChapters = []; + + $(".wp-manga-chapter").each(function (result) { + chapterName = $(this) + .find("a") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + releaseDate = $(this) + .find("span") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + chapterUrl = $(this).find("a").attr("href").replace(url, ""); + + novelChapters.push({ chapterName, releaseDate, chapterUrl }); + }); + + novel.chapters = novelChapters.reverse(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}novel/${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + $("#snippet-box").remove(); + + const chapterName = $("div.text-left > h4").text(); + let chapterText = $(".reading-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($(".nav-next").length) { + nextChapter = $(".nav-next") + .find("a") + .attr("href") + .replace(baseUrl + "novel/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($(".nav-previous").length) { + prevChapter = $(".nav-previous") + .find("a") + .attr("href") + .replace(baseUrl + "novel/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId: 11, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}?s=${searchTerm}&post_type=wp-manga&m_orderby=rating`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".c-tabs-item__content").each(function (result) { + const novelName = $(this).find("h4 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h4 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}novel/`, ""); + + const novel = { + sourceId: 11, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const kissLightNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default kissLightNovelScraper; diff --git a/src/sources/en/lightnovelpub.js b/src/sources/en/lightnovelpub.js new file mode 100644 index 00000000..298b6db5 --- /dev/null +++ b/src/sources/en/lightnovelpub.js @@ -0,0 +1,238 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://www.lightnovelpub.com/"; + +const popularNovels = async (page) => { + let url = baseUrl + "browse/all/popular/all/" + page; + + let headers = new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + "User-Agent": + "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + }); + + const result = await fetch(url, { + method: "GET", + headers: headers, + }); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".novel-item.ads").remove(); + + $(".novel-item").each(function (result) { + const novelName = $(this) + .find(".novel-title") + .text() + .replace(/[\t\n]/g, ""); + + const novelCover = $(this).find("img").attr("data-src"); + + let novelUrl = $(this) + .find(".novel-title > a") + .attr("href") + .replace(`/novel/`, ""); + novelUrl += "/"; + + const novel = { + sourceId: 15, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}novel/${novelUrl}/`; + + let headers = new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + "User-Agent": + "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + }); + + const result = await fetch(url, { + method: "GET", + headers: headers, + }); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 15; + + novel.sourceName = "LightNovelPub"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1.novel-title") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $("figure.cover > img").attr("src"); + + novel.genre = ""; + + $("div.categories > ul > li").each(function (result) { + novel.genre += + $(this) + .text() + .replace(/[\t\n]/g, "") + ","; + }); + + $("div.header-stats > span").each(function (result) { + if ($(this).find("small").text() === "Status") { + novel.Status = $(this).find("strong").text(); + } + }); + + novel.genre = novel.genre.slice(0, -1); + + novel.author = $(".author > a > span").text(); + + novelSummary = $(".summary > .content").html(); + novel.summary = htmlToText(novelSummary).trim(); + + let novelChapters = []; + + let firstChapterNo, totalChapters; + + totalChapters = $(".header-stats > span").first().text().match(/\d+/)[0]; + firstChapterNo = $(".chapter-no").first().text().match(/\d+/)[0]; + + for (let i = firstChapterNo; i <= totalChapters; i++) { + const chapterName = "Chapter " + i; + + const releaseDate = null; + + const chapterUrl = "chapter-" + i; + + const chapter = { chapterName, releaseDate, chapterUrl }; + + novelChapters.push(chapter); + } + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}novel/${novelUrl}/${chapterUrl}`; + + let headers = new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + "User-Agent": + "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + }); + + const result = await fetch(url, { + method: "GET", + headers: headers, + }); + const body = await result.text(); + $ = cheerio.load(body); + + const chapterName = $("h2").text(); + let chapterText = $("#chapter-container").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if (!$("a.nextchap.isDisabled").length) { + nextChapter = $("a.nextchap") + .attr("href") + .replace("/novel/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if (!$("a.prevchap.isDisabled").length) { + prevChapter = $("a.prevchap") + .attr("href") + .replace("/novel/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId: 15, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}lnwsearchlive?inputContent=${searchTerm}`; + + let headers = new Headers({ + Accept: "application/json", + "Content-Type": "application/json", + "User-Agent": + "'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + }); + + const result = await fetch(url, { + method: "GET", + headers: headers, + }); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + let results = JSON.parse($("body").text()); + + $ = cheerio.load(results.resultview); + + $(".novel-item").each(function (result) { + const novelName = $(this).find("h4.novel-title").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").replace(`/novel/`, ""); + novelUrl += "/"; + + const novel = { + sourceId: 15, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const lightNovelPubScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default lightNovelPubScraper; diff --git a/src/sources/en/mtlnovel.js b/src/sources/en/mtlnovel.js new file mode 100644 index 00000000..72c16280 --- /dev/null +++ b/src/sources/en/mtlnovel.js @@ -0,0 +1,196 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://www.mtlnovel.com"; + +const popularNovels = async (page) => { + const url = `${baseUrl}/alltime-rank/page/${page}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.box.wide").each(function (result) { + const novelName = $(this).find("a.list-title").text().slice(4); + const novelCover = $(this).find("amp-img").attr("src"); + + let novelUrl = $(this).find("a.list-title").attr("href"); + novelUrl = novelUrl.replace("https://www.mtlnovel.com/", ""); + + const novel = { + sourceId: 5, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 5; + + novel.sourceName = "MTLNovel"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1.entry-title").text(); + + novel.novelCover = $(".nov-head > amp-img").attr("src"); + + novel.summary = $("div.desc > h2").next().text(); + + novel.author = $("tr > td") + .filter(function () { + return $(this).prev().text().trim() === "Author"; + }) + .next() + .text() + .replace("Auhtor:", ""); + + novel.Status = $("tr > td") + .filter(function () { + return $(this).prev().text().trim() === "Status"; + }) + .next() + .text() + .replace("Status:", ""); + + novel.genre = $("td") + .filter(function () { + return $(this).prev().text().trim() === "Genre"; + }) + .next() + .text() + .replace("Genre:", ""); + + novel.artist = null; + + const chapterListUrl = url + "/chapter-list/"; + + const getChapters = async () => { + const result = await fetch(chapterListUrl); + const body = await result.text(); + + $ = cheerio.load(body); + + let novelChapters = []; + + $("div.ch-list") + .find("a.ch-link") + .each(function (result) { + const chapterName = $(this).text().replace("~ ", ""); + const releaseDate = null; + + let chapterUrl = $(this).attr("href"); + chapterUrl = chapterUrl.replace( + `https://www.mtlnovel.com/${novelUrl}/`, + "" + ); + + novelChapters.push({ + chapterUrl, + chapterName, + releaseDate, + }); + }); + return novelChapters.reverse(); + }; + + novel.chapters = await getChapters(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = chapterUrl; + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1.main-title").text(); + let chapterText = $("div.par").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + if ($("a.next").attr("href")) { + nextChapter = $("a.next").attr("href").replace(`/${novelUrl}/`, ""); + } + + let prevChapter = null; + if ($("a.prev").attr("href")) { + prevChapter = $("a.prev").attr("href").replace(`/${novelUrl}/`, ""); + } + + chapter = { + sourceId: 5, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const searchUrl = + "https://www.mtlnovel.com/wp-admin/admin-ajax.php?action=autosuggest&q=" + + searchTerm + + "&__amp_source_origin=https%3A%2F%2Fwww.mtlnovel.com"; + + const res = await fetch(searchUrl); + const result = await res.text(); + + $ = cheerio.load(result); + + let body = JSON.parse($("body").text()); + + let novels = []; + + body.items[0].results.map((item) => { + const novelName = item.title.replace(/<\/?strong>/g, ""); + const novelCover = item.thumbnail; + const novelUrl = item.permalink.replace( + "https://www.mtlnovel.com/", + "" + ); + + const novel = { sourceId: 5, novelName, novelCover, novelUrl }; + + novels.push(novel); + }); + + return novels; +}; + +const mtlNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default mtlNovelScraper; diff --git a/src/sources/en/novelfull.js b/src/sources/en/novelfull.js new file mode 100644 index 00000000..d1bd5623 --- /dev/null +++ b/src/sources/en/novelfull.js @@ -0,0 +1,206 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://novelfull.com"; + +const popularNovels = async (page) => { + const url = `${baseUrl}/most-popular?page=${page}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.col-truyen-main > div.list-truyen > .row").each(function (result) { + const novelName = $(this).find("h3.truyen-title > a").text(); + + let novelCover = $(this).find("img").attr("src"); + novelCover = baseUrl + novelCover; + + let novelUrl = $(this) + .find("h3.truyen-title > a") + .attr("href") + .replace(".html", "") + .substring(1); + novelUrl = `${novelUrl}/`; + + const novel = { + sourceId: 8, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/${novelUrl.slice(0, -1)}.html`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 8; + + novel.sourceName = "NovelFull"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("div.book > img").attr("alt"); + + novel.novelCover = baseUrl + $("div.book > img").attr("src"); + + novel.summary = $("div.desc-text").text(); + + novel.author = $("div.info > div > h3") + .filter(function () { + return $(this).text().trim() === "Author:"; + }) + .siblings() + .text(); + + novel.genre = $("div.info > div") + .filter(function () { + return $(this).find("h3").text().trim() === "Genre:"; + }) + .text() + .replace("Genre:", ""); + + novel.artist = null; + + novel.Status = $("div.info > div > h3") + .filter(function () { + return $(this).text().trim() === "Status:"; + }) + .next() + .text(); + + const novelId = $("#rating").attr("data-novel-id"); + + const getChapters = async (novelId) => { + const chapterListUrl = + baseUrl + "/ajax/chapter-option?novelId=" + novelId; + + const data = await fetch(chapterListUrl); + const chapters = await data.text(); + + $ = cheerio.load(chapters); + + let novelChapters = []; + + $("select > option").each(function (result) { + let chapterName = $(this).text(); + let releaseDate = null; + let chapterUrl = $(this).attr("value"); + chapterUrl = chapterUrl.replace(`/${novelUrl}/`, ""); + + novelChapters.push({ + chapterName, + releaseDate, + chapterUrl, + }); + }); + return novelChapters; + }; + + novel.chapters = await getChapters(novelId); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $(".chapter-title").attr("title"); + let chapterText = $("#chapter-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + if ($("a#next_chap").attr("href")) { + nextChapter = $("a#next_chap") + .attr("href") + .replace(`/${novelUrl}/`, ""); + } + + let prevChapter = null; + if ($("a#prev_chap").attr("href")) { + prevChapter = $("a#prev_chap") + .attr("href") + .replace(`/${novelUrl}/`, ""); + } + + const chapter = { + sourceId: 8, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const searchUrl = `https://novelfull.com/search?keyword=`; + + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.col-truyen-main > div.list-truyen > .row").each(function (result) { + let novelUrl = $(this) + .find("h3.truyen-title > a") + .attr("href") + .replace(".html", "") + .substring(1); + novelUrl = `${novelUrl}/`; + + const novelName = $(this).find("h3.truyen-title > a").text(); + let novelCover = $(this).find("img").attr("src"); + novelCover = baseUrl + novelCover; + + const novel = { + sourceId: 8, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const novelFullScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default novelFullScraper; diff --git a/src/sources/en/novelhall.js b/src/sources/en/novelhall.js new file mode 100644 index 00000000..fae7eae0 --- /dev/null +++ b/src/sources/en/novelhall.js @@ -0,0 +1,178 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://www.novelhall.com/"; + +const popularNovels = async (page) => { + const result = await fetch(baseUrl); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.section1") + .find("li") + .each(function (result) { + const novelName = $(this).find(".book-info > h2 > a").text(); + const novelCover = $(this).find("img").attr("src"); + const novelUrl = $(this).find("a").attr("href").substring(1); + + const novel = { + sourceId: 6, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 6; + + novel.sourceName = "NovelHall"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1").text(); + + novel.novelCover = $("div.book-img > img").attr("src"); + + novel.summary = $("div.intro") + .text() + .replace(/[\t\n]/g, ""); + + novel.author = $("span.blue").first().text().replace("Author:", ""); + + novel.genre = $("a.red").text(); + + novel.artist = null; + + novel.Status = $("span.blue").first().next().text().replace("Status:", ""); + + let novelChapters = []; + + $("div.book-catalog.hidden-xs#morelist") + .find("li.post-11") + .each(function (result) { + let chapterName = $(this).find("a").text(); + + let releaseDate = null; + + let chapterUrl = $(this).find("a").attr("href"); + + if (chapterUrl) { + chapterUrl = chapterUrl.replace(`/${novelUrl}/`, ""); + } + + const chapter = { + chapterName, + releaseDate, + chapterUrl, + }; + + novelChapters.push(chapter); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1").text(); + let chapterText = $("div.entry-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + nextChapter = $('a[rel="next"]').attr("href"); + if (nextChapter) { + nextChapter = nextChapter.replace(`/${novelUrl}/`, ""); + } + + let prevChapter = null; + prevChapter = $('a[rel="prev"]').attr("href"); + if (prevChapter) { + prevChapter = prevChapter.replace(`/${novelUrl}/`, ""); + } + + chapter = { + sourceId: 6, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const searchUrl = `${baseUrl}index.php?s=so&module=book&keyword=`; + + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("tr").each(function (result) { + let novelName = $(this).find("td:nth-child(2)").text(); + novelName = novelName.replace(/[\t\n]/g, ""); + + const novelCover = "https://cdn.novelupdates.com/imgmid/noimagemid.jpg"; + + let novelUrl = $(this).find("td:nth-child(2) >").attr("href"); + if (novelUrl) { + novelUrl = novelUrl.slice(1); + } + + novel = { + sourceId: 6, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const novelhallScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default novelhallScraper; diff --git a/src/sources/en/noveltrench.js b/src/sources/en/noveltrench.js new file mode 100644 index 00000000..a23612e9 --- /dev/null +++ b/src/sources/en/noveltrench.js @@ -0,0 +1,200 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://noveltrench.com/"; + +const popularNovels = async (page) => { + let url = baseUrl + "manga/page/" + page; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".page-item-detail").each(function (result) { + const novelName = $(this).find(".h5 > a").text(); + const novelCover = $(this).find("img").attr("data-src"); + + let novelUrl = $(this).find(".h5 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}manga/`, ""); + + const novel = { + sourceId: 9, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}manga/${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 9; + + novel.sourceName = "NovelTrench"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".post-title > h1") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $(".summary_image > a > img").attr("data-src"); + + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + switch (detailName) { + case "Genre(s)": + novel.genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author(s)": + novel.author = detail.trim(); + break; + case "Artist(s)": + novel.status = detail.trim(); + break; + } + }); + + $(".description-summary > div.summary__content").find("em").remove(); + + novel.summary = $(".description-summary > div.summary__content") + .text() + .replace(/[\t\n]/g, ""); + + let novelChapters = []; + + $(".wp-manga-chapter").each(function (result) { + chapterName = $(this) + .find("a") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + releaseDate = $(this) + .find("span") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + chapterUrl = $(this).find("a").attr("href").replace(url, ""); + + novelChapters.push({ chapterName, releaseDate, chapterUrl }); + }); + + novel.chapters = novelChapters.reverse(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = chapterUrl; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1#chapter-heading").text(); + let chapterText = $(".reading-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($(".nav-next").length) { + nextChapter = $(".nav-next") + .find("a") + .attr("href") + .replace(baseUrl + "manga/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($(".nav-previous").length) { + prevChapter = $(".nav-previous") + .find("a") + .attr("href") + .replace(baseUrl + "manga/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId: 9, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}?s=${searchTerm}&post_type=wp-manga`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".c-tabs-item__content").each(function (result) { + const novelName = $(this).find(".h4 > a").text(); + const novelCover = $(this).find("img").attr("data-src"); + + let novelUrl = $(this).find(".h4 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}manga/`, ""); + + const novel = { + sourceId: 9, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const novelTrenchScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default novelTrenchScraper; diff --git a/src/sources/en/novelupdatescc.js b/src/sources/en/novelupdatescc.js new file mode 100644 index 00000000..8eba7d63 --- /dev/null +++ b/src/sources/en/novelupdatescc.js @@ -0,0 +1,159 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://www.novelupdates.cc/"; + +const popularNovels = async (page) => { + const result = await fetch(baseUrl); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".section-item").each(function (result) { + const novelName = $(this).find(".book-name").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").slice(1); + + const novel = { + sourceId: 18, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 18; + + novel.sourceName = "NovelUpdates.cc"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".book-name").text(); + + novel.novelCover = $("div.book-img > img").attr("src"); + + novel.genre = $("div.book-catalog > span.txt").text(); + + novel.Status = $("div.book-state > span.txt").text(); + + novel.author = $("div.author > span.name").text(); + + novelSummary = $("div.content > p.desc").text(); + novel.summary = novelSummary.trim(); + + let novelChapters = []; + + $(".chapter-item").each(function (result) { + const chapterName = $(this).find(".chapter-name").text(); + const releaseDate = null; + const chapterUrl = $(this).attr("href").slice(1); + + novelChapters.push({ + chapterName, + releaseDate, + chapterUrl, + }); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1.chapter-title").text(); + let chapterText = $("div.chapter-entity").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($("a.next").length) { + nextChapter = $("a.next").attr("href").slice(1); + } + + let prevChapter = null; + + if ($("a.prev").length) { + prevChapter = $("a.prev").attr("href").slice(1); + } + + const chapter = { + sourceId: 18, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}search/${searchTerm}/1`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".list-item").each(function (result) { + $(this).find("font").remove(); + + const novelName = $(this).find(".book-name").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").slice(1); + + const novel = { + sourceId: 18, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const novelUpdatesCcScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default novelUpdatesCcScraper; diff --git a/src/sources/en/readlightnovel.js b/src/sources/en/readlightnovel.js new file mode 100644 index 00000000..7be6c0cc --- /dev/null +++ b/src/sources/en/readlightnovel.js @@ -0,0 +1,236 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const sourceId = 2; + +const sourceName = "ReadLightNovel"; + +const lang = "en"; + +const baseUrl = "https://www.readlightnovel.org"; + +const searchUrl = "https://www.readlightnovel.org/detailed-search"; + +const popularNovels = async (page) => { + const url = `${baseUrl}/top-novel/${page}`; + + const result = await fetch(url); + const body = await result.text(); + + const $ = cheerio.load(body); + + const novels = []; + + $(".top-novel-block").each(function (result) { + const novelName = $(this).find("h2 > a").text(); + const novelCover = $(this).find("img").attr("src"); + const novelUrl = $(this) + .find("h2 > a") + .attr("href") + .replace(`${baseUrl}/`, ""); + + const novel = { + sourceId, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel; + + const novelName = $(".block-title > h1").text(); + + const novelCover = $(".novel-cover > a > img").attr("src"); + + let author, artist, genre, summary, status; + + $(".novel-detail-item").each(function (result) { + const detailName = $(this).find(".novel-detail-header > h6").text(); + const detail = $(this).find(".novel-detail-body").text(); + + switch (detailName) { + case "Genre": + genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author(s)": + author = detail.trim(); + break; + case "Artist(s)": + artist = detail.trim(); + break; + case "Description": + summary = detail; + break; + case "Status": + status = detail; + break; + } + }); + + let chapters = []; + + $(".panel").each(function (res) { + let volumeName = $(this).find("h4.panel-title").text(); + + $(this) + .find("ul.chapter-chs > li") + .each(function (result) { + let chapterName = $(this).find("a").text(); + + const releaseDate = null; + + const chapterUrl = $(this) + .find("a") + .attr("href") + .replace(`${baseUrl}/${novelUrl}/`, ""); + + if (volumeName.includes("Volume")) { + chapterName = volumeName + " " + chapterName; + } + + const chapter = { + chapterName, + releaseDate, + chapterUrl, + }; + + chapters.push(chapter); + }); + }); + + novel = { + sourceId, + sourceName, + url, + novelUrl, + novelName, + novelCover, + genre, + author, + status, + artist, + summary, + chapters, + }; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}/${novelUrl}/${chapterUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + $(".block-title > h1").find("a").remove(); + + const chapterName = $(".block-title > h1").text().replace(" - ", ""); + + $(".desc") + .find("hr") + .each(function (result) { + $(this).remove(); + }); + + $(".alert").remove(); + $(".hidden").remove(); + + var re = new RegExp(String.fromCharCode(160), "g"); + + let chapterText = $(".desc").html(); + + chapterText = htmlToText(chapterText).replace( + /\n\nSponsored Content\n\n|If audio player doesn't work, press Stop then Play button again/g, + "" + ); + + let nextChapter = null; + + if ($("a.next.next-link").length) { + nextChapter = $("a.next.next-link") + .attr("href") + .replace(`${baseUrl}/${novelUrl}/`, ""); + } + + let prevChapter = null; + + if ($("a.prev.prev-link").length) { + prevChapter = $("a.prev.prev-link") + .attr("href") + .replace(`${baseUrl}/${novelUrl}/`, ""); + } + + const chapter = { + sourceId: 2, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const formData = new FormData(); + formData.append("keyword", searchTerm); + formData.append("search", 1); + + const result = await fetch(searchUrl, { + method: "POST", + body: formData, + }); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".top-novel-block").each(function (result) { + const novelName = $(this).find(".top-novel-header > h2 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + const novelUrl = $(this) + .find(".top-novel-header > h2 > a") + .attr("href") + .replace(`${baseUrl}/`, ""); + + const novel = { + sourceId, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const ReadLightNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default ReadLightNovelScraper; diff --git a/src/sources/en/readlightnovelcc.js b/src/sources/en/readlightnovelcc.js new file mode 100644 index 00000000..8a1f4185 --- /dev/null +++ b/src/sources/en/readlightnovelcc.js @@ -0,0 +1,159 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://m.readlightnovel.cc/"; + +const popularNovels = async (page) => { + const result = await fetch(baseUrl); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".section-item").each(function (result) { + const novelName = $(this).find(".book-name").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").slice(1); + + const novel = { + sourceId: 19, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 19; + + novel.sourceName = "ReadLightNovel.cc"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".book-name").text(); + + novel.novelCover = $("div.book-img > img").attr("src"); + + novel.genre = $("div.book-catalog > span.txt").text(); + + novel.Status = $("div.book-state > span.txt").text(); + + novel.author = $("div.author > span.name").text(); + + novelSummary = $("div.content > p.desc").text(); + novel.summary = novelSummary.trim(); + + let novelChapters = []; + + $(".chapter-item").each(function (result) { + const chapterName = $(this).find(".chapter-name").text(); + const releaseDate = null; + const chapterUrl = $(this).attr("href").slice(1); + + novelChapters.push({ + chapterName, + releaseDate, + chapterUrl, + }); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1.chapter-title").text(); + let chapterText = $("div.chapter-entity").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($("a.next").length) { + nextChapter = $("a.next").attr("href").slice(1); + } + + let prevChapter = null; + + if ($("a.prev").length) { + prevChapter = $("a.prev").attr("href").slice(1); + } + + const chapter = { + sourceId: 19, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}search/${searchTerm}/1`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".list-item").each(function (result) { + $(this).find("font").remove(); + + const novelName = $(this).find(".book-name").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").slice(1); + + const novel = { + sourceId: 19, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const readLightNovelCcScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default readLightNovelCcScraper; diff --git a/src/sources/en/readnovelfull.js b/src/sources/en/readnovelfull.js new file mode 100644 index 00000000..a4cde009 --- /dev/null +++ b/src/sources/en/readnovelfull.js @@ -0,0 +1,205 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://readnovelfull.com"; + +const popularNovels = async (page) => { + const url = `${baseUrl}/most-popular-novel?page=${page}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.col-novel-main > div.list-novel > .row").each(function (result) { + let novelUrl = $(this) + .find("h3.novel-title > a") + .attr("href") + .replace(".html", "") + .substring(1); + novelUrl = `${novelUrl}/`; + + const novelName = $(this).find("h3.novel-title > a").text(); + const novelCover = $(this).find("img").attr("src"); + + const novel = { + sourceId: 4, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/${novelUrl.slice(0, -1)}.html`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 4; + + novel.sourceName = "ReadNovelFull"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("div.book > img").attr("alt"); + + novel.novelCover = $("div.book > img").attr("src"); + + novel.summary = $("div.desc-text").text(); + + novel.author = $("li > h3") + .filter(function () { + return $(this).text().trim() === "Author:"; + }) + .siblings() + .text(); + + novel.genre = $("li") + .filter(function () { + return $(this).find("h3").text().trim() === "Genre:"; + }) + .text() + .replace("Genre:", ""); + + novel.artist = null; + + novel.Status = $("li > h3") + .filter(function () { + return $(this).text().trim() === "Status:"; + }) + .siblings() + .text(); + + const novelId = $("#rating").attr("data-novel-id"); + + const getChapters = async (novelId) => { + const chapterListUrl = + "https://readnovelfull.com/ajax/chapter-archive?novelId=" + novelId; + + const data = await fetch(chapterListUrl); + const chapters = await data.text(); + + $ = cheerio.load(chapters); + + let novelChapters = []; + + $(".panel-body") + .find("li") + .each(function (result) { + let chapterName = $(this).find("a").attr("title"); + let releaseDate = null; + let chapterUrl = $(this).find("a").attr("href"); + chapterUrl = chapterUrl.replace(`/${novelUrl}/`, ""); + + novelChapters.push({ + chapterName, + releaseDate, + chapterUrl, + }); + }); + return novelChapters; + }; + + novel.chapters = await getChapters(novelId); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $(".chr-title").attr("title"); + let chapterText = $("#chr-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + if ($("a#next_chap").attr("href")) { + nextChapter = $("a#next_chap") + .attr("href") + .replace(`/${novelUrl}/`, ""); + } + + let prevChapter = null; + if ($("a#prev_chap").attr("href")) { + prevChapter = $("a#prev_chap") + .attr("href") + .replace(`/${novelUrl}/`, ""); + } + + const chapter = { + sourceId: 4, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const searchUrl = `https://readnovelfull.com/search?keyword=`; + + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.col-novel-main > div.list-novel > .row").each(function (result) { + let novelUrl = $(this) + .find("h3.novel-title > a") + .attr("href") + .replace(".html", "") + .substring(1); + novelUrl = `${novelUrl}/`; + + const novelName = $(this).find("h3.novel-title > a").text(); + const novelCover = $(this).find("img").attr("src"); + + const novel = { + sourceId: 4, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const readNovelFullScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default readNovelFullScraper; diff --git a/src/sources/en/tapread.js b/src/sources/en/tapread.js new file mode 100644 index 00000000..006998de --- /dev/null +++ b/src/sources/en/tapread.js @@ -0,0 +1,176 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "http://www.tapread.com"; + +const popularNovels = async (page) => { + const result = await fetch(baseUrl); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $('.section-item[data-classify="1"]').each(function (result) { + const novelName = $(this).find(".book-name").text(); + const novelCover = "http:" + $(this).find("img").attr("src"); + let novelUrl = $(this).attr("data-id"); + + const novel = { + sourceId: 17, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}/book/detail/${novelUrl}`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 17; + + novel.sourceName = "TapRead"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".book-name").text(); + + novel.novelCover = "http:" + $("div.book-img > img").attr("src"); + + novel.genre = $("div.book-catalog > span.txt").text(); + + novel.Status = $("div.book-state > span.txt").text(); + + novel.author = $("div.author > span.name").text(); + + novel.summary = $("div.content > p.desc").text(); + + const getChapters = async (novelId) => { + const chapterListUrl = "http://www.tapread.com/ajax/book/contents"; + + let formData = new FormData(); + formData.append("bookId", novelId); + + const data = await fetch(chapterListUrl, { + method: "POST", + body: formData, + }); + + const chapters = await data.json(); + + let novelChapters = []; + + chapters.result.chapterList.map((chapter) => { + let chapterName = chapter.chapterName; + const releaseDate = chapter.pubTime; + const chapterUrl = chapter.chapterId.toString(); + + if (chapter.lock) { + chapterName = "🔒 " + chapterName; + } + + novelChapters.push({ + chapterUrl, + chapterName, + releaseDate, + }); + }); + + return novelChapters; + }; + + novel.chapters = await getChapters(novelUrl); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + let formData = new FormData(); + formData.append("bookId", novelUrl); + formData.append("chapterId", chapterUrl); + + const url = "http://www.tapread.com/ajax/book/chapter"; + + const result = await fetch(url, { + method: "POST", + body: formData, + }); + const body = await result.json(); + + const chapterName = body.result.chapterName; + const chapterText = htmlToText(body.result.content); + const nextChapter = + body.result.nextChapterId === 0 + ? null + : body.result.nextChapterId.toString(); + const prevChapter = body.result.preChapterId.toString(); + novelUrl += "/"; + + const chapter = { + sourceId: 17, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + let formData = new FormData(); + formData.append("storyType", 1); + formData.append("pageNo", 1); + formData.append("searchText", searchTerm); + + const url = "http://www.tapread.com/ajax/search/story"; + + const data = await fetch(url, { + method: "POST", + body: formData, + }); + + const body = await data.json(); + + const novels = []; + + body.result.storyList.map((novel) => { + const novelName = novel.storyName.replace( + /|<\/font>/g, + "" + ); + const novelUrl = novel.storyId; + const novelCover = "http://static.tapread.com" + novel.coverUrl; + + novels.push({ sourceId: 17, novelName, novelCover, novelUrl }); + }); + + return novels; +}; + +const tapReadScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default tapReadScraper; diff --git a/src/sources/en/vipnovel.js b/src/sources/en/vipnovel.js new file mode 100644 index 00000000..340fba0e --- /dev/null +++ b/src/sources/en/vipnovel.js @@ -0,0 +1,208 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://vipnovel.com/"; + +const popularNovels = async (page) => { + let url = `${baseUrl}vipnovel/page/${page}/?m_orderby=rating`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".page-item-detail").each(function (result) { + const novelName = $(this).find("h5 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h5 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}vipnovel/`, ""); + + const novel = { + sourceId: 10, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}vipnovel/${novelUrl}`; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 10; + + novel.sourceName = "VipNovel"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".post-title > h3") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $(".summary_image > a > img").attr("src"); + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + switch (detailName) { + case "Genre(s)": + novel.genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author(s)": + novel.author = detail.trim(); + break; + case "Artist(s)": + novel.status = detail.trim(); + break; + } + }); + + let novelSummary = $(".description-summary > div.summary__content").text(); + + novel.summary = novelSummary.replace(/[\t\n]/g, ""); + + let novelChapters = []; + + $(".wp-manga-chapter").each(function (result) { + const chapterName = $(this) + .find("a") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + const releaseDate = $(this) + .find("span") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + const chapterUrl = $(this).find("a").attr("href").replace(url, ""); + + const chapter = { chapterName, releaseDate, chapterUrl }; + + console.log(chapterUrl); + + novelChapters.push(chapter); + }); + + novel.chapters = novelChapters.reverse(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = baseUrl + "vipnovel/" + novelUrl + chapterUrl; + + console.log(url); + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let chapterName = $(".text-center").text(); + + if (!chapterName) { + chapterName = $(".text-left > div> h3").text(); + } + + let chapterText = $(".text-left").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($(".nav-next").length) { + nextChapter = $(".nav-next") + .find("a") + .attr("href") + .replace(baseUrl + "vipnovel/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($(".nav-previous").length) { + prevChapter = $(".nav-previous") + .find("a") + .attr("href") + .replace(baseUrl + "vipnovel/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId: 10, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}?s=${searchTerm}&post_type=wp-manga`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".c-tabs-item__content").each(function (result) { + const novelName = $(this).find("h4 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("h4 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}vipnovel/`, ""); + + const novel = { + sourceId: 10, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const vipNovelScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default vipNovelScraper; diff --git a/src/sources/en/woopread.js b/src/sources/en/woopread.js new file mode 100644 index 00000000..77fc2167 --- /dev/null +++ b/src/sources/en/woopread.js @@ -0,0 +1,207 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://woopread.com/"; + +const popularNovels = async (page) => { + let url = baseUrl + "novellist/page/" + page + "/?m_orderby=rating"; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".page-item-detail").each(function (result) { + const novelName = $(this).find(".h5 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find(".h5 > a").attr("href"); + novelUrl = novelUrl.replace(baseUrl + "series/", ""); + + const novel = { + sourceId: 21, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}series/${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 21; + + novel.sourceName = "WoopRead"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".post-title > h1") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + novel.novelCover = $(".summary_image > a > img").attr("src"); + + $(".post-content_item").each(function (result) { + detailName = $(this) + .find(".summary-heading > h5") + .text() + .replace(/[\t\n]/g, "") + .trim(); + detail = $(this) + .find(".summary-content") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + switch (detailName) { + case "Genre(s)": + novel.genre = detail.trim().replace(/[\t\n]/g, ","); + break; + case "Author(s)": + novel.author = detail.trim(); + break; + case "Artist(s)": + novel.status = detail.trim(); + break; + } + }); + $(".description-summary > div.summary__content").find("em").remove(); + + novel.summary = $(".description-summary > div.summary__content") + .text() + .trim(); + + let novelChapters = []; + + const novelId = $(".rating-post-id").attr("value"); + + let formData = new FormData(); + formData.append("action", "manga_get_chapters"); + formData.append("manga", novelId); + + const data = await fetch("https://woopread.com/wp-admin/admin-ajax.php", { + method: "POST", + body: formData, + }); + const text = await data.text(); + + $ = cheerio.load(text); + + $(".wp-manga-chapter.free-chap").each(function (result) { + chapterName = $(this) + .find("a") + .text() + .replace(/[\t\n]/g, "") + .trim(); + + releaseDate = $(this).find("span").text().replace("Free", "").trim(); + + chapterUrl = $(this).find("a").attr("href").replace(url, ""); + + novelChapters.push({ chapterName, releaseDate, chapterUrl }); + }); + + novel.chapters = novelChapters.reverse(); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}series/${novelUrl}/${chapterUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1#chapter-heading").text(); + let chapterText = $(".reading-content").html(); + chapterText = htmlToText(chapterText); + chapterText = chapterText.replace(/(?<=[[])[\n](?=[h])/g, ""); + + let nextChapter = null; + + if ($(".nav-next").length) { + nextChapter = $(".nav-next") + .find("a") + .attr("href") + .replace(baseUrl + "series/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($(".nav-previous").length) { + prevChapter = $(".nav-previous") + .find("a") + .attr("href") + .replace(baseUrl + "series/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId: 21, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}?s=${searchTerm}&post_type=wp-manga&op=&author=&artist=&release=&adult=`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".c-tabs-item__content").each(function (result) { + const novelName = $(this).find(".h4 > a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find(".h4 > a").attr("href"); + novelUrl = novelUrl.replace(`${baseUrl}series/`, ""); + + const novel = { + sourceId: 21, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const WoopReadScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default WoopReadScraper; diff --git a/src/sources/en/wuxiaworld.js b/src/sources/en/wuxiaworld.js new file mode 100644 index 00000000..3ff31270 --- /dev/null +++ b/src/sources/en/wuxiaworld.js @@ -0,0 +1,179 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://www.wuxiaworld.com/"; + +const popularNovels = async (page) => { + const url = `${baseUrl}api/novels`; + + const result = await fetch(url); + const data = await result.json(); + + let novels = []; + + data.items.map((novel) => { + let novelName = novel.name; + let novelCover = novel.coverUrl; + let novelUrl = novel.slug; + + novels.push({ + sourceId: 7, + novelUrl, + novelName, + novelCover, + }); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}novel/${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 7; + + novel.sourceName = "WuxiaWorld"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h2").text(); + + novel.novelCover = $("img.img-thumbnail").attr("src"); + + novel.summary = $(".fr-view > p").text(); + + novel.author = $("div > dt") + .filter(function () { + return $(this).text().trim() === "Author:"; + }) + .next() + .text(); + + let genres = []; + + $(".genres") + .find("div") + .each(function (res) { + genres.push($(this).find("a").text()); + }); + + novel.genre = genres.join(","); + + novel.artist = null; + + novel.Status = null; + + let novelChapters = []; + + $(".chapter-item").each(function (result) { + let chapterName = $(this).text(); + chapterName = chapterName.replace(/[\t\n]/g, ""); + + const releaseDate = null; + + let chapterUrl = $(this).find("a").attr("href"); + chapterUrl = chapterUrl.replace(`/novel/${novelUrl}/`, ""); + + const chapter = { + chapterName, + releaseDate, + chapterUrl, + }; + + novelChapters.push(chapter); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + let url = `${baseUrl}novel/${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let chapterName = $("#sidebar-toggler-container").next().text(); + chapterName = chapterName.replace(/[\t\n]/g, ""); + + $("#chapter-content > script").remove(); + + let chapterText = $("#chapter-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($("li.next > a").attr("href") !== "#") { + nextChapter = $("li.next > a") + .attr("href") + .replace(`/novel/${novelUrl}`, ""); + } + + let prevChapter = null; + + if ($("li.prev > a").attr("href") !== "#") { + prevChapter = $("li.prev > a") + .attr("href") + .replace(`/novel/${novelUrl}`, ""); + } + + const chapter = { + sourceId: 7, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const searchUrl = `https://www.wuxiaworld.com/api/novels/search?query=`; + + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const data = await result.json(); + + let novels = []; + + data.items.map((novel) => { + let novelName = novel.name; + let novelCover = novel.coverUrl; + let novelUrl = novel.slug; + + novels.push({ + sourceId: 7, + novelUrl, + novelName, + novelCover, + }); + }); + + return novels; +}; + +const WuxiaWorldScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default WuxiaWorldScraper; diff --git a/src/sources/en/wuxiaworldcloud.js b/src/sources/en/wuxiaworldcloud.js new file mode 100644 index 00000000..0026705c --- /dev/null +++ b/src/sources/en/wuxiaworldcloud.js @@ -0,0 +1,200 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "http://wuxiaworld.cloud/"; + +const popularNovels = async (page) => { + const url = `${baseUrl}/popular-novel?page=${page}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.col-novel-main > div.list-novel > .row").each(function (result) { + let novelUrl = $(this) + .find("h3.novel-title > a") + .attr("href") + .replace(baseUrl + "novel/", ""); + novelUrl = `${novelUrl}/`; + + const novelName = $(this).find("h3.novel-title > a").text(); + const novelCover = $(this).find("img").attr("src"); + + const novel = { + sourceId: 20, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}novel/${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 20; + + novel.sourceName = "WuxiaWorld.cloud"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("div.book > img").attr("alt"); + + novel.novelCover = $("div.book > img").attr("src"); + + novel.summary = $("div.desc-text").text(); + + novel.author = $("div.info > div > h3") + .filter(function () { + return $(this).text().trim() === "Author:"; + }) + .siblings() + .text(); + + novel.genre = $("div.info > div") + .filter(function () { + return $(this).find("h3").text().trim() === "Genre:"; + }) + .text() + .replace("Genre:", "") + .replace(/\s/g, ""); + + novel.artist = null; + + novel.Status = $("li > h3") + .filter(function () { + return $(this).text().trim() === "Status:"; + }) + .siblings() + .text(); + + const novelId = $("#rating").attr("data-novel-id"); + + const getChapters = async (novelId) => { + const chapterListUrl = + baseUrl + "ajax/chapter-option?novelId=" + novelId; + + const data = await fetch(chapterListUrl); + const chapters = await data.text(); + + $ = cheerio.load(chapters); + + let novelChapters = []; + + $("select > option").each(function (result) { + let chapterName = $(this).text(); + let releaseDate = null; + let chapterUrl = $(this).attr("value"); + chapterUrl = chapterUrl.replace(baseUrl, ""); + + novelChapters.push({ + chapterName, + releaseDate, + chapterUrl, + }); + }); + return novelChapters; + }; + + novel.chapters = await getChapters(novelId); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + chapterUrl = encodeURI(chapterUrl); + + const url = `${baseUrl}${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $(".chr-title").attr("title"); + let chapterText = $("#chr-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + if ($("a#next_chap").attr("href")) { + nextChapter = $("a#next_chap").attr("href").replace(baseUrl, ""); + } + + let prevChapter = null; + if ($("a#prev_chap").attr("href")) { + prevChapter = $("a#prev_chap").attr("href").replace(baseUrl, ""); + } + + const chapter = { + sourceId: 20, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const searchUrl = `http://wuxiaworld.cloud/search?keyword=`; + + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $("div.col-novel-main > div.list-novel > .row").each(function (result) { + let novelUrl = $(this) + .find("h3.novel-title > a") + .attr("href") + .replace(baseUrl + "novel/", ""); + novelUrl = `${novelUrl}/`; + + const novelName = $(this).find("h3.novel-title > a").text(); + const novelCover = $(this).find("img").attr("src"); + + const novel = { + sourceId: 20, + novelUrl, + novelName, + novelCover, + }; + + novels.push(novel); + }); + + return novels; +}; + +const WuxiaWorldCloudScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default WuxiaWorldCloudScraper; diff --git a/src/sources/en/wuxiaworldco.js b/src/sources/en/wuxiaworldco.js new file mode 100644 index 00000000..954cf454 --- /dev/null +++ b/src/sources/en/wuxiaworldco.js @@ -0,0 +1,163 @@ +import cheerio from "react-native-cheerio"; + +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://www.wuxiaworld.co/"; + +const popularNovels = async (page) => { + const result = await fetch(baseUrl); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".section-item").each(function (result) { + const novelName = $(this).find(".book-name").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").slice(1); + + const novel = { + sourceId: 16, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}${novelUrl}/`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 16; + + novel.sourceName = "WuxiaWorldCo"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".book-name").text(); + + novel.novelCover = $("div.book-img > img").attr("src"); + + novel.genre = $("div.book-catalog > span.txt").text(); + + novel.Status = $("div.book-state > span.txt").text(); + + novel.author = $("div.author > span.name").text(); + + novelSummary = $("div.content > p.desc").html(); + novel.summary = novelSummary.trim(); + + let novelChapters = []; + + $(".chapter-item").each(function (result) { + const chapterName = $(this).find(".chapter-name").text(); + const releaseDate = null; + const chapterUrl = $(this).attr("href").split("/")[2]; + + novelChapters.push({ + chapterName, + releaseDate, + chapterUrl, + }); + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + const chapterName = $("h1.chapter-title").text(); + let chapterText = $("div.chapter-entity").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + + if ($("a.next").length) { + nextChapter = $("a.next") + .attr("href") + .replace("/" + novelUrl + "/", ""); + } + + let prevChapter = null; + + if ($("a.prev").length) { + prevChapter = $("a.prev") + .attr("href") + .replace("/" + novelUrl + "/", ""); + } + + const chapter = { + sourceId: 16, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${baseUrl}search/${searchTerm}/1`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".list-item").each(function (result) { + $(this).find("font").remove(); + + const novelName = $(this).find(".book-name").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this).find("a").attr("href").slice(1); + + const novel = { + sourceId: 16, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const WuxiaWorldCoScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default WuxiaWorldCoScraper; diff --git a/src/sources/en/wuxiaworldsite.js b/src/sources/en/wuxiaworldsite.js new file mode 100644 index 00000000..0ddb3712 --- /dev/null +++ b/src/sources/en/wuxiaworldsite.js @@ -0,0 +1,209 @@ +import cheerio from "react-native-cheerio"; + +const baseUrl = "https://wuxiaworldsite.co/"; +const searchUrl = "https://wuxiaworldsite.co/search/"; + +const popularNovels = async (page) => { + const url = `https://wuxiaworldsite.co/ajax-story-power.ajax`; + + const formData = new FormData(); + formData.append("page", page); + formData.append("keyword", ""); + formData.append("count", 18); + formData.append("genres_include", ""); + formData.append("limit", 18); + formData.append("order_type", "DESC"); + formData.append("order_by", "views"); + + const result = await fetch(url, { method: "POST", body: formData }); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".a_item").each((i, el) => { + const novelName = $(el).find("a").attr("title"); + const novelCover = baseUrl + $(el).find("a > img").attr("src"); + + let novelUrl = $(el).find(".name_views > a").attr("href"); + novelId = novelUrl.split("/"); + novelUrl = novelId[2] + "/"; + + const novel = { + sourceId: 12, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = `${baseUrl}${novelUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + $(".category_list").remove(); + + let novel = {}; + + novel.sourceId = 12; + + novel.sourceName = "WuxiaWorldSite"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $(".content-reading > h1").text().trim(); + + novel.novelCover = baseUrl + $(".img-read> img").attr("src"); + + novel.summary = $(".story-introduction-content").text(); + + novel.author = $(".content-reading > p").text(); + + novel.artist = null; + + novel.genre = ""; + + $(".a_tag_item").each((i, el) => { + novel.genre += $(el).text() + ","; + }); + + novel.genre = novel.genre.split(","); + novel.genre.pop(); + + novel.Status = novel.genre.pop(); + + novel.genre = novel.genre.join(","); + + const novelID = $(".show-more-list").attr("data-id"); + + const getChapters = async (novelID) => { + const chapterListUrl = baseUrl + "/get-full-list.ajax?id=" + novelID; + + const data = await fetch(chapterListUrl); + const chapters = await data.text(); + + $ = cheerio.load(chapters); + + let novelChapters = []; + + $(".new-update-content").each((i, el) => { + let chapterName = $(el).text().split(/\t+/); + const releaseDate = chapterName.pop(); + chapterName = chapterName[0]; + let chapterUrl = $(el).attr("href"); + chapterUrl = chapterUrl.split("/").pop(); + + const novel = { + chapterName, + releaseDate, + chapterUrl, + }; + novelChapters.push(novel); + }); + return novelChapters; + }; + + novel.chapters = await getChapters(novelID); + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = `${baseUrl}/${novelUrl}/${chapterUrl}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let chapterText = $("#content").html() || ""; + let chapterName = ""; + if (chapterText) { + chapterText = chapterText.split("
"); + chapterName = chapterText.shift(); + } else { + $("p").each((i, el) => { + if ($(el).css("display") !== "none") { + chapterText += $(el).text() + "\n"; + } + }); + chapterText = chapterText.split("\n"); + chapterName = chapterText.shift(); + } + + chapterText = chapterText.join("\n"); + + const prevChapter = $(".pre").attr("href") + ? $(".pre").attr("href").split("/").pop() + : null; + + const nextChapter = $(".next_sesction > a").attr("href") + ? $(".next_sesction > a").attr("href").split("/").pop() + : null; + + novelUrl += "/"; + chapterUrl += "/"; + + const chapter = { + sourceId: 12, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = `${searchUrl}${searchTerm}`; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".a_item").each((i, el) => { + const novelName = $(el).find(".name_views > a").attr("title"); + const novelCover = baseUrl + $(el).find("a > img").attr("src"); + let novelUrl = $(el).find(".name_views > a").attr("href"); + novelId = novelUrl.split("/"); + novelUrl = novelId[2] + "/"; + + const novel = { + sourceId: 12, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + return novels; +}; + +const WuxiaWorldSiteScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default WuxiaWorldSiteScraper; diff --git a/src/sources/es/einherjarproject.js b/src/sources/es/einherjarproject.js new file mode 100644 index 00000000..46917a05 --- /dev/null +++ b/src/sources/es/einherjarproject.js @@ -0,0 +1,203 @@ +import cheerio from "react-native-cheerio"; +import { htmlToText } from "../helpers/htmlToText"; + +const baseUrl = "https://einherjarproject.net/"; + +const popularNovels = async (page) => { + let url = baseUrl + "proyectos-activos/"; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".wp-block-media-text").each(function (result) { + const novelName = $(this).find("a").text(); + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this) + .find(".wp-block-media-text__content") + .find("a") + .attr("href"); + novelUrl = novelUrl.replace(baseUrl, ""); + + const novel = { + sourceId: 25, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + }); + + if (page === 1) { + return novels; + } +}; + +const parseNovelAndChapters = async (novelUrl) => { + const url = baseUrl + novelUrl; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novel = {}; + + novel.sourceId = 25; + + novel.sourceName = "Einherjar Project"; + + novel.url = url; + + novel.novelUrl = novelUrl; + + novel.novelName = $("h1").text(); + + novel.novelCover = $("img").attr("src"); + + $(".wp-block-columns") + .find("li") + .each(function (result) { + if ($(this).text().includes("Autor:")) { + novel.author = $(this) + .text() + .replace("Autor:", "") + .slice(0, -1); + } + if ($(this).text().includes("Ilustrador: ")) { + novel.artist = $(this) + .text() + .replace("Ilustrador: ", "") + .slice(0, -1); + } + if ($(this).text().includes("Estado: ")) { + novel.status = $(this) + .text() + .replace("Estado: ", "") + .slice(0, -1); + } + }); + + novel.genre = $(".post-content > h6") + .text() + .replace(/GÉNEROS: /, "") + .replace(/,\s/g, ","); + + let novelSummary = $(".post-content > .has-text-align-center").html(); + + novel.summary = novelSummary.trim(); + + let novelChapters = []; + + $(".wp-block-media-text") + .find("p") + .each(function (result) { + if ($(this).find("a").text()) { + const chapterName = $(this).text(); + const releaseDate = null; + let chapterUrl = $(this) + .find("a") + .attr("href") + .replace(baseUrl, ""); + if (chapterUrl.includes(novelUrl + "/")) + chapterUrl = chapterUrl.replace(novelUrl + "/", ""); + + const chapter = { chapterName, releaseDate, chapterUrl }; + + novelChapters.push(chapter); + } + }); + + novel.chapters = novelChapters; + + return novel; +}; + +const parseChapter = async (novelUrl, chapterUrl) => { + const url = baseUrl + chapterUrl; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let chapterName = $("h1.post-title").text(); + + let chapterText = $(".post-content").html(); + chapterText = htmlToText(chapterText); + + let nextChapter = null; + let prevChapter = null; + + novelUrl = novelUrl + "/"; + chapterUrl = chapterUrl + "/"; + + const chapter = { + sourceId: 25, + novelUrl, + chapterUrl, + chapterName, + chapterText, + nextChapter, + prevChapter, + }; + + return chapter; +}; + +const searchNovels = async (searchTerm) => { + const url = baseUrl + "?s=" + searchTerm; + + const result = await fetch(url); + const body = await result.text(); + + $ = cheerio.load(body); + + let novels = []; + + $(".post-container") + .find("div.type-page") + .each(function (result) { + const novelName = $(this) + .find(".post-header") + .text() + .replace(/\n/g, ""); + if ( + !novelName.includes("EPUBs") && + !novelName.includes("Proyectos Activos") && + !novelName.includes("Chapter") + ) { + const novelCover = $(this).find("img").attr("src"); + + let novelUrl = $(this) + .find("a") + .attr("href") + .replace(baseUrl, ""); + + const novel = { + sourceId: 25, + novelName, + novelCover, + novelUrl, + }; + + novels.push(novel); + } + }); + + return novels; +}; + +const EinharjarProjectScraper = { + popularNovels, + parseNovelAndChapters, + parseChapter, + searchNovels, +}; + +export default EinharjarProjectScraper; diff --git a/src/sources/helpers/htmlToText.js b/src/sources/helpers/htmlToText.js new file mode 100644 index 00000000..760ae8d7 --- /dev/null +++ b/src/sources/helpers/htmlToText.js @@ -0,0 +1,204 @@ +const htmlToText = (html) => { + return ( + html + // Remove line breaks + .replace(/(?:\n|\r\n|\r)/gi, "") + // Turn
's into single line breaks. + .replace(/<\s*br[^>]*>/gi, "\n") + // Turn 's into line breaks. + .replace(/<\s*\/li[^>]*>/gi, "\n") + // Turn

's into double line breaks. + .replace(/<\s*p[^>]*>/gi, "\n\n") + // Remove content in script tags. + .replace(/<\s*script[^>]*>[\s\S]*?<\/script>/gim, "") + // Remove content in style tags. + .replace(/<\s*style[^>]*>[\s\S]*?<\/style>/gim, "") + // Remove content in comments. + .replace(//gim, "") + // Format anchor tags properly. + // e.g. + // input - ]*>([\s\S]*?)<\/\s*a\s*>/gi, + "$2" + ) + .replace(/<\s*img[^>]*src=['"](.*?)['"][^>]*>/gi, "[$1]") + // Remove all remaining tags. + .replace(/(<([^>]+)>)/gi, "") + // Make sure there are never more than two + // consecutive linebreaks. + .replace(/\n{2,}/g, "\n\n") + // Remove tabs. + .replace(/\t/g, "") + // Remove newlines at the beginning of the text. + .replace(/^\n+/m, "") + // Replace multiple spaces with a single space. + .replace(/ {2,}/g, " ") + // Decode HTML entities. + .replace(/&([^;]+);/g, decodeHtmlEntity) + ); +}; + +const decodeHtmlEntity = (m, n) => { + // Determine the character code of the entity. Range is 0 to 65535 + // (characters in JavaScript are Unicode, and entities can represent + // Unicode characters). + let code; + + // Try to parse as numeric entity. This is done before named entities for + // speed because associative array lookup in many JavaScript implementations + // is a linear search. + if (n.substr(0, 1) == "#") { + // Try to parse as numeric entity + if (n.substr(1, 1) == "x") { + // Try to parse as hexadecimal + code = parseInt(n.substr(2), 16); + } else { + // Try to parse as decimal + code = parseInt(n.substr(1), 10); + } + } else { + // Try to parse as named entity + code = ENTITIES_MAP[n]; + } + + // If still nothing, pass entity through + return code === undefined || code === NaN + ? "&" + n + ";" + : String.fromCharCode(code); +}; + +let ENTITIES_MAP = { + nbsp: 160, + iexcl: 161, + cent: 162, + pound: 163, + curren: 164, + yen: 165, + brvbar: 166, + sect: 167, + uml: 168, + copy: 169, + ordf: 170, + laquo: 171, + not: 172, + shy: 173, + reg: 174, + macr: 175, + deg: 176, + plusmn: 177, + sup2: 178, + sup3: 179, + acute: 180, + micro: 181, + para: 182, + middot: 183, + cedil: 184, + sup1: 185, + ordm: 186, + raquo: 187, + frac14: 188, + frac12: 189, + frac34: 190, + iquest: 191, + Agrave: 192, + Aacute: 193, + Acirc: 194, + Atilde: 195, + Auml: 196, + Aring: 197, + AElig: 198, + Ccedil: 199, + Egrave: 200, + Eacute: 201, + Ecirc: 202, + Euml: 203, + Igrave: 204, + Iacute: 205, + Icirc: 206, + Iuml: 207, + ETH: 208, + Ntilde: 209, + Ograve: 210, + Oacute: 211, + Ocirc: 212, + Otilde: 213, + Ouml: 214, + times: 215, + Oslash: 216, + Ugrave: 217, + Uacute: 218, + Ucirc: 219, + Uuml: 220, + Yacute: 221, + THORN: 222, + szlig: 223, + agrave: 224, + aacute: 225, + acirc: 226, + atilde: 227, + auml: 228, + aring: 229, + aelig: 230, + ccedil: 231, + egrave: 232, + eacute: 233, + ecirc: 234, + euml: 235, + igrave: 236, + iacute: 237, + icirc: 238, + iuml: 239, + eth: 240, + ntilde: 241, + ograve: 242, + oacute: 243, + ocirc: 244, + otilde: 245, + ouml: 246, + divide: 247, + oslash: 248, + ugrave: 249, + uacute: 250, + ucirc: 251, + uuml: 252, + yacute: 253, + thorn: 254, + yuml: 255, + quot: 34, + amp: 38, + lt: 60, + gt: 62, + OElig: 338, + oelig: 339, + Scaron: 352, + scaron: 353, + Yuml: 376, + circ: 710, + tilde: 732, + ensp: 8194, + emsp: 8195, + thinsp: 8201, + zwnj: 8204, + zwj: 8205, + lrm: 8206, + rlm: 8207, + ndash: 8211, + mdash: 8212, + lsquo: 8216, + rsquo: 8217, + sbquo: 8218, + ldquo: 8220, + rdquo: 8221, + bdquo: 8222, + dagger: 8224, + Dagger: 8225, + permil: 8240, + lsaquo: 8249, + rsaquo: 8250, + euro: 8364, + apos: 39, +}; + +export { htmlToText }; diff --git a/src/sources/sources.js b/src/sources/sources.js new file mode 100644 index 00000000..d52125fc --- /dev/null +++ b/src/sources/sources.js @@ -0,0 +1,284 @@ +import ComradeMaoScraper from "./en/comrademao"; +import ReadLightNovelScraper from "./en/readlightnovel"; +import BoxNovelScraper from "./en/boxnovel"; +import fastNovelScraper from "./en/fastnovel"; +import readNovelFullScraper from "./en/readnovelfull"; +import mtlNovelScraper from "./en/mtlnovel"; +import novelhallScraper from "./en/novelhall"; +import WuxiaWorldScraper from "./en/wuxiaworld"; +import novelFullScraper from "./en/novelfull"; +import novelTrenchScraper from "./en/noveltrench"; +import vipNovelScraper from "./en/vipnovel"; +import kissLightNovelScraper from "./en/kisslightnovels"; +import WuxiaWorldSiteScraper from "./en/wuxiaworldsite"; +import FreeWebNovelScraper from "./en/freewebnovel"; +import JPMTLScraper from "./en/jpmtl"; +import lightNovelPubScraper from "./en/lightnovelpub"; +import WuxiaWorldCoScraper from "./en/wuxiaworldco"; +import novelUpdatesCcScraper from "./en/novelupdatescc"; +import readLightNovelCcScraper from "./en/readlightnovelcc"; +import tapReadScraper from "./en/tapread"; +import WuxiaWorldCloudScraper from "./en/wuxiaworldcloud"; +import WoopReadScraper from "./en/woopread"; +import FoxaHolicScraper from "./en/foxaholic"; +import EinharjarProjectScraper from "./es/einherjarproject"; + +export const sources = [ + { + sourceId: 1, + url: "https://boxnovel.com/", + sourceName: "BoxNovel", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/boxnovel/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 2, + sourceName: "ReadLightNovel", + url: "https://www.readlightnovel.org", + lang: "English", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readlightnovel/icon.png?raw=true", + }, + { + sourceId: 3, + url: "https://fastnovel.net/", + sourceName: "FastNovel", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/fastnovel/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 4, + url: "https://readnovelfull.com/", + sourceName: "ReadNovelFull", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readnovelfull/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 5, + url: "https://www.mtlnovel.com/", + sourceName: "MTLNovel", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/mtlnovel/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 6, + url: "https://www.novelhall.com/", + sourceName: "NovelHall", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelhall/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 7, + url: "https://www.wuxiaworld.com/", + sourceName: "WuxiaWorld", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworld/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 8, + url: "https://novelfull.com/", + sourceName: "NovelFull", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelfull/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 9, + url: "https://noveltrench.com/", + sourceName: "NovelTrench", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/noveltrench/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 10, + url: "https://vipnovel.com/", + sourceName: "VipNovel", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/vipnovel/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 11, + url: "https://kisslightnovels.info/", + sourceName: "KissLightNovels", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/kisslightnovels/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 12, + url: "https://wuxiaworldsite.co/", + sourceName: "WuxiaWorldSite", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldsite/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 13, + url: "https://freewebnovel.com/", + sourceName: "FreeWebNovel", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/freewebnovel/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 14, + url: "https://jpmtl.com/", + sourceName: "JPMTL", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/jpmtl/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 15, + url: "https://www.lightnovelpub.com/", + sourceName: "LightNovelPub", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/lightnovelpub/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 16, + url: "https://www.wuxiaworld.co/", + sourceName: "WuxiaWorld.co", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldco/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 17, + url: "http://www.tapread.com/", + sourceName: "TapRead", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/tapread/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 18, + url: "https://www.novelupdates.cc/", + sourceName: "NovelUpdates.cc", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelupdatescc/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 19, + url: "https://m.readlightnovel.cc/", + sourceName: "ReadLightNovel.cc", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readlightnovelcc/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 20, + url: "http://wuxiaworld.cloud/", + sourceName: "WuxiaWorld.cloud", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldcloud/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 21, + url: "https://woopread.com/", + sourceName: "WoopRead", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/woopread/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 22, + url: "https://foxaholic.com/", + sourceName: "Foxaholic", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/foxaholic/icon.png?raw=true", + lang: "English", + }, + { + sourceId: 25, + url: "https://einherjarproject.net/", + sourceName: "EinherjarProject", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/einherjarproject/icon.png?raw=true", + lang: "Spanish", + }, + { + sourceId: 27, + url: "https://comrademao.com/", + sourceName: "ComradeMao", + icon: "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/comrademao/icon.png?raw=true", + lang: "English", + }, +]; + +export const getSource = (sourceId) => { + switch (sourceId) { + case 1: { + return BoxNovelScraper; + } + case 2: { + return ReadLightNovelScraper; + } + case 3: { + return fastNovelScraper; + } + case 4: { + return readNovelFullScraper; + } + case 5: { + return mtlNovelScraper; + } + case 6: { + return novelhallScraper; + } + case 7: { + return WuxiaWorldScraper; + } + case 8: { + return novelFullScraper; + } + case 9: { + return novelTrenchScraper; + } + case 10: { + return vipNovelScraper; + } + case 11: { + return kissLightNovelScraper; + } + case 12: { + return WuxiaWorldSiteScraper; + } + case 13: { + return FreeWebNovelScraper; + } + case 14: { + return JPMTLScraper; + } + case 15: { + return lightNovelPubScraper; + } + case 16: { + return WuxiaWorldCoScraper; + } + case 17: { + return tapReadScraper; + } + case 18: { + return novelUpdatesCcScraper; + } + case 19: { + return readLightNovelCcScraper; + } + case 20: { + return WuxiaWorldCloudScraper; + } + case 21: { + return WoopReadScraper; + } + case 22: { + return FoxaHolicScraper; + } + case 23: { + return; + } + case 24: { + return; + } + case 25: { + return EinharjarProjectScraper; + } + case 26: { + return; + } + case 27: { + return ComradeMaoScraper; + } + case 3: { + return; + } + } +}; diff --git a/src/theme/fonts.js b/src/theme/fonts.js new file mode 100644 index 00000000..941081aa --- /dev/null +++ b/src/theme/fonts.js @@ -0,0 +1,14 @@ +/** + * Reader fonts + */ + +export const fonts = { + "pt-sans-bold": require("../../assets/fonts/PTSansNarrow-Bold.ttf"), + "arbutus-slab": require("../../assets/fonts/ArbutusSlab-Regular.ttf"), + domine: require("../../assets/fonts/Domine-VariableFont_wght.ttf"), + lato: require("../../assets/fonts/Lato-Regular.ttf"), + "noto-sans": require("../../assets/fonts/NotoSans-Regular.ttf"), + "noto-sans-bold": require("../../assets/fonts/NotoSans-Bold.ttf"), + "open-sans": require("../../assets/fonts/OpenSans-Regular.ttf"), + "pt-serif": require("../../assets/fonts/PTSerif-Regular.ttf"), +}; diff --git a/src/theme/theme.js b/src/theme/theme.js new file mode 100644 index 00000000..1dbd5b3f --- /dev/null +++ b/src/theme/theme.js @@ -0,0 +1,142 @@ +/** + * Application Colors + */ +export const theme = { + colorPrimary: "#000000", + colorPrimaryDark: "#000000", + colorAccent: "#3399FF", + textColorPrimary: "#FFFFFF", + textColorSecondary: "rgba(255,255,255,0.7)", + textColorHint: "rgba(255,255,255,0.5)", + rippleColor: "rgba(255,255,255,0.06)", +}; + +/** + * Light + */ +export const lightTheme = { + id: 1, + name: "Light", + colorPrimary: "#FFFFFF", + colorPrimaryDark: "#FAFAFA", + colorAccent: "#2979FF", + textColorPrimary: "#000000", + textColorSecondary: "rgba(0,0,0,0.54)", + textColorHint: "rgba(0,0,0,0.38)", + rippleColor: "rgba(0,0,0,0.06)", + searchBarColor: "#FFFFFF", + menuColor: "#FFFFFF", + dividerColor: "rgba(0,0,0,0.1)", + filterColor: "#FFC107", + colorDisabled: "rgba(220,220,220,255)", + colorButtonText: "#FFFFFF", + statusBar: "dark", +}; + +/** + * Dark + */ +export const darkTheme = { + id: 2, + name: "Dark", + colorPrimary: "#242529", + colorPrimaryDark: "#202125", + colorAccent: "#3399FF", + textColorPrimary: "#FFFFFF", + textColorSecondary: "rgba(255,255,255,0.7)", + textColorHint: "rgba(255,255,255,0.5)", + rippleColor: "rgba(255,255,255,0.06)", + searchBarColor: "#303135", + menuColor: "#242529", + filterColor: "#FFEB3B", + dividerColor: "rgba(255,255,255,0.1)", + colorDisabled: "rgba(57,57,57,255)", + colorButtonText: "#FFFFFF", + statusBar: "light", +}; + +/** + * Amoled Dark + */ +export const amoledDarkTheme = { + id: 0, + name: "AMOLED Dark", + colorPrimary: "#000000", + colorPrimaryDark: "#000000", + colorAccent: "#3399FF", + textColorPrimary: "#FFFFFF", + textColorSecondary: "rgba(255,255,255,0.7)", + textColorHint: "rgba(255,255,255,0.5)", + rippleColor: "rgba(255,255,255,0.12)", + searchBarColor: "#1F1F1F", + menuColor: "#242529", + filterColor: "#FFEB3B", + dividerColor: "rgba(255,255,255,0.15)", + colorDisabled: "rgba(33,33,33,255)", + colorButtonText: "#FFFFFF", + statusBar: "light", +}; + +/** + * Midnight Dusk + */ +export const midnightDuskTheme = { + id: 3, + name: "Midnight Dusk", + colorPrimary: "#201F27", + colorPrimaryDark: "#16151D", + colorAccent: "#F02475", + textColorPrimary: "#FFFFFF", + textColorSecondary: "rgba(255,255,255,0.7)", + textColorHint: "rgba(255,255,255,0.5)", + rippleColor: "rgba(255,255,255,0.06)", + searchBarColor: "#201F27", + menuColor: "#201F27", + filterColor: "#FFEB3B", + dividerColor: "rgba(255,255,255,0.1)", + colorDisabled: "rgba(57,57,57,255)", + colorButtonText: "#FFFFFF", + statusBar: "light", +}; + +/** + * Lime + */ + +export const limeTheme = { + id: 4, + name: "Lime", + colorPrimary: "#201F27", + colorPrimaryDark: "#16151D", + colorAccent: "#4AF88A", + textColorPrimary: "#FFFFFF", + textColorSecondary: "rgba(255,255,255,0.7)", + textColorHint: "rgba(255,255,255,0.5)", + rippleColor: "rgba(255,255,255,0.06)", + searchBarColor: "#201F27", + menuColor: "#201F27", + filterColor: "#FFEB3B", + dividerColor: "rgba(255,255,255,0.1)", + colorDisabled: "rgba(57,57,57,255)", + colorButtonText: "#16151D", + statusBar: "light", +}; + +export const irisBlueTheme = { + id: 5, + name: "Iris Blue", + colorPrimary: "#393e46", + colorPrimaryDark: "#222831", + colorAccent: "#00adb5", + textColorPrimary: "#FFFFFF", + textColorSecondary: "rgba(255,255,255,0.7)", + textColorHint: "rgba(255,255,255,0.5)", + rippleColor: "rgba(255,255,255,0.06)", + searchBarColor: "#393e46", + menuColor: "#393e46", + filterColor: "#FFEB3B", + dividerColor: "rgba(255,255,255,0.1)", + colorDisabled: "#393e46", + colorButtonText: "#16151D", + statusBar: "light", +};