diff --git a/.DS_Store b/.DS_Store
index da271b7..286ce13 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/flutter/.DS_Store b/flutter/.DS_Store
deleted file mode 100644
index e75d9b1..0000000
Binary files a/flutter/.DS_Store and /dev/null differ
diff --git a/flutter/android/.idea/.gitignore b/flutter/android/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/flutter/android/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/flutter/android/.idea/compiler.xml b/flutter/android/.idea/compiler.xml
deleted file mode 100644
index b589d56..0000000
--- a/flutter/android/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/flutter/android/.idea/gradle.xml b/flutter/android/.idea/gradle.xml
deleted file mode 100644
index 331ed27..0000000
--- a/flutter/android/.idea/gradle.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/flutter/android/.idea/jarRepositories.xml b/flutter/android/.idea/jarRepositories.xml
deleted file mode 100644
index 85dbea4..0000000
--- a/flutter/android/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/flutter/android/.idea/kotlinc.xml b/flutter/android/.idea/kotlinc.xml
deleted file mode 100644
index 4515aa3..0000000
--- a/flutter/android/.idea/kotlinc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/flutter/android/.idea/misc.xml b/flutter/android/.idea/misc.xml
deleted file mode 100644
index 773fe0f..0000000
--- a/flutter/android/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/flutter/android/.idea/vcs.xml b/flutter/android/.idea/vcs.xml
deleted file mode 100644
index 6c0b863..0000000
--- a/flutter/android/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/flutter/ios/.DS_Store b/flutter/ios/.DS_Store
deleted file mode 100644
index 84bd718..0000000
Binary files a/flutter/ios/.DS_Store and /dev/null differ
diff --git a/flutter/ios/Podfile.lock b/flutter/ios/Podfile.lock
deleted file mode 100644
index bc541fc..0000000
--- a/flutter/ios/Podfile.lock
+++ /dev/null
@@ -1,88 +0,0 @@
-PODS:
- - Flutter (1.0.0)
- - flutter_icmp_ping (0.0.1):
- - Flutter
- - flutter_inappwebview (0.0.1):
- - Flutter
- - flutter_inappwebview/Core (= 0.0.1)
- - OrderedSet (~> 5.0)
- - flutter_inappwebview/Core (0.0.1):
- - Flutter
- - OrderedSet (~> 5.0)
- - fluttertoast (0.0.2):
- - Flutter
- - Toast
- - libphonenumber_plugin (0.0.1):
- - Flutter
- - PhoneNumberKit
- - OrderedSet (5.0.0)
- - path_provider_ios (0.0.1):
- - Flutter
- - PhoneNumberKit (3.7.11):
- - PhoneNumberKit/PhoneNumberKitCore (= 3.7.11)
- - PhoneNumberKit/UIKit (= 3.7.11)
- - PhoneNumberKit/PhoneNumberKitCore (3.7.11)
- - PhoneNumberKit/UIKit (3.7.11):
- - PhoneNumberKit/PhoneNumberKitCore
- - shared_preferences_ios (0.0.1):
- - Flutter
- - Toast (4.1.1)
- - url_launcher_ios (0.0.1):
- - Flutter
- - webview_flutter_wkwebview (0.0.1):
- - Flutter
-
-DEPENDENCIES:
- - Flutter (from `Flutter`)
- - flutter_icmp_ping (from `.symlinks/plugins/flutter_icmp_ping/ios`)
- - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
- - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- - libphonenumber_plugin (from `.symlinks/plugins/libphonenumber_plugin/ios`)
- - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
- - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
- - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
-
-SPEC REPOS:
- trunk:
- - OrderedSet
- - PhoneNumberKit
- - Toast
-
-EXTERNAL SOURCES:
- Flutter:
- :path: Flutter
- flutter_icmp_ping:
- :path: ".symlinks/plugins/flutter_icmp_ping/ios"
- flutter_inappwebview:
- :path: ".symlinks/plugins/flutter_inappwebview/ios"
- fluttertoast:
- :path: ".symlinks/plugins/fluttertoast/ios"
- libphonenumber_plugin:
- :path: ".symlinks/plugins/libphonenumber_plugin/ios"
- path_provider_ios:
- :path: ".symlinks/plugins/path_provider_ios/ios"
- shared_preferences_ios:
- :path: ".symlinks/plugins/shared_preferences_ios/ios"
- url_launcher_ios:
- :path: ".symlinks/plugins/url_launcher_ios/ios"
- webview_flutter_wkwebview:
- :path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
-
-SPEC CHECKSUMS:
- Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
- flutter_icmp_ping: 07e508847df7fa9262d050bb0b203de074bbe517
- flutter_inappwebview: acd4fc0f012cefd09015000c241137d82f01ba62
- fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c
- libphonenumber_plugin: 48bf4078546377eedaab4aa54978cd0f6fa23072
- OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
- path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
- PhoneNumberKit: ced55861269312a5e3bc2ef82a58d6255b1c976a
- shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
- Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
- url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
- webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
-
-PODFILE CHECKSUM: de47e8edb5f824045744e95e4ae955933333d4a0
-
-COCOAPODS: 1.15.2
diff --git a/flutter/ios/app.ios-arm64.symbols b/flutter/ios/app.ios-arm64.symbols
deleted file mode 100644
index 8503c8d..0000000
Binary files a/flutter/ios/app.ios-arm64.symbols and /dev/null differ
diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock
deleted file mode 100644
index b438f93..0000000
--- a/flutter/pubspec.lock
+++ /dev/null
@@ -1,823 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
- another_flushbar:
- dependency: "direct main"
- description:
- name: another_flushbar
- sha256: "19bf9520230ec40b300aaf9dd2a8fefcb277b25ecd1c4838f530566965befc2a"
- url: "https://pub.dev"
- source: hosted
- version: "1.12.30"
- another_transformer_page_view:
- dependency: transitive
- description:
- name: another_transformer_page_view
- sha256: a7cd46ede62d621c5abe7e58c7cb2745abe67b3bfec64f59b8889c93d7be7a8e
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- async:
- dependency: transitive
- description:
- name: async
- sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
- url: "https://pub.dev"
- source: hosted
- version: "2.11.0"
- boolean_selector:
- dependency: transitive
- description:
- name: boolean_selector
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- characters:
- dependency: transitive
- description:
- name: characters
- sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.0"
- clock:
- dependency: transitive
- description:
- name: clock
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
- url: "https://pub.dev"
- source: hosted
- version: "1.1.1"
- collection:
- dependency: transitive
- description:
- name: collection
- sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
- url: "https://pub.dev"
- source: hosted
- version: "1.18.0"
- convert:
- dependency: "direct main"
- description:
- name: convert
- sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.1"
- crisp:
- dependency: "direct main"
- description:
- name: crisp
- sha256: "3e866046776d65f9745e9845e4c348fcebdf7ca067009deb4554950fd41bedad"
- url: "https://pub.dev"
- source: hosted
- version: "0.3.1"
- crypto:
- dependency: "direct main"
- description:
- name: crypto
- sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
- url: "https://pub.dev"
- source: hosted
- version: "3.0.3"
- cupertino_icons:
- dependency: "direct main"
- description:
- name: cupertino_icons
- sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
- url: "https://pub.dev"
- source: hosted
- version: "1.0.5"
- dio:
- dependency: "direct main"
- description:
- name: dio
- sha256: e17f6b3097b8c51b72c74c9f071a605c47bcc8893839bd66732457a5ebe73714
- url: "https://pub.dev"
- source: hosted
- version: "5.5.0+1"
- dio_web_adapter:
- dependency: transitive
- description:
- name: dio_web_adapter
- sha256: "36c5b2d79eb17cdae41e974b7a8284fec631651d2a6f39a8a2ff22327e90aeac"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.1"
- equatable:
- dependency: transitive
- description:
- name: equatable
- sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
- url: "https://pub.dev"
- source: hosted
- version: "2.0.5"
- fake_async:
- dependency: transitive
- description:
- name: fake_async
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.1"
- ffi:
- dependency: transitive
- description:
- name: ffi
- sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- file:
- dependency: transitive
- description:
- name: file
- sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
- url: "https://pub.dev"
- source: hosted
- version: "6.1.4"
- fluro:
- dependency: "direct main"
- description:
- name: fluro
- sha256: "66d82964a1b6967def34155de92f7bb87ee247aba53ea5dbb70e2bf206865dbc"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.4"
- flutter:
- dependency: "direct main"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_easyrefresh:
- dependency: "direct main"
- description:
- name: flutter_easyrefresh
- sha256: "5d161ee5dcac34da9065116568147d742dd25fb9bff3b10024d9054b195087ad"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.2"
- flutter_icmp_ping:
- dependency: "direct main"
- description:
- name: flutter_icmp_ping
- sha256: b3c2ed75d2429d32e54c04c153dd5605ffba10124a5208a9906759d4cd4822cd
- url: "https://pub.dev"
- source: hosted
- version: "3.1.1"
- flutter_inappwebview:
- dependency: transitive
- description:
- name: flutter_inappwebview
- sha256: d28043f7d2a4708bc3b1656278739d738fa0412c80121572f73e875bc1fd8ece
- url: "https://pub.dev"
- source: hosted
- version: "5.7.2+2"
- flutter_lints:
- dependency: "direct dev"
- description:
- name: flutter_lints
- sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- flutter_localizations:
- dependency: "direct main"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_login:
- dependency: "direct main"
- description:
- name: flutter_login
- sha256: "1f7c46d0d76081cf4c5180e3a265b1f5b1d7e48c81859f58f03a8dcd27338b85"
- url: "https://pub.dev"
- source: hosted
- version: "5.0.0"
- flutter_screenutil:
- dependency: "direct main"
- description:
- name: flutter_screenutil
- sha256: "8239210dd68bee6b0577aa4a090890342d04a136ce1c81f98ee513fc0ce891de"
- url: "https://pub.dev"
- source: hosted
- version: "5.9.3"
- flutter_svg:
- dependency: "direct main"
- description:
- name: flutter_svg
- sha256: cbf529d563dd910a249041bde2a0dfc3cf62280fcc459b85f3d614b2ab73abb3
- url: "https://pub.dev"
- source: hosted
- version: "0.23.0+1"
- flutter_swiper_plus:
- dependency: "direct main"
- description:
- name: flutter_swiper_plus
- sha256: cf2e39b230c570f6bdb87f8a19d1c94be47441ffacb09ddc371c7a628e0dbe6a
- url: "https://pub.dev"
- source: hosted
- version: "2.0.4"
- flutter_test:
- dependency: "direct dev"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_web_plugins:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.0"
- fluttertoast:
- dependency: "direct main"
- description:
- name: fluttertoast
- sha256: "7cc92eabe01e3f1babe1571c5560b135dfc762a34e41e9056881e2196b178ec1"
- url: "https://pub.dev"
- source: hosted
- version: "8.1.2"
- font_awesome_flutter:
- dependency: transitive
- description:
- name: font_awesome_flutter
- sha256: "959ef4add147753f990b4a7c6cccb746d5792dbdc81b1cde99e62e7edb31b206"
- url: "https://pub.dev"
- source: hosted
- version: "10.4.0"
- get:
- dependency: "direct main"
- description:
- name: get
- sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a"
- url: "https://pub.dev"
- source: hosted
- version: "4.6.5"
- google_fonts:
- dependency: "direct main"
- description:
- name: google_fonts
- sha256: db5efba8106bd784a92c96cfd81716f4e06baab54e37de858488e9a00a764cad
- url: "https://pub.dev"
- source: hosted
- version: "5.0.0"
- http:
- dependency: transitive
- description:
- name: http
- sha256: "4c3f04bfb64d3efd508d06b41b825542f08122d30bda4933fb95c069d22a4fa3"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.0"
- http_parser:
- dependency: transitive
- description:
- name: http_parser
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.2"
- intl:
- dependency: "direct main"
- description:
- name: intl
- sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
- url: "https://pub.dev"
- source: hosted
- version: "0.19.0"
- intl_phone_number_input:
- dependency: transitive
- description:
- name: intl_phone_number_input
- sha256: "1c4328713a9503ab26a1fdbb6b00b4cada68c18aac922b35bedbc72eff1297c3"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.4"
- js:
- dependency: transitive
- description:
- name: js
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
- url: "https://pub.dev"
- source: hosted
- version: "0.6.7"
- leak_tracker:
- dependency: transitive
- description:
- name: leak_tracker
- sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
- url: "https://pub.dev"
- source: hosted
- version: "10.0.4"
- leak_tracker_flutter_testing:
- dependency: transitive
- description:
- name: leak_tracker_flutter_testing
- sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.3"
- leak_tracker_testing:
- dependency: transitive
- description:
- name: leak_tracker_testing
- sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- libphonenumber_platform_interface:
- dependency: transitive
- description:
- name: libphonenumber_platform_interface
- sha256: f801f6c65523f56504b83f0890e6dad584ab3a7507dca65fec0eed640afea40f
- url: "https://pub.dev"
- source: hosted
- version: "0.4.2"
- libphonenumber_plugin:
- dependency: transitive
- description:
- name: libphonenumber_plugin
- sha256: c615021d9816fbda2b2587881019ed595ecdf54d999652d7e4cce0e1f026368c
- url: "https://pub.dev"
- source: hosted
- version: "0.3.3"
- libphonenumber_web:
- dependency: transitive
- description:
- name: libphonenumber_web
- sha256: "8186f420dbe97c3132283e52819daff1e55d60d6db46f7ea5ac42f42a28cc2ef"
- url: "https://pub.dev"
- source: hosted
- version: "0.3.2"
- lints:
- dependency: transitive
- description:
- name: lints
- sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.1"
- matcher:
- dependency: transitive
- description:
- name: matcher
- sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
- url: "https://pub.dev"
- source: hosted
- version: "0.12.16+1"
- material_color_utilities:
- dependency: transitive
- description:
- name: material_color_utilities
- sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
- url: "https://pub.dev"
- source: hosted
- version: "0.8.0"
- meta:
- dependency: "direct main"
- description:
- name: meta
- sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
- url: "https://pub.dev"
- source: hosted
- version: "1.12.0"
- modal_bottom_sheet:
- dependency: "direct main"
- description:
- name: modal_bottom_sheet
- sha256: "3bba63c62d35c931bce7f8ae23a47f9a05836d8cb3c11122ada64e0b2f3d718f"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0-pre"
- nested:
- dependency: transitive
- description:
- name: nested
- sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.0"
- path:
- dependency: transitive
- description:
- name: path
- sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
- url: "https://pub.dev"
- source: hosted
- version: "1.9.0"
- path_drawing:
- dependency: transitive
- description:
- name: path_drawing
- sha256: "3bdd251dae9ffaef944450b73f168610db7e968e7b20daf0c3907f8b4aafc8a2"
- url: "https://pub.dev"
- source: hosted
- version: "0.5.1+1"
- path_parsing:
- dependency: transitive
- description:
- name: path_parsing
- sha256: ee5c47c1058ad66b4a41746ec3996af9593d0858872807bcd64ac118f0700337
- url: "https://pub.dev"
- source: hosted
- version: "0.2.1"
- path_provider:
- dependency: "direct main"
- description:
- name: path_provider
- sha256: "050e8e85e4b7fecdf2bb3682c1c64c4887a183720c802d323de8a5fd76d372dd"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.11"
- path_provider_android:
- dependency: transitive
- description:
- name: path_provider_android
- sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
- url: "https://pub.dev"
- source: hosted
- version: "2.0.22"
- path_provider_ios:
- dependency: transitive
- description:
- name: path_provider_ios
- sha256: "03d639406f5343478352433f00d3c4394d52dac8df3d847869c5e2333e0bbce8"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.11"
- path_provider_linux:
- dependency: transitive
- description:
- name: path_provider_linux
- sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
- url: "https://pub.dev"
- source: hosted
- version: "2.1.7"
- path_provider_macos:
- dependency: transitive
- description:
- name: path_provider_macos
- sha256: "2a97e7fbb7ae9dcd0dfc1220a78e9ec3e71da691912e617e8715ff2a13086ae8"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.6"
- path_provider_platform_interface:
- dependency: transitive
- description:
- name: path_provider_platform_interface
- sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
- url: "https://pub.dev"
- source: hosted
- version: "2.0.5"
- path_provider_windows:
- dependency: transitive
- description:
- name: path_provider_windows
- sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- petitparser:
- dependency: transitive
- description:
- name: petitparser
- sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
- url: "https://pub.dev"
- source: hosted
- version: "5.4.0"
- phone_numbers_parser:
- dependency: transitive
- description:
- name: phone_numbers_parser
- sha256: "62451b689d842791ed1fd5dc9eacf36ffa8bad23a78ad6cde732dc2fb222fae2"
- url: "https://pub.dev"
- source: hosted
- version: "8.3.0"
- platform:
- dependency: transitive
- description:
- name: platform
- sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.0"
- plugin_platform_interface:
- dependency: transitive
- description:
- name: plugin_platform_interface
- sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.8"
- process:
- dependency: transitive
- description:
- name: process
- sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
- url: "https://pub.dev"
- source: hosted
- version: "4.2.4"
- provider:
- dependency: "direct main"
- description:
- name: provider
- sha256: e1e7413d70444ea3096815a60fe5da1b11bda8a9dc4769252cc82c53536f8bcc
- url: "https://pub.dev"
- source: hosted
- version: "6.0.4"
- quiver:
- dependency: transitive
- description:
- name: quiver
- sha256: "93982981971e812c94d4a6fa3a57b89f9ec12b38b6380cd3c1370c3b01e4580e"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.0"
- shared_preferences:
- dependency: "direct main"
- description:
- name: shared_preferences
- sha256: "76917b7d4b9526b2ba416808a7eb9fb2863c1a09cf63ec85f1453da240fa818a"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.15"
- shared_preferences_android:
- dependency: transitive
- description:
- name: shared_preferences_android
- sha256: "8e251f3c986002b65fed6396bce81f379fb63c27317d49743cf289fd0fd1ab97"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.14"
- shared_preferences_ios:
- dependency: transitive
- description:
- name: shared_preferences_ios
- sha256: "585a14cefec7da8c9c2fb8cd283a3bb726b4155c0952afe6a0caaa7b2272de34"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- shared_preferences_linux:
- dependency: transitive
- description:
- name: shared_preferences_linux
- sha256: "28aefc1261746e7bad3d09799496054beb84e8c4ffcdfed7734e17b4ada459a5"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- shared_preferences_macos:
- dependency: transitive
- description:
- name: shared_preferences_macos
- sha256: fbb94bf296576f49be37a1496d5951796211a8db0aa22cc0d68c46440dad808c
- url: "https://pub.dev"
- source: hosted
- version: "2.0.4"
- shared_preferences_platform_interface:
- dependency: transitive
- description:
- name: shared_preferences_platform_interface
- sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3
- url: "https://pub.dev"
- source: hosted
- version: "2.1.0"
- shared_preferences_web:
- dependency: transitive
- description:
- name: shared_preferences_web
- sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958
- url: "https://pub.dev"
- source: hosted
- version: "2.0.4"
- shared_preferences_windows:
- dependency: transitive
- description:
- name: shared_preferences_windows
- sha256: "97f7ab9a7da96d9cf19581f5de520ceb529548498bd6b5e0ccd02d68a0d15eba"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- sign_in_button:
- dependency: transitive
- description:
- name: sign_in_button
- sha256: "977b9b0415d2f3909e642275dfabba7919ba8e111324641b76cae6d1acbd183e"
- url: "https://pub.dev"
- source: hosted
- version: "3.2.0"
- sky_engine:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.99"
- source_span:
- dependency: transitive
- description:
- name: source_span
- sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
- url: "https://pub.dev"
- source: hosted
- version: "1.10.0"
- stack_trace:
- dependency: transitive
- description:
- name: stack_trace
- sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
- url: "https://pub.dev"
- source: hosted
- version: "1.11.1"
- stream_channel:
- dependency: transitive
- description:
- name: stream_channel
- sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
- url: "https://pub.dev"
- source: hosted
- version: "2.1.2"
- string_scanner:
- dependency: transitive
- description:
- name: string_scanner
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.0"
- sync_http:
- dependency: "direct main"
- description:
- name: sync_http
- sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
- url: "https://pub.dev"
- source: hosted
- version: "0.3.1"
- synchronized:
- dependency: "direct main"
- description:
- name: synchronized
- sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.0"
- term_glyph:
- dependency: transitive
- description:
- name: term_glyph
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- test_api:
- dependency: transitive
- description:
- name: test_api
- sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.0"
- typed_data:
- dependency: transitive
- description:
- name: typed_data
- sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
- url: "https://pub.dev"
- source: hosted
- version: "1.3.1"
- url_launcher:
- dependency: "direct main"
- description:
- name: url_launcher
- sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3
- url: "https://pub.dev"
- source: hosted
- version: "6.1.11"
- url_launcher_android:
- dependency: transitive
- description:
- name: url_launcher_android
- sha256: "6f91d30ce9060c204b2dbe728adb300750fa4b228e8f7ed1b961aa1ceb728799"
- url: "https://pub.dev"
- source: hosted
- version: "6.0.22"
- url_launcher_ios:
- dependency: transitive
- description:
- name: url_launcher_ios
- sha256: "6ba7dddee26c9fae27c9203c424631109d73c8fa26cfa7bc3e35e751cb87f62e"
- url: "https://pub.dev"
- source: hosted
- version: "6.0.17"
- url_launcher_linux:
- dependency: transitive
- description:
- name: url_launcher_linux
- sha256: "360fa359ab06bcb4f7c5cd3123a2a9a4d3364d4575d27c4b33468bd4497dd094"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- url_launcher_macos:
- dependency: transitive
- description:
- name: url_launcher_macos
- sha256: a9b3ea9043eabfaadfa3fb89de67a11210d85569086d22b3854484beab8b3978
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- url_launcher_platform_interface:
- dependency: transitive
- description:
- name: url_launcher_platform_interface
- sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- url_launcher_web:
- dependency: transitive
- description:
- name: url_launcher_web
- sha256: "5669882643b96bb6d5786637cac727c6e918a790053b09245fd4513b8a07df2a"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.13"
- url_launcher_windows:
- dependency: transitive
- description:
- name: url_launcher_windows
- sha256: e3c3b16d3104260c10eea3b0e34272aaa57921f83148b0619f74c2eced9b7ef1
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- vector_math:
- dependency: transitive
- description:
- name: vector_math
- sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- vm_service:
- dependency: transitive
- description:
- name: vm_service
- sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
- url: "https://pub.dev"
- source: hosted
- version: "14.2.1"
- webview_flutter:
- dependency: "direct main"
- description:
- name: webview_flutter
- sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.4"
- webview_flutter_android:
- dependency: transitive
- description:
- name: webview_flutter_android
- sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd"
- url: "https://pub.dev"
- source: hosted
- version: "2.10.4"
- webview_flutter_platform_interface:
- dependency: transitive
- description:
- name: webview_flutter_platform_interface
- sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf"
- url: "https://pub.dev"
- source: hosted
- version: "1.9.5"
- webview_flutter_wkwebview:
- dependency: transitive
- description:
- name: webview_flutter_wkwebview
- sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0
- url: "https://pub.dev"
- source: hosted
- version: "2.9.5"
- win32:
- dependency: transitive
- description:
- name: win32
- sha256: ca121dbbadb3e43b449053feab0cdf3f2bff93b107cacf0290e3d29f717374b6
- url: "https://pub.dev"
- source: hosted
- version: "3.1.2"
- xdg_directories:
- dependency: transitive
- description:
- name: xdg_directories
- sha256: "11541eedefbcaec9de35aa82650b695297ce668662bbd6e3911a7fabdbde589f"
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0+2"
- xml:
- dependency: transitive
- description:
- name: xml
- sha256: "80d494c09849dc3f899d227a78c30c5b949b985ededf884cb3f3bcd39f4b447a"
- url: "https://pub.dev"
- source: hosted
- version: "5.4.1"
-sdks:
- dart: ">=3.3.0 <4.0.0"
- flutter: ">=3.18.0-18.0.pre.54"
diff --git a/flutter/uuvpn.iml b/flutter/uuvpn.iml
deleted file mode 100644
index f66303d..0000000
--- a/flutter/uuvpn.iml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/flutter/LICENSE b/source/LICENSE
similarity index 100%
rename from flutter/LICENSE
rename to source/LICENSE
diff --git a/flutter/analysis_options.yaml b/source/analysis_options.yaml
similarity index 100%
rename from flutter/analysis_options.yaml
rename to source/analysis_options.yaml
diff --git a/flutter/android/.gitignore b/source/android/.gitignore
similarity index 100%
rename from flutter/android/.gitignore
rename to source/android/.gitignore
diff --git a/flutter/android/app/build.gradle b/source/android/app/build.gradle
similarity index 100%
rename from flutter/android/app/build.gradle
rename to source/android/app/build.gradle
diff --git a/flutter/android/app/profile/output-metadata.json b/source/android/app/profile/output-metadata.json
similarity index 100%
rename from flutter/android/app/profile/output-metadata.json
rename to source/android/app/profile/output-metadata.json
diff --git a/flutter/android/app/src/debug/AndroidManifest.xml b/source/android/app/src/debug/AndroidManifest.xml
similarity index 100%
rename from flutter/android/app/src/debug/AndroidManifest.xml
rename to source/android/app/src/debug/AndroidManifest.xml
diff --git a/flutter/android/app/src/main/AndroidManifest.xml b/source/android/app/src/main/AndroidManifest.xml
similarity index 100%
rename from flutter/android/app/src/main/AndroidManifest.xml
rename to source/android/app/src/main/AndroidManifest.xml
diff --git a/flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so b/source/android/app/src/main/jniLibs/arm64-v8a/libleaf.so
similarity index 100%
rename from flutter/android/app/src/main/jniLibs/arm64-v8a/libleaf.so
rename to source/android/app/src/main/jniLibs/arm64-v8a/libleaf.so
diff --git a/flutter/android/app/src/main/jniLibs/armeabi/libleaf.so b/source/android/app/src/main/jniLibs/armeabi/libleaf.so
similarity index 100%
rename from flutter/android/app/src/main/jniLibs/armeabi/libleaf.so
rename to source/android/app/src/main/jniLibs/armeabi/libleaf.so
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/Core.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/MainActivity.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/TunnelService.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/ConcurrentLocalSocketListener.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DefaultNetworkListener.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/DnsResolverCompat.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/net/LocalSocketListener.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/LocalDnsWorker.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TrafficMonitor.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/TunnelInstance.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/services/VpnState.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/DeviceStorageApp.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/TrafficStates.kt
diff --git a/flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt b/source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt
similarity index 100%
rename from flutter/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt
rename to source/android/app/src/main/kotlin/com/sail_tunnel/sail/utils/Utils.kt
diff --git a/flutter/android/app/src/main/res/drawable-v21/launch_background.xml b/source/android/app/src/main/res/drawable-v21/launch_background.xml
similarity index 100%
rename from flutter/android/app/src/main/res/drawable-v21/launch_background.xml
rename to source/android/app/src/main/res/drawable-v21/launch_background.xml
diff --git a/flutter/android/app/src/main/res/drawable/launch_background.xml b/source/android/app/src/main/res/drawable/launch_background.xml
similarity index 100%
rename from flutter/android/app/src/main/res/drawable/launch_background.xml
rename to source/android/app/src/main/res/drawable/launch_background.xml
diff --git a/flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png b/source/android/app/src/main/res/mipmap-hdpi/app_icon.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-hdpi/app_icon.png
rename to source/android/app/src/main/res/mipmap-hdpi/app_icon.png
diff --git a/flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-hdpi/app_icon_round.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-hdpi/app_icon_round.png
rename to source/android/app/src/main/res/mipmap-hdpi/app_icon_round.png
diff --git a/flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png b/source/android/app/src/main/res/mipmap-ldpi/app_icon.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-ldpi/app_icon.png
rename to source/android/app/src/main/res/mipmap-ldpi/app_icon.png
diff --git a/flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-ldpi/app_icon_round.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-ldpi/app_icon_round.png
rename to source/android/app/src/main/res/mipmap-ldpi/app_icon_round.png
diff --git a/flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png b/source/android/app/src/main/res/mipmap-mdpi/app_icon.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-mdpi/app_icon.png
rename to source/android/app/src/main/res/mipmap-mdpi/app_icon.png
diff --git a/flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-mdpi/app_icon_round.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-mdpi/app_icon_round.png
rename to source/android/app/src/main/res/mipmap-mdpi/app_icon_round.png
diff --git a/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png b/source/android/app/src/main/res/mipmap-xhdpi/app_icon.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-xhdpi/app_icon.png
rename to source/android/app/src/main/res/mipmap-xhdpi/app_icon.png
diff --git a/flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png
rename to source/android/app/src/main/res/mipmap-xhdpi/app_icon_round.png
diff --git a/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png b/source/android/app/src/main/res/mipmap-xxhdpi/app_icon.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon.png
rename to source/android/app/src/main/res/mipmap-xxhdpi/app_icon.png
diff --git a/flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png
rename to source/android/app/src/main/res/mipmap-xxhdpi/app_icon_round.png
diff --git a/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png b/source/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png
rename to source/android/app/src/main/res/mipmap-xxxhdpi/app_icon.png
diff --git a/flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png b/source/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png
similarity index 100%
rename from flutter/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png
rename to source/android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.png
diff --git a/flutter/android/app/src/main/res/values-night/styles.xml b/source/android/app/src/main/res/values-night/styles.xml
similarity index 100%
rename from flutter/android/app/src/main/res/values-night/styles.xml
rename to source/android/app/src/main/res/values-night/styles.xml
diff --git a/flutter/android/app/src/main/res/values/styles.xml b/source/android/app/src/main/res/values/styles.xml
similarity index 100%
rename from flutter/android/app/src/main/res/values/styles.xml
rename to source/android/app/src/main/res/values/styles.xml
diff --git a/flutter/android/app/src/profile/AndroidManifest.xml b/source/android/app/src/profile/AndroidManifest.xml
similarity index 100%
rename from flutter/android/app/src/profile/AndroidManifest.xml
rename to source/android/app/src/profile/AndroidManifest.xml
diff --git a/flutter/android/build.gradle b/source/android/build.gradle
similarity index 100%
rename from flutter/android/build.gradle
rename to source/android/build.gradle
diff --git a/flutter/android/gradle.properties b/source/android/gradle.properties
similarity index 100%
rename from flutter/android/gradle.properties
rename to source/android/gradle.properties
diff --git a/flutter/android/gradle/wrapper/gradle-wrapper.properties b/source/android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from flutter/android/gradle/wrapper/gradle-wrapper.properties
rename to source/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/flutter/android/settings.gradle b/source/android/settings.gradle
similarity index 100%
rename from flutter/android/settings.gradle
rename to source/android/settings.gradle
diff --git a/flutter/assets/Features.svg b/source/assets/Features.svg
similarity index 100%
rename from flutter/assets/Features.svg
rename to source/assets/Features.svg
diff --git a/flutter/assets/active.svg b/source/assets/active.svg
similarity index 100%
rename from flutter/assets/active.svg
rename to source/assets/active.svg
diff --git a/flutter/assets/flags/Germany.png b/source/assets/flags/Germany.png
similarity index 100%
rename from flutter/assets/flags/Germany.png
rename to source/assets/flags/Germany.png
diff --git a/flutter/assets/flags/Japan.png b/source/assets/flags/Japan.png
similarity index 100%
rename from flutter/assets/flags/Japan.png
rename to source/assets/flags/Japan.png
diff --git a/flutter/assets/flags/UK.png b/source/assets/flags/UK.png
similarity index 100%
rename from flutter/assets/flags/UK.png
rename to source/assets/flags/UK.png
diff --git a/flutter/assets/flags/United States.png b/source/assets/flags/United States.png
similarity index 100%
rename from flutter/assets/flags/United States.png
rename to source/assets/flags/United States.png
diff --git a/flutter/assets/flags/hk.svg b/source/assets/flags/hk.svg
similarity index 100%
rename from flutter/assets/flags/hk.svg
rename to source/assets/flags/hk.svg
diff --git a/flutter/assets/flags/jp.svg b/source/assets/flags/jp.svg
similarity index 100%
rename from flutter/assets/flags/jp.svg
rename to source/assets/flags/jp.svg
diff --git a/flutter/assets/flags/tw.svg b/source/assets/flags/tw.svg
similarity index 100%
rename from flutter/assets/flags/tw.svg
rename to source/assets/flags/tw.svg
diff --git a/flutter/assets/flags/us.svg b/source/assets/flags/us.svg
similarity index 100%
rename from flutter/assets/flags/us.svg
rename to source/assets/flags/us.svg
diff --git a/flutter/assets/font/Aquire.otf b/source/assets/font/Aquire.otf
similarity index 100%
rename from flutter/assets/font/Aquire.otf
rename to source/assets/font/Aquire.otf
diff --git a/flutter/assets/history.svg b/source/assets/history.svg
similarity index 100%
rename from flutter/assets/history.svg
rename to source/assets/history.svg
diff --git a/flutter/assets/home.svg b/source/assets/home.svg
similarity index 100%
rename from flutter/assets/home.svg
rename to source/assets/home.svg
diff --git a/flutter/assets/id.svg b/source/assets/id.svg
similarity index 100%
rename from flutter/assets/id.svg
rename to source/assets/id.svg
diff --git a/flutter/assets/logo.svg b/source/assets/logo.svg
similarity index 100%
rename from flutter/assets/logo.svg
rename to source/assets/logo.svg
diff --git a/flutter/assets/logo2.png b/source/assets/logo2.png
similarity index 100%
rename from flutter/assets/logo2.png
rename to source/assets/logo2.png
diff --git a/flutter/assets/logo2.svg b/source/assets/logo2.svg
similarity index 100%
rename from flutter/assets/logo2.svg
rename to source/assets/logo2.svg
diff --git a/flutter/assets/map.png b/source/assets/map.png
similarity index 100%
rename from flutter/assets/map.png
rename to source/assets/map.png
diff --git a/flutter/assets/map.svg b/source/assets/map.svg
similarity index 100%
rename from flutter/assets/map.svg
rename to source/assets/map.svg
diff --git a/flutter/assets/powOn.svg b/source/assets/powOn.svg
similarity index 100%
rename from flutter/assets/powOn.svg
rename to source/assets/powOn.svg
diff --git a/flutter/assets/profile.svg b/source/assets/profile.svg
similarity index 100%
rename from flutter/assets/profile.svg
rename to source/assets/profile.svg
diff --git a/flutter/assets/settings.svg b/source/assets/settings.svg
similarity index 100%
rename from flutter/assets/settings.svg
rename to source/assets/settings.svg
diff --git a/flutter/assets/text2.svg b/source/assets/text2.svg
similarity index 100%
rename from flutter/assets/text2.svg
rename to source/assets/text2.svg
diff --git a/flutter/ios/.gitattributes b/source/ios/.gitattributes
similarity index 100%
rename from flutter/ios/.gitattributes
rename to source/ios/.gitattributes
diff --git a/flutter/ios/.gitignore b/source/ios/.gitignore
similarity index 100%
rename from flutter/ios/.gitignore
rename to source/ios/.gitignore
diff --git a/source/ios/Flutter.framework/Flutter b/source/ios/Flutter.framework/Flutter
new file mode 100644
index 0000000..9e7f18a
Binary files /dev/null and b/source/ios/Flutter.framework/Flutter differ
diff --git a/source/ios/Flutter.framework/Headers/Flutter.h b/source/ios/Flutter.framework/Headers/Flutter.h
new file mode 100644
index 0000000..705dfcb
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/Flutter.h
@@ -0,0 +1,24 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTER_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTER_H_
+
+#import "FlutterAppDelegate.h"
+#import "FlutterBinaryMessenger.h"
+#import "FlutterCallbackCache.h"
+#import "FlutterChannels.h"
+#import "FlutterCodecs.h"
+#import "FlutterDartProject.h"
+#import "FlutterEngine.h"
+#import "FlutterEngineGroup.h"
+#import "FlutterHeadlessDartRunner.h"
+#import "FlutterMacros.h"
+#import "FlutterPlatformViews.h"
+#import "FlutterPlugin.h"
+#import "FlutterPluginAppLifeCycleDelegate.h"
+#import "FlutterTexture.h"
+#import "FlutterViewController.h"
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTER_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterAppDelegate.h b/source/ios/Flutter.framework/Headers/FlutterAppDelegate.h
new file mode 100644
index 0000000..0c427c2
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterAppDelegate.h
@@ -0,0 +1,34 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERAPPDELEGATE_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERAPPDELEGATE_H_
+
+#import
+
+#import "FlutterMacros.h"
+#import "FlutterPlugin.h"
+
+/**
+ * `UIApplicationDelegate` subclass for simple apps that want default behavior.
+ *
+ * This class implements the following behaviors:
+ * * Status bar touches are forwarded to the key window's root view
+ * `FlutterViewController`, in order to trigger scroll to top.
+ * * Keeps the Flutter connection open in debug mode when the phone screen
+ * locks.
+ *
+ * App delegates for Flutter applications are *not* required to inherit from
+ * this class. Developers of custom app delegate classes should copy and paste
+ * code as necessary from FlutterAppDelegate.mm.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterAppDelegate
+ : UIResponder
+
+@property(strong, nonatomic) UIWindow* window;
+
+@end
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERAPPDELEGATE_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterBinaryMessenger.h b/source/ios/Flutter.framework/Headers/FlutterBinaryMessenger.h
new file mode 100644
index 0000000..eb0186f
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterBinaryMessenger.h
@@ -0,0 +1,106 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERBINARYMESSENGER_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERBINARYMESSENGER_H_
+
+#import
+
+#import "FlutterMacros.h"
+
+NS_ASSUME_NONNULL_BEGIN
+/**
+ * A message reply callback.
+ *
+ * Used for submitting a binary reply back to a Flutter message sender. Also used
+ * in for handling a binary message reply received from Flutter.
+ *
+ * @param reply The reply.
+ */
+typedef void (^FlutterBinaryReply)(NSData* _Nullable reply);
+
+/**
+ * A strategy for handling incoming binary messages from Flutter and to send
+ * asynchronous replies back to Flutter.
+ *
+ * @param message The message.
+ * @param reply A callback for submitting an asynchronous reply to the sender.
+ */
+typedef void (^FlutterBinaryMessageHandler)(NSData* _Nullable message, FlutterBinaryReply reply);
+
+typedef int64_t FlutterBinaryMessengerConnection;
+
+@protocol FlutterTaskQueue
+@end
+
+/**
+ * A facility for communicating with the Flutter side using asynchronous message
+ * passing with binary messages.
+ *
+ * Implementated by:
+ * - `FlutterBasicMessageChannel`, which supports communication using structured
+ * messages.
+ * - `FlutterMethodChannel`, which supports communication using asynchronous
+ * method calls.
+ * - `FlutterEventChannel`, which supports commuication using event streams.
+ */
+FLUTTER_DARWIN_EXPORT
+@protocol FlutterBinaryMessenger
+/// TODO(gaaclarke): Remove optional when macos supports Background Platform Channels.
+@optional
+- (NSObject*)makeBackgroundTaskQueue;
+
+- (FlutterBinaryMessengerConnection)
+ setMessageHandlerOnChannel:(NSString*)channel
+ binaryMessageHandler:(FlutterBinaryMessageHandler _Nullable)handler
+ taskQueue:(NSObject* _Nullable)taskQueue;
+
+@required
+/**
+ * Sends a binary message to the Flutter side on the specified channel, expecting
+ * no reply.
+ *
+ * @param channel The channel name.
+ * @param message The message.
+ */
+- (void)sendOnChannel:(NSString*)channel message:(NSData* _Nullable)message;
+
+/**
+ * Sends a binary message to the Flutter side on the specified channel, expecting
+ * an asynchronous reply.
+ *
+ * @param channel The channel name.
+ * @param message The message.
+ * @param callback A callback for receiving a reply.
+ */
+- (void)sendOnChannel:(NSString*)channel
+ message:(NSData* _Nullable)message
+ binaryReply:(FlutterBinaryReply _Nullable)callback;
+
+/**
+ * Registers a message handler for incoming binary messages from the Flutter side
+ * on the specified channel.
+ *
+ * Replaces any existing handler. Use a `nil` handler for unregistering the
+ * existing handler.
+ *
+ * @param channel The channel name.
+ * @param handler The message handler.
+ * @return An identifier that represents the connection that was just created to the channel.
+ */
+- (FlutterBinaryMessengerConnection)setMessageHandlerOnChannel:(NSString*)channel
+ binaryMessageHandler:
+ (FlutterBinaryMessageHandler _Nullable)handler;
+
+/**
+ * Clears out a channel's message handler if that handler is still the one that
+ * was created as a result of
+ * `setMessageHandlerOnChannel:binaryMessageHandler:`.
+ *
+ * @param connection The result from `setMessageHandlerOnChannel:binaryMessageHandler:`.
+ */
+- (void)cleanUpConnection:(FlutterBinaryMessengerConnection)connection;
+@end
+NS_ASSUME_NONNULL_END
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERBINARYMESSENGER_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterCallbackCache.h b/source/ios/Flutter.framework/Headers/FlutterCallbackCache.h
new file mode 100644
index 0000000..b6e331d
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterCallbackCache.h
@@ -0,0 +1,54 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERCALLBACKCACHE_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERCALLBACKCACHE_H_
+
+#import
+
+#import "FlutterMacros.h"
+
+/**
+ * An object containing the result of `FlutterCallbackCache`'s `lookupCallbackInformation`
+ * method.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterCallbackInformation : NSObject
+/**
+ * The name of the callback.
+ */
+@property(copy) NSString* callbackName;
+/**
+ * The class name of the callback.
+ */
+@property(copy) NSString* callbackClassName;
+/**
+ * The library path of the callback.
+ */
+@property(copy) NSString* callbackLibraryPath;
+@end
+
+/**
+ * The cache containing callback information for spawning a
+ * `FlutterHeadlessDartRunner`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterCallbackCache : NSObject
+/**
+ * Returns the callback information for the given callback handle.
+ * This callback information can be used when spawning a
+ * `FlutterHeadlessDartRunner`.
+ *
+ * @param handle The handle for a callback, provided by the
+ * Dart method `PluginUtilities.getCallbackHandle`.
+ * @return A `FlutterCallbackInformation` object which contains the name of the
+ * callback, the name of the class in which the callback is defined, and the
+ * path of the library which contains the callback. If the provided handle is
+ * invalid, nil is returned.
+ */
++ (FlutterCallbackInformation*)lookupCallbackInformation:(int64_t)handle;
+
+@end
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERCALLBACKCACHE_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterChannels.h b/source/ios/Flutter.framework/Headers/FlutterChannels.h
new file mode 100644
index 0000000..b88b78a
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterChannels.h
@@ -0,0 +1,487 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCHANNELS_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCHANNELS_H_
+
+#import "FlutterBinaryMessenger.h"
+#import "FlutterCodecs.h"
+
+NS_ASSUME_NONNULL_BEGIN
+/**
+ * A message reply callback.
+ *
+ * Used for submitting a reply back to a Flutter message sender. Also used in
+ * the dual capacity for handling a message reply received from Flutter.
+ *
+ * @param reply The reply.
+ */
+typedef void (^FlutterReply)(id _Nullable reply);
+
+/**
+ * A strategy for handling incoming messages from Flutter and to send
+ * asynchronous replies back to Flutter.
+ *
+ * @param message The message.
+ * @param callback A callback for submitting a reply to the sender which can be invoked from any
+ * thread.
+ */
+typedef void (^FlutterMessageHandler)(id _Nullable message, FlutterReply callback);
+
+/**
+ * A channel for communicating with the Flutter side using basic, asynchronous
+ * message passing.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterBasicMessageChannel : NSObject
+/**
+ * Creates a `FlutterBasicMessageChannel` with the specified name and binary
+ * messenger.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * The channel uses `FlutterStandardMessageCodec` to encode and decode messages.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ */
++ (instancetype)messageChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger;
+
+/**
+ * Creates a `FlutterBasicMessageChannel` with the specified name, binary
+ * messenger, and message codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The message codec.
+ */
++ (instancetype)messageChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec;
+
+/**
+ * Initializes a `FlutterBasicMessageChannel` with the specified name, binary
+ * messenger, and message codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The message codec.
+ */
+- (instancetype)initWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec;
+
+/**
+ * Initializes a `FlutterBasicMessageChannel` with the specified name, binary
+ * messenger, and message codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The message codec.
+ * @param taskQueue The FlutterTaskQueue that executes the handler (see
+ -[FlutterBinaryMessenger makeBackgroundTaskQueue]).
+ */
+- (instancetype)initWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec
+ taskQueue:(NSObject* _Nullable)taskQueue;
+
+/**
+ * Sends the specified message to the Flutter side, ignoring any reply.
+ *
+ * @param message The message. Must be supported by the codec of this
+ * channel.
+ */
+- (void)sendMessage:(id _Nullable)message;
+
+/**
+ * Sends the specified message to the Flutter side, expecting an asynchronous
+ * reply.
+ *
+ * @param message The message. Must be supported by the codec of this channel.
+ * @param callback A callback to be invoked with the message reply from Flutter.
+ */
+- (void)sendMessage:(id _Nullable)message reply:(FlutterReply _Nullable)callback;
+
+/**
+ * Registers a message handler with this channel.
+ *
+ * Replaces any existing handler. Use a `nil` handler for unregistering the
+ * existing handler.
+ *
+ * @param handler The message handler.
+ */
+- (void)setMessageHandler:(FlutterMessageHandler _Nullable)handler;
+
+/**
+ * Adjusts the number of messages that will get buffered when sending messages to
+ * channels that aren't fully set up yet. For example, the engine isn't running
+ * yet or the channel's message handler isn't set up on the Dart side yet.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param newSize The number of messages that will get buffered.
+ */
++ (void)resizeChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ size:(NSInteger)newSize;
+
+/**
+ * Adjusts the number of messages that will get buffered when sending messages to
+ * channels that aren't fully set up yet. For example, the engine isn't running
+ * yet or the channel's message handler isn't set up on the Dart side yet.
+ *
+ * @param newSize The number of messages that will get buffered.
+ */
+- (void)resizeChannelBuffer:(NSInteger)newSize;
+
+/**
+ * Defines whether the channel should show warning messages when discarding messages
+ * due to overflow.
+ *
+ * @param warns When false, the channel is expected to overflow and warning messages
+ * will not be shown.
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ */
++ (void)setWarnsOnOverflow:(BOOL)warns
+ forChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger;
+
+/**
+ * Defines whether the channel should show warning messages when discarding messages
+ * due to overflow.
+ *
+ * @param warns When false, the channel is expected to overflow and warning messages
+ * will not be shown.
+ */
+- (void)setWarnsOnOverflow:(BOOL)warns;
+
+@end
+
+/**
+ * A method call result callback.
+ *
+ * Used for submitting a method call result back to a Flutter caller. Also used in
+ * the dual capacity for handling a method call result received from Flutter.
+ *
+ * @param result The result.
+ */
+typedef void (^FlutterResult)(id _Nullable result);
+
+/**
+ * A strategy for handling method calls.
+ *
+ * @param call The incoming method call.
+ * @param result A callback to asynchronously submit the result of the call.
+ * Invoke the callback with a `FlutterError` to indicate that the call failed.
+ * Invoke the callback with `FlutterMethodNotImplemented` to indicate that the
+ * method was unknown. Any other values, including `nil`, are interpreted as
+ * successful results. This can be invoked from any thread.
+ */
+typedef void (^FlutterMethodCallHandler)(FlutterMethodCall* call, FlutterResult result);
+
+/**
+ * A constant used with `FlutterMethodCallHandler` to respond to the call of an
+ * unknown method.
+ */
+FLUTTER_DARWIN_EXPORT
+extern NSObject const* FlutterMethodNotImplemented;
+
+/**
+ * A channel for communicating with the Flutter side using invocation of
+ * asynchronous methods.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterMethodChannel : NSObject
+/**
+ * Creates a `FlutterMethodChannel` with the specified name and binary messenger.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * The channel uses `FlutterStandardMethodCodec` to encode and decode method calls
+ * and result envelopes.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ */
++ (instancetype)methodChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger;
+
+/**
+ * Creates a `FlutterMethodChannel` with the specified name, binary messenger, and
+ * method codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The method codec.
+ */
++ (instancetype)methodChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec;
+
+/**
+ * Initializes a `FlutterMethodChannel` with the specified name, binary messenger,
+ * and method codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The method codec.
+ */
+- (instancetype)initWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec;
+
+/**
+ * Initializes a `FlutterMethodChannel` with the specified name, binary messenger,
+ * method codec, and task queue.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The method codec.
+ * @param taskQueue The FlutterTaskQueue that executes the handler (see
+ -[FlutterBinaryMessenger makeBackgroundTaskQueue]).
+ */
+- (instancetype)initWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec
+ taskQueue:(NSObject* _Nullable)taskQueue;
+
+// clang-format off
+/**
+ * Invokes the specified Flutter method with the specified arguments, expecting
+ * no results.
+ *
+ * @see [MethodChannel.setMethodCallHandler](https://api.flutter.dev/flutter/services/MethodChannel/setMethodCallHandler.html)
+ *
+ * @param method The name of the method to invoke.
+ * @param arguments The arguments. Must be a value supported by the codec of this
+ * channel.
+ */
+// clang-format on
+- (void)invokeMethod:(NSString*)method arguments:(id _Nullable)arguments;
+
+/**
+ * Invokes the specified Flutter method with the specified arguments, expecting
+ * an asynchronous result.
+ *
+ * @param method The name of the method to invoke.
+ * @param arguments The arguments. Must be a value supported by the codec of this
+ * channel.
+ * @param callback A callback that will be invoked with the asynchronous result.
+ * The result will be a `FlutterError` instance, if the method call resulted
+ * in an error on the Flutter side. Will be `FlutterMethodNotImplemented`, if
+ * the method called was not implemented on the Flutter side. Any other value,
+ * including `nil`, should be interpreted as successful results.
+ */
+- (void)invokeMethod:(NSString*)method
+ arguments:(id _Nullable)arguments
+ result:(FlutterResult _Nullable)callback;
+/**
+ * Registers a handler for method calls from the Flutter side.
+ *
+ * Replaces any existing handler. Use a `nil` handler for unregistering the
+ * existing handler.
+ *
+ * @param handler The method call handler.
+ */
+- (void)setMethodCallHandler:(FlutterMethodCallHandler _Nullable)handler;
+
+/**
+ * Adjusts the number of messages that will get buffered when sending messages to
+ * channels that aren't fully set up yet. For example, the engine isn't running
+ * yet or the channel's message handler isn't set up on the Dart side yet.
+ */
+- (void)resizeChannelBuffer:(NSInteger)newSize;
+
+@end
+
+/**
+ * An event sink callback.
+ *
+ * @param event The event.
+ */
+typedef void (^FlutterEventSink)(id _Nullable event);
+
+/**
+ * A strategy for exposing an event stream to the Flutter side.
+ */
+FLUTTER_DARWIN_EXPORT
+@protocol FlutterStreamHandler
+/**
+ * Sets up an event stream and begin emitting events.
+ *
+ * Invoked when the first listener is registered with the Stream associated to
+ * this channel on the Flutter side.
+ *
+ * @param arguments Arguments for the stream.
+ * @param events A callback to asynchronously emit events. Invoke the
+ * callback with a `FlutterError` to emit an error event. Invoke the
+ * callback with `FlutterEndOfEventStream` to indicate that no more
+ * events will be emitted. Any other value, including `nil` are emitted as
+ * successful events.
+ * @return A FlutterError instance, if setup fails.
+ */
+- (FlutterError* _Nullable)onListenWithArguments:(id _Nullable)arguments
+ eventSink:(FlutterEventSink)events;
+
+/**
+ * Tears down an event stream.
+ *
+ * Invoked when the last listener is deregistered from the Stream associated to
+ * this channel on the Flutter side.
+ *
+ * The channel implementation may call this method with `nil` arguments
+ * to separate a pair of two consecutive set up requests. Such request pairs
+ * may occur during Flutter hot restart.
+ *
+ * @param arguments Arguments for the stream.
+ * @return A FlutterError instance, if teardown fails.
+ */
+- (FlutterError* _Nullable)onCancelWithArguments:(id _Nullable)arguments;
+@end
+
+/**
+ * A constant used with `FlutterEventChannel` to indicate end of stream.
+ */
+FLUTTER_DARWIN_EXPORT
+extern NSObject const* FlutterEndOfEventStream;
+
+/**
+ * A channel for communicating with the Flutter side using event streams.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterEventChannel : NSObject
+/**
+ * Creates a `FlutterEventChannel` with the specified name and binary messenger.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterViewController`.
+ *
+ * The channel uses `FlutterStandardMethodCodec` to decode stream setup and
+ * teardown requests, and to encode event envelopes.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ */
++ (instancetype)eventChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger;
+
+/**
+ * Creates a `FlutterEventChannel` with the specified name, binary messenger,
+ * and method codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The method codec.
+ */
++ (instancetype)eventChannelWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec;
+
+/**
+ * Initializes a `FlutterEventChannel` with the specified name, binary messenger,
+ * and method codec.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The method codec.
+ */
+- (instancetype)initWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec;
+
+/**
+ * Initializes a `FlutterEventChannel` with the specified name, binary messenger,
+ * method codec and task queue.
+ *
+ * The channel name logically identifies the channel; identically named channels
+ * interfere with each other's communication.
+ *
+ * The binary messenger is a facility for sending raw, binary messages to the
+ * Flutter side. This protocol is implemented by `FlutterEngine` and `FlutterViewController`.
+ *
+ * @param name The channel name.
+ * @param messenger The binary messenger.
+ * @param codec The method codec.
+ * @param taskQueue The FlutterTaskQueue that executes the handler (see
+ -[FlutterBinaryMessenger makeBackgroundTaskQueue]).
+ */
+- (instancetype)initWithName:(NSString*)name
+ binaryMessenger:(NSObject*)messenger
+ codec:(NSObject*)codec
+ taskQueue:(NSObject* _Nullable)taskQueue;
+/**
+ * Registers a handler for stream setup requests from the Flutter side.
+ *
+ * Replaces any existing handler. Use a `nil` handler for unregistering the
+ * existing handler.
+ *
+ * @param handler The stream handler.
+ */
+- (void)setStreamHandler:(NSObject* _Nullable)handler;
+@end
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCHANNELS_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterCodecs.h b/source/ios/Flutter.framework/Headers/FlutterCodecs.h
new file mode 100644
index 0000000..93e1d32
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterCodecs.h
@@ -0,0 +1,478 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCODECS_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCODECS_H_
+
+#import
+
+#import "FlutterMacros.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * A message encoding/decoding mechanism.
+ */
+FLUTTER_DARWIN_EXPORT
+@protocol FlutterMessageCodec
+/**
+ * Returns a shared instance of this `FlutterMessageCodec`.
+ */
++ (instancetype)sharedInstance;
+
+/**
+ * Encodes the specified message into binary.
+ *
+ * @param message The message.
+ * @return The binary encoding, or `nil`, if `message` was `nil`.
+ */
+- (NSData* _Nullable)encode:(id _Nullable)message;
+
+/**
+ * Decodes the specified message from binary.
+ *
+ * @param message The message.
+ * @return The decoded message, or `nil`, if `message` was `nil`.
+ */
+- (id _Nullable)decode:(NSData* _Nullable)message;
+@end
+
+/**
+ * A `FlutterMessageCodec` using unencoded binary messages, represented as
+ * `NSData` instances.
+ *
+ * This codec is guaranteed to be compatible with the corresponding
+ * [BinaryCodec](https://api.flutter.dev/flutter/services/BinaryCodec-class.html)
+ * on the Dart side. These parts of the Flutter SDK are evolved synchronously.
+ *
+ * On the Dart side, messages are represented using `ByteData`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterBinaryCodec : NSObject
+@end
+
+/**
+ * A `FlutterMessageCodec` using UTF-8 encoded `NSString` messages.
+ *
+ * This codec is guaranteed to be compatible with the corresponding
+ * [StringCodec](https://api.flutter.dev/flutter/services/StringCodec-class.html)
+ * on the Dart side. These parts of the Flutter SDK are evolved synchronously.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStringCodec : NSObject
+@end
+
+/**
+ * A `FlutterMessageCodec` using UTF-8 encoded JSON messages.
+ *
+ * This codec is guaranteed to be compatible with the corresponding
+ * [JSONMessageCodec](https://api.flutter.dev/flutter/services/JSONMessageCodec-class.html)
+ * on the Dart side. These parts of the Flutter SDK are evolved synchronously.
+ *
+ * Supports values accepted by `NSJSONSerialization` plus top-level
+ * `nil`, `NSNumber`, and `NSString`.
+ *
+ * On the Dart side, JSON messages are handled by the JSON facilities of the
+ * [`dart:convert`](https://api.dartlang.org/stable/dart-convert/JSON-constant.html)
+ * package.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterJSONMessageCodec : NSObject
+@end
+
+/**
+ * A writer of the Flutter standard binary encoding.
+ *
+ * See `FlutterStandardMessageCodec` for details on the encoding.
+ *
+ * The encoding is extensible via subclasses overriding `writeValue`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStandardWriter : NSObject
+/**
+ * Create a `FlutterStandardWriter` who will write to \p data.
+ */
+- (instancetype)initWithData:(NSMutableData*)data;
+/** Write a 8-bit byte. */
+- (void)writeByte:(UInt8)value;
+/** Write an array of \p bytes of size \p length. */
+- (void)writeBytes:(const void*)bytes length:(NSUInteger)length;
+/** Write an array of bytes contained in \p data. */
+- (void)writeData:(NSData*)data;
+/** Write 32-bit unsigned integer that represents a \p size of a collection. */
+- (void)writeSize:(UInt32)size;
+/** Write zero padding until data is aligned with \p alignment. */
+- (void)writeAlignment:(UInt8)alignment;
+/** Write a string with UTF-8 encoding. */
+- (void)writeUTF8:(NSString*)value;
+/** Introspects into an object and writes its representation.
+ *
+ * Supported Data Types:
+ * - NSNull
+ * - NSNumber
+ * - NSString (as UTF-8)
+ * - FlutterStandardTypedData
+ * - NSArray of supported types
+ * - NSDictionary of supporte types
+ *
+ * NSAsserts on failure.
+ */
+- (void)writeValue:(id)value;
+@end
+
+/**
+ * A reader of the Flutter standard binary encoding.
+ *
+ * See `FlutterStandardMessageCodec` for details on the encoding.
+ *
+ * The encoding is extensible via subclasses overriding `readValueOfType`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStandardReader : NSObject
+/**
+ * Create a new `FlutterStandardReader` who reads from \p data.
+ */
+- (instancetype)initWithData:(NSData*)data;
+/** Returns YES when the reader hasn't reached the end of its data. */
+- (BOOL)hasMore;
+/** Reads a byte value and increments the position. */
+- (UInt8)readByte;
+/** Reads a sequence of byte values of \p length and increments the position. */
+- (void)readBytes:(void*)destination length:(NSUInteger)length;
+/** Reads a sequence of byte values of \p length and increments the position. */
+- (NSData*)readData:(NSUInteger)length;
+/** Reads a 32-bit unsigned integer representing a collection size and increments the position.*/
+- (UInt32)readSize;
+/** Advances the read position until it is aligned with \p alignment. */
+- (void)readAlignment:(UInt8)alignment;
+/** Read a null terminated string encoded with UTF-8/ */
+- (NSString*)readUTF8;
+/**
+ * Reads a byte for `FlutterStandardField` the decodes a value matching that type.
+ *
+ * See also: -[FlutterStandardWriter writeValue]
+ */
+- (nullable id)readValue;
+/**
+ * Decodes a value matching the \p type specified.
+ *
+ * See also:
+ * - `FlutterStandardField`
+ * - `-[FlutterStandardWriter writeValue]`
+ */
+- (nullable id)readValueOfType:(UInt8)type;
+@end
+
+/**
+ * A factory of compatible reader/writer instances using the Flutter standard
+ * binary encoding or extensions thereof.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStandardReaderWriter : NSObject
+/**
+ * Create a new `FlutterStandardWriter` for writing to \p data.
+ */
+- (FlutterStandardWriter*)writerWithData:(NSMutableData*)data;
+/**
+ * Create a new `FlutterStandardReader` for reading from \p data.
+ */
+- (FlutterStandardReader*)readerWithData:(NSData*)data;
+@end
+
+/**
+ * A `FlutterMessageCodec` using the Flutter standard binary encoding.
+ *
+ * This codec is guaranteed to be compatible with the corresponding
+ * [StandardMessageCodec](https://api.flutter.dev/flutter/services/StandardMessageCodec-class.html)
+ * on the Dart side. These parts of the Flutter SDK are evolved synchronously.
+ *
+ * Supported messages are acyclic values of these forms:
+ *
+ * - `nil` or `NSNull`
+ * - `NSNumber` (including their representation of Boolean values)
+ * - `NSString`
+ * - `FlutterStandardTypedData`
+ * - `NSArray` of supported values
+ * - `NSDictionary` with supported keys and values
+ *
+ * On the Dart side, these values are represented as follows:
+ *
+ * - `nil` or `NSNull`: null
+ * - `NSNumber`: `bool`, `int`, or `double`, depending on the contained value.
+ * - `NSString`: `String`
+ * - `FlutterStandardTypedData`: `Uint8List`, `Int32List`, `Int64List`, or `Float64List`
+ * - `NSArray`: `List`
+ * - `NSDictionary`: `Map`
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStandardMessageCodec : NSObject
+/**
+ * Create a `FlutterStandardMessageCodec` who will read and write to \p readerWriter.
+ */
++ (instancetype)codecWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter;
+@end
+
+/**
+ * Command object representing a method call on a `FlutterMethodChannel`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterMethodCall : NSObject
+/**
+ * Creates a method call for invoking the specified named method with the
+ * specified arguments.
+ *
+ * @param method the name of the method to call.
+ * @param arguments the arguments value.
+ */
++ (instancetype)methodCallWithMethodName:(NSString*)method arguments:(id _Nullable)arguments;
+
+/**
+ * The method name.
+ */
+@property(readonly, nonatomic) NSString* method;
+
+/**
+ * The arguments.
+ */
+@property(readonly, nonatomic, nullable) id arguments;
+@end
+
+/**
+ * Error object representing an unsuccessful outcome of invoking a method
+ * on a `FlutterMethodChannel`, or an error event on a `FlutterEventChannel`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterError : NSObject
+/**
+ * Creates a `FlutterError` with the specified error code, message, and details.
+ *
+ * @param code An error code string for programmatic use.
+ * @param message A human-readable error message.
+ * @param details Custom error details.
+ */
++ (instancetype)errorWithCode:(NSString*)code
+ message:(NSString* _Nullable)message
+ details:(id _Nullable)details;
+/**
+ The error code.
+ */
+@property(readonly, nonatomic) NSString* code;
+
+/**
+ The error message.
+ */
+@property(readonly, nonatomic, nullable) NSString* message;
+
+/**
+ The error details.
+ */
+@property(readonly, nonatomic, nullable) id details;
+@end
+
+/**
+ * Type of numeric data items encoded in a `FlutterStandardDataType`.
+ *
+ * - FlutterStandardDataTypeUInt8: plain bytes
+ * - FlutterStandardDataTypeInt32: 32-bit signed integers
+ * - FlutterStandardDataTypeInt64: 64-bit signed integers
+ * - FlutterStandardDataTypeFloat64: 64-bit floats
+ */
+typedef NS_ENUM(NSInteger, FlutterStandardDataType) {
+ // NOLINTBEGIN(readability-identifier-naming)
+ FlutterStandardDataTypeUInt8,
+ FlutterStandardDataTypeInt32,
+ FlutterStandardDataTypeInt64,
+ FlutterStandardDataTypeFloat32,
+ FlutterStandardDataTypeFloat64,
+ // NOLINTEND(readability-identifier-naming)
+};
+
+/**
+ * A byte buffer holding `UInt8`, `SInt32`, `SInt64`, or `Float64` values, used
+ * with `FlutterStandardMessageCodec` and `FlutterStandardMethodCodec`.
+ *
+ * Two's complement encoding is used for signed integers. IEEE754
+ * double-precision representation is used for floats. The platform's native
+ * endianness is assumed.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStandardTypedData : NSObject
+/**
+ * Creates a `FlutterStandardTypedData` which interprets the specified data
+ * as plain bytes.
+ *
+ * @param data the byte data.
+ */
++ (instancetype)typedDataWithBytes:(NSData*)data;
+
+/**
+ * Creates a `FlutterStandardTypedData` which interprets the specified data
+ * as 32-bit signed integers.
+ *
+ * @param data the byte data. The length must be divisible by 4.
+ */
++ (instancetype)typedDataWithInt32:(NSData*)data;
+
+/**
+ * Creates a `FlutterStandardTypedData` which interprets the specified data
+ * as 64-bit signed integers.
+ *
+ * @param data the byte data. The length must be divisible by 8.
+ */
++ (instancetype)typedDataWithInt64:(NSData*)data;
+
+/**
+ * Creates a `FlutterStandardTypedData` which interprets the specified data
+ * as 32-bit floats.
+ *
+ * @param data the byte data. The length must be divisible by 8.
+ */
++ (instancetype)typedDataWithFloat32:(NSData*)data;
+
+/**
+ * Creates a `FlutterStandardTypedData` which interprets the specified data
+ * as 64-bit floats.
+ *
+ * @param data the byte data. The length must be divisible by 8.
+ */
++ (instancetype)typedDataWithFloat64:(NSData*)data;
+
+/**
+ * The raw underlying data buffer.
+ */
+@property(readonly, nonatomic) NSData* data;
+
+/**
+ * The type of the encoded values.
+ */
+@property(readonly, nonatomic, assign) FlutterStandardDataType type;
+
+/**
+ * The number of value items encoded.
+ */
+@property(readonly, nonatomic, assign) UInt32 elementCount;
+
+/**
+ * The number of bytes used by the encoding of a single value item.
+ */
+@property(readonly, nonatomic, assign) UInt8 elementSize;
+@end
+
+/**
+ * An arbitrarily large integer value, used with `FlutterStandardMessageCodec`
+ * and `FlutterStandardMethodCodec`.
+ */
+FLUTTER_DARWIN_EXPORT
+FLUTTER_UNAVAILABLE("Unavailable on 2018-08-31. Deprecated on 2018-01-09. "
+ "FlutterStandardBigInteger was needed because the Dart 1.0 int type had no "
+ "size limit. With Dart 2.0, the int type is a fixed-size, 64-bit signed "
+ "integer. If you need to communicate larger integers, use NSString encoding "
+ "instead.")
+@interface FlutterStandardBigInteger : NSObject
+@end
+
+/**
+ * A codec for method calls and enveloped results.
+ *
+ * Method calls are encoded as binary messages with enough structure that the
+ * codec can extract a method name `NSString` and an arguments `NSObject`,
+ * possibly `nil`. These data items are used to populate a `FlutterMethodCall`.
+ *
+ * Result envelopes are encoded as binary messages with enough structure that
+ * the codec can determine whether the result was successful or an error. In
+ * the former case, the codec can extract the result `NSObject`, possibly `nil`.
+ * In the latter case, the codec can extract an error code `NSString`, a
+ * human-readable `NSString` error message (possibly `nil`), and a custom
+ * error details `NSObject`, possibly `nil`. These data items are used to
+ * populate a `FlutterError`.
+ */
+FLUTTER_DARWIN_EXPORT
+@protocol FlutterMethodCodec
+/**
+ * Provides access to a shared instance this codec.
+ *
+ * @return The shared instance.
+ */
++ (instancetype)sharedInstance;
+
+/**
+ * Encodes the specified method call into binary.
+ *
+ * @param methodCall The method call. The arguments value
+ * must be supported by this codec.
+ * @return The binary encoding.
+ */
+- (NSData*)encodeMethodCall:(FlutterMethodCall*)methodCall;
+
+/**
+ * Decodes the specified method call from binary.
+ *
+ * @param methodCall The method call to decode.
+ * @return The decoded method call.
+ */
+- (FlutterMethodCall*)decodeMethodCall:(NSData*)methodCall;
+
+/**
+ * Encodes the specified successful result into binary.
+ *
+ * @param result The result. Must be a value supported by this codec.
+ * @return The binary encoding.
+ */
+- (NSData*)encodeSuccessEnvelope:(id _Nullable)result;
+
+/**
+ * Encodes the specified error result into binary.
+ *
+ * @param error The error object. The error details value must be supported
+ * by this codec.
+ * @return The binary encoding.
+ */
+- (NSData*)encodeErrorEnvelope:(FlutterError*)error;
+
+/**
+ * Deccodes the specified result envelope from binary.
+ *
+ * @param envelope The error object.
+ * @return The result value, if the envelope represented a successful result,
+ * or a `FlutterError` instance, if not.
+ */
+- (id _Nullable)decodeEnvelope:(NSData*)envelope;
+@end
+
+/**
+ * A `FlutterMethodCodec` using UTF-8 encoded JSON method calls and result
+ * envelopes.
+ *
+ * This codec is guaranteed to be compatible with the corresponding
+ * [JSONMethodCodec](https://api.flutter.dev/flutter/services/JSONMethodCodec-class.html)
+ * on the Dart side. These parts of the Flutter SDK are evolved synchronously.
+ *
+ * Values supported as methods arguments and result payloads are
+ * those supported as top-level or leaf values by `FlutterJSONMessageCodec`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterJSONMethodCodec : NSObject
+@end
+
+/**
+ * A `FlutterMethodCodec` using the Flutter standard binary encoding.
+ *
+ * This codec is guaranteed to be compatible with the corresponding
+ * [StandardMethodCodec](https://api.flutter.dev/flutter/services/StandardMethodCodec-class.html)
+ * on the Dart side. These parts of the Flutter SDK are evolved synchronously.
+ *
+ * Values supported as method arguments and result payloads are those supported by
+ * `FlutterStandardMessageCodec`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterStandardMethodCodec : NSObject
+/**
+ * Create a `FlutterStandardMethodCodec` who will read and write to \p readerWriter.
+ */
++ (instancetype)codecWithReaderWriter:(FlutterStandardReaderWriter*)readerWriter;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERCODECS_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterDartProject.h b/source/ios/Flutter.framework/Headers/FlutterDartProject.h
new file mode 100644
index 0000000..5e03cb8
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterDartProject.h
@@ -0,0 +1,103 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERDARTPROJECT_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERDARTPROJECT_H_
+
+#import
+#import
+
+#import "FlutterMacros.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * A set of Flutter and Dart assets used by a `FlutterEngine` to initialize execution.
+ *
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterDartProject : NSObject
+
+/**
+ * Initializes a Flutter Dart project from a bundle.
+ *
+ * The bundle must either contain a flutter_assets resource directory, or set the Info.plist key
+ * FLTAssetsPath to override that name (if you are doing a custom build using a different name).
+ *
+ * @param bundle The bundle containing the Flutter assets directory. If nil, the App framework
+ * created by Flutter will be used.
+ */
+- (instancetype)initWithPrecompiledDartBundle:(nullable NSBundle*)bundle NS_DESIGNATED_INITIALIZER;
+/**
+ * Unavailable - use `init` instead.
+ */
+- (instancetype)initFromDefaultSourceForConfiguration API_UNAVAILABLE(macos)
+ FLUTTER_UNAVAILABLE("Use -init instead.");
+
+/**
+ * Returns the default identifier for the bundle where we expect to find the Flutter Dart
+ * application.
+ */
++ (NSString*)defaultBundleIdentifier;
+
+/**
+ * An NSArray of NSStrings to be passed as command line arguments to the Dart entrypoint.
+ *
+ * If this is not explicitly set, this will default to the contents of
+ * [NSProcessInfo arguments], without the binary name.
+ *
+ * Set this to nil to pass no arguments to the Dart entrypoint.
+ */
+@property(nonatomic, nullable, copy)
+ NSArray* dartEntrypointArguments API_UNAVAILABLE(ios);
+
+/**
+ * Returns the file name for the given asset. If the bundle with the identifier
+ * "io.flutter.flutter.app" exists, it will try use that bundle; otherwise, it
+ * will use the main bundle. To specify a different bundle, use
+ * `+lookupKeyForAsset:fromBundle`.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @return the file name to be used for lookup in the main bundle.
+ */
++ (NSString*)lookupKeyForAsset:(NSString*)asset;
+
+/**
+ * Returns the file name for the given asset.
+ * The returned file name can be used to access the asset in the supplied bundle.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @param bundle The `NSBundle` to use for looking up the asset.
+ * @return the file name to be used for lookup in the main bundle.
+ */
++ (NSString*)lookupKeyForAsset:(NSString*)asset fromBundle:(nullable NSBundle*)bundle;
+
+/**
+ * Returns the file name for the given asset which originates from the specified package.
+ * The returned file name can be used to access the asset in the application's main bundle.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @param package The name of the package from which the asset originates.
+ * @return the file name to be used for lookup in the main bundle.
+ */
++ (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package;
+
+/**
+ * Returns the file name for the given asset which originates from the specified package.
+ * The returned file name can be used to access the asset in the specified bundle.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @param package The name of the package from which the asset originates.
+ * @param bundle The bundle to use when doing the lookup.
+ * @return the file name to be used for lookup in the main bundle.
+ */
++ (NSString*)lookupKeyForAsset:(NSString*)asset
+ fromPackage:(NSString*)package
+ fromBundle:(nullable NSBundle*)bundle;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERDARTPROJECT_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterEngine.h b/source/ios/Flutter.framework/Headers/FlutterEngine.h
new file mode 100644
index 0000000..931c8de
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterEngine.h
@@ -0,0 +1,462 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINE_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINE_H_
+
+#import
+#import
+
+#import "FlutterBinaryMessenger.h"
+#import "FlutterDartProject.h"
+#import "FlutterMacros.h"
+#import "FlutterPlugin.h"
+#import "FlutterTexture.h"
+
+@class FlutterViewController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * The dart entrypoint that is associated with `main()`. This is to be used as an argument to the
+ * `runWithEntrypoint*` methods.
+ */
+// NOLINTNEXTLINE(readability-identifier-naming)
+extern NSString* const FlutterDefaultDartEntrypoint;
+
+/**
+ * The default Flutter initial route ("/").
+ */
+// NOLINTNEXTLINE(readability-identifier-naming)
+extern NSString* const FlutterDefaultInitialRoute;
+
+/**
+ * The FlutterEngine class coordinates a single instance of execution for a
+ * `FlutterDartProject`. It may have zero or one `FlutterViewController` at a
+ * time, which can be specified via `-setViewController:`.
+ * `FlutterViewController`'s `initWithEngine` initializer will automatically call
+ * `-setViewController:` for itself.
+ *
+ * A FlutterEngine can be created independently of a `FlutterViewController` for
+ * headless execution. It can also persist across the lifespan of multiple
+ * `FlutterViewController` instances to maintain state and/or asynchronous tasks
+ * (such as downloading a large file).
+ *
+ * A FlutterEngine can also be used to prewarm the Dart execution environment and reduce the
+ * latency of showing the Flutter screen when a `FlutterViewController` is created and presented.
+ * See http://flutter.dev/docs/development/add-to-app/performance for more details on loading
+ * performance.
+ *
+ * Alternatively, you can simply create a new `FlutterViewController` with only a
+ * `FlutterDartProject`. That `FlutterViewController` will internally manage its
+ * own instance of a FlutterEngine, but will not guarantee survival of the engine
+ * beyond the life of the ViewController.
+ *
+ * A newly initialized FlutterEngine will not actually run a Dart Isolate until
+ * either `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is invoked.
+ * One of these methods must be invoked before calling `-setViewController:`.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterEngine : NSObject
+
+/**
+ * Default initializer for a FlutterEngine.
+ *
+ * Threads created by this FlutterEngine will appear as "FlutterEngine #" in
+ * Instruments. The prefix can be customized using `initWithName`.
+ *
+ * The engine will execute the project located in the bundle with the identifier
+ * "io.flutter.flutter.app" (the default for Flutter projects).
+ *
+ * A newly initialized engine will not run until either `-runWithEntrypoint:` or
+ * `-runWithEntrypoint:libraryURI:` is called.
+ *
+ * FlutterEngine created with this method will have allowHeadlessExecution set to `YES`.
+ * This means that the engine will continue to run regardless of whether a `FlutterViewController`
+ * is attached to it or not, until `-destroyContext:` is called or the process finishes.
+ */
+- (instancetype)init;
+
+/**
+ * Initialize this FlutterEngine.
+ *
+ * The engine will execute the project located in the bundle with the identifier
+ * "io.flutter.flutter.app" (the default for Flutter projects).
+ *
+ * A newly initialized engine will not run until either `-runWithEntrypoint:` or
+ * `-runWithEntrypoint:libraryURI:` is called.
+ *
+ * FlutterEngine created with this method will have allowHeadlessExecution set to `YES`.
+ * This means that the engine will continue to run regardless of whether a `FlutterViewController`
+ * is attached to it or not, until `-destroyContext:` is called or the process finishes.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances, and is used in instrumentation to label
+ * the threads used by this FlutterEngine.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix;
+
+/**
+ * Initialize this FlutterEngine with a `FlutterDartProject`.
+ *
+ * If the FlutterDartProject is not specified, the FlutterEngine will attempt to locate
+ * the project in a default location (the flutter_assets folder in the iOS application
+ * bundle).
+ *
+ * A newly initialized engine will not run the `FlutterDartProject` until either
+ * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI:` is called.
+ *
+ * FlutterEngine created with this method will have allowHeadlessExecution set to `YES`.
+ * This means that the engine will continue to run regardless of whether a `FlutterViewController`
+ * is attached to it or not, until `-destroyContext:` is called or the process finishes.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances, and is used in instrumentation to label
+ * the threads used by this FlutterEngine.
+ * @param project The `FlutterDartProject` to run.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix project:(nullable FlutterDartProject*)project;
+
+/**
+ * Initialize this FlutterEngine with a `FlutterDartProject`.
+ *
+ * If the FlutterDartProject is not specified, the FlutterEngine will attempt to locate
+ * the project in a default location (the flutter_assets folder in the iOS application
+ * bundle).
+ *
+ * A newly initialized engine will not run the `FlutterDartProject` until either
+ * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI:` is called.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances, and is used in instrumentation to label
+ * the threads used by this FlutterEngine.
+ * @param project The `FlutterDartProject` to run.
+ * @param allowHeadlessExecution Whether or not to allow this instance to continue
+ * running after passing a nil `FlutterViewController` to `-setViewController:`.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix
+ project:(nullable FlutterDartProject*)project
+ allowHeadlessExecution:(BOOL)allowHeadlessExecution;
+
+/**
+ * Initialize this FlutterEngine with a `FlutterDartProject`.
+ *
+ * If the FlutterDartProject is not specified, the FlutterEngine will attempt to locate
+ * the project in a default location (the flutter_assets folder in the iOS application
+ * bundle).
+ *
+ * A newly initialized engine will not run the `FlutterDartProject` until either
+ * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI:` is called.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances, and is used in instrumentation to label
+ * the threads used by this FlutterEngine.
+ * @param project The `FlutterDartProject` to run.
+ * @param allowHeadlessExecution Whether or not to allow this instance to continue
+ * running after passing a nil `FlutterViewController` to `-setViewController:`.
+ * @param restorationEnabled Whether state restoration is enabled. When true, the framework will
+ * wait for the attached view controller to provide restoration data.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix
+ project:(nullable FlutterDartProject*)project
+ allowHeadlessExecution:(BOOL)allowHeadlessExecution
+ restorationEnabled:(BOOL)restorationEnabled NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Runs a Dart program on an Isolate from the main Dart library (i.e. the library that
+ * contains `main()`), using `main()` as the entrypoint (the default for Flutter projects),
+ * and using "/" (the default route) as the initial route.
+ *
+ * The first call to this method will create a new Isolate. Subsequent calls will return
+ * immediately and have no effect.
+ *
+ * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise.
+ */
+- (BOOL)run;
+
+/**
+ * Runs a Dart program on an Isolate from the main Dart library (i.e. the library that
+ * contains `main()`), using "/" (the default route) as the initial route.
+ *
+ * The first call to this method will create a new Isolate. Subsequent calls will return
+ * immediately and have no effect.
+ *
+ * @param entrypoint The name of a top-level function from the same Dart
+ * library that contains the app's main() function. If this is FlutterDefaultDartEntrypoint (or
+ * nil) it will default to `main()`. If it is not the app's main() function, that function must
+ * be decorated with `@pragma(vm:entry-point)` to ensure the method is not tree-shaken by the Dart
+ * compiler.
+ * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise.
+ */
+- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint;
+
+/**
+ * Runs a Dart program on an Isolate from the main Dart library (i.e. the library that
+ * contains `main()`).
+ *
+ * The first call to this method will create a new Isolate. Subsequent calls will return
+ * immediately and have no effect.
+ *
+ * @param entrypoint The name of a top-level function from the same Dart
+ * library that contains the app's main() function. If this is FlutterDefaultDartEntrypoint (or
+ * nil), it will default to `main()`. If it is not the app's main() function, that function must
+ * be decorated with `@pragma(vm:entry-point)` to ensure the method is not tree-shaken by the Dart
+ * compiler.
+ * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is
+ * FlutterDefaultInitialRoute (or nil), it will default to the "/" route.
+ * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise.
+ */
+- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint
+ initialRoute:(nullable NSString*)initialRoute;
+
+/**
+ * Runs a Dart program on an Isolate using the specified entrypoint and Dart library,
+ * which may not be the same as the library containing the Dart program's `main()` function.
+ *
+ * The first call to this method will create a new Isolate. Subsequent calls will return
+ * immediately and have no effect.
+ *
+ * @param entrypoint The name of a top-level function from a Dart library. If this is
+ * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's
+ * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the
+ * method is not tree-shaken by the Dart compiler.
+ * @param uri The URI of the Dart library which contains the entrypoint method
+ * (example "package:foo_package/main.dart"). If nil, this will default to
+ * the same library as the `main()` function in the Dart program.
+ * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise.
+ */
+- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint libraryURI:(nullable NSString*)uri;
+
+/**
+ * Runs a Dart program on an Isolate using the specified entrypoint and Dart library,
+ * which may not be the same as the library containing the Dart program's `main()` function.
+ *
+ * The first call to this method will create a new Isolate. Subsequent calls will return
+ * immediately and have no effect.
+ *
+ * @param entrypoint The name of a top-level function from a Dart library. If this is
+ * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's
+ * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the
+ * method is not tree-shaken by the Dart compiler.
+ * @param libraryURI The URI of the Dart library which contains the entrypoint
+ * method (example "package:foo_package/main.dart"). If nil, this will
+ * default to the same library as the `main()` function in the Dart program.
+ * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is
+ * FlutterDefaultInitialRoute (or nil), it will default to the "/" route.
+ * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise.
+ */
+- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint
+ libraryURI:(nullable NSString*)libraryURI
+ initialRoute:(nullable NSString*)initialRoute;
+
+/**
+ * Runs a Dart program on an Isolate using the specified entrypoint and Dart library,
+ * which may not be the same as the library containing the Dart program's `main()` function.
+ *
+ * The first call to this method will create a new Isolate. Subsequent calls will return
+ * immediately and have no effect.
+ *
+ * @param entrypoint The name of a top-level function from a Dart library. If this is
+ * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's
+ * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the
+ * method is not tree-shaken by the Dart compiler.
+ * @param libraryURI The URI of the Dart library which contains the entrypoint
+ * method (example "package:foo_package/main.dart"). If nil, this will
+ * default to the same library as the `main()` function in the Dart program.
+ * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is
+ * FlutterDefaultInitialRoute (or nil), it will default to the "/" route.
+ * @param entrypointArgs Arguments passed as a list of string to Dart's entrypoint function.
+ * @return YES if the call succeeds in creating and running a Flutter Engine instance; NO otherwise.
+ */
+- (BOOL)runWithEntrypoint:(nullable NSString*)entrypoint
+ libraryURI:(nullable NSString*)libraryURI
+ initialRoute:(nullable NSString*)initialRoute
+ entrypointArgs:(nullable NSArray*)entrypointArgs;
+
+/**
+ * Destroy running context for an engine.
+ *
+ * This method can be used to force the FlutterEngine object to release all resources.
+ * After sending this message, the object will be in an unusable state until it is deallocated.
+ * Accessing properties or sending messages to it will result in undefined behavior or runtime
+ * errors.
+ */
+- (void)destroyContext;
+
+/**
+ * Ensures that Flutter will generate a semantics tree.
+ *
+ * This is enabled by default if certain accessibility services are turned on by
+ * the user, or when using a Simulator. This method allows a user to turn
+ * semantics on when they would not ordinarily be generated and the performance
+ * overhead is not a concern, e.g. for UI testing. Note that semantics should
+ * never be programmatically turned off, as it would potentially disable
+ * accessibility services an end user has requested.
+ *
+ * This method must only be called after launching the engine via
+ * `-runWithEntrypoint:` or `-runWithEntryPoint:libraryURI`.
+ *
+ * Although this method returns synchronously, it does not guarantee that a
+ * semantics tree is actually available when the method returns. It
+ * synchronously ensures that the next frame the Flutter framework creates will
+ * have a semantics tree.
+ *
+ * You can subscribe to semantics updates via `NSNotificationCenter` by adding
+ * an observer for the name `FlutterSemanticsUpdateNotification`. The `object`
+ * parameter will be the `FlutterViewController` associated with the semantics
+ * update. This will asynchronously fire after a semantics tree has actually
+ * built (which may be some time after the frame has been rendered).
+ */
+- (void)ensureSemanticsEnabled;
+
+/**
+ * Sets the `FlutterViewController` for this instance. The FlutterEngine must be
+ * running (e.g. a successful call to `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI`)
+ * before calling this method. Callers may pass nil to remove the viewController
+ * and have the engine run headless in the current process.
+ *
+ * A FlutterEngine can only have one `FlutterViewController` at a time. If there is
+ * already a `FlutterViewController` associated with this instance, this method will replace
+ * the engine's current viewController with the newly specified one.
+ *
+ * Setting the viewController will signal the engine to start animations and drawing, and unsetting
+ * it will signal the engine to stop animations and drawing. However, neither will impact the state
+ * of the Dart program's execution.
+ */
+@property(nonatomic, weak) FlutterViewController* viewController;
+
+/**
+ * The `FlutterMethodChannel` used for localization related platform messages, such as
+ * setting the locale.
+ *
+ * Can be nil after `destroyContext` is called.
+ */
+@property(nonatomic, readonly, nullable) FlutterMethodChannel* localizationChannel;
+/**
+ * The `FlutterMethodChannel` used for navigation related platform messages.
+ *
+ * Can be nil after `destroyContext` is called.
+ *
+ * @see [Navigation
+ * Channel](https://api.flutter.dev/flutter/services/SystemChannels/navigation-constant.html)
+ * @see [Navigator Widget](https://api.flutter.dev/flutter/widgets/Navigator-class.html)
+ */
+@property(nonatomic, readonly) FlutterMethodChannel* navigationChannel;
+
+/**
+ * The `FlutterMethodChannel` used for restoration related platform messages.
+ *
+ * Can be nil after `destroyContext` is called.
+ *
+ * @see [Restoration
+ * Channel](https://api.flutter.dev/flutter/services/SystemChannels/restoration-constant.html)
+ */
+@property(nonatomic, readonly) FlutterMethodChannel* restorationChannel;
+
+/**
+ * The `FlutterMethodChannel` used for core platform messages, such as
+ * information about the screen orientation.
+ *
+ * Can be nil after `destroyContext` is called.
+ */
+@property(nonatomic, readonly) FlutterMethodChannel* platformChannel;
+
+/**
+ * The `FlutterMethodChannel` used to communicate text input events to the
+ * Dart Isolate.
+ *
+ * Can be nil after `destroyContext` is called.
+ *
+ * @see [Text Input
+ * Channel](https://api.flutter.dev/flutter/services/SystemChannels/textInput-constant.html)
+ */
+@property(nonatomic, readonly) FlutterMethodChannel* textInputChannel;
+
+/**
+ * The `FlutterBasicMessageChannel` used to communicate app lifecycle events
+ * to the Dart Isolate.
+ *
+ * Can be nil after `destroyContext` is called.
+ *
+ * @see [Lifecycle
+ * Channel](https://api.flutter.dev/flutter/services/SystemChannels/lifecycle-constant.html)
+ */
+@property(nonatomic, readonly) FlutterBasicMessageChannel* lifecycleChannel;
+
+/**
+ * The `FlutterBasicMessageChannel` used for communicating system events, such as
+ * memory pressure events.
+ *
+ * Can be nil after `destroyContext` is called.
+ *
+ * @see [System
+ * Channel](https://api.flutter.dev/flutter/services/SystemChannels/system-constant.html)
+ */
+@property(nonatomic, readonly) FlutterBasicMessageChannel* systemChannel;
+
+/**
+ * The `FlutterBasicMessageChannel` used for communicating user settings such as
+ * clock format and text scale.
+ *
+ * Can be nil after `destroyContext` is called.
+ */
+@property(nonatomic, readonly) FlutterBasicMessageChannel* settingsChannel;
+
+/**
+ * The `FlutterBasicMessageChannel` used for communicating key events
+ * from physical keyboards
+ *
+ * Can be nil after `destroyContext` is called.
+ */
+@property(nonatomic, readonly) FlutterBasicMessageChannel* keyEventChannel;
+
+/**
+ * The depcreated `NSURL` of the Dart VM Service for the service isolate.
+ *
+ * This is only set in debug and profile runtime modes, and only after the
+ * Dart VM Service is ready. In release mode or before the Dart VM Service has
+ * started, it returns `nil`.
+ */
+@property(nonatomic, readonly, nullable)
+ NSURL* observatoryUrl FLUTTER_DEPRECATED("Use vmServiceUrl instead");
+
+/**
+ * The `NSURL` of the Dart VM Service for the service isolate.
+ *
+ * This is only set in debug and profile runtime modes, and only after the
+ * Dart VM Service is ready. In release mode or before the Dart VM Service has
+ * started, it returns `nil`.
+ */
+@property(nonatomic, readonly, nullable) NSURL* vmServiceUrl;
+
+/**
+ * The `FlutterBinaryMessenger` associated with this FlutterEngine (used for communicating with
+ * channels).
+ */
+@property(nonatomic, readonly) NSObject* binaryMessenger;
+
+/**
+ * The `FlutterTextureRegistry` associated with this FlutterEngine (used to register textures).
+ */
+@property(nonatomic, readonly) NSObject* textureRegistry;
+
+/**
+ * The UI Isolate ID of the engine.
+ *
+ * This property will be nil if the engine is not running.
+ */
+@property(nonatomic, readonly, copy, nullable) NSString* isolateId;
+
+/**
+ * Whether or not GPU calls are allowed.
+ *
+ * Typically this is set when the app is backgrounded and foregrounded.
+ */
+@property(nonatomic, assign) BOOL isGpuDisabled;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINE_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterEngineGroup.h b/source/ios/Flutter.framework/Headers/FlutterEngineGroup.h
new file mode 100644
index 0000000..fe77b31
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterEngineGroup.h
@@ -0,0 +1,115 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINEGROUP_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINEGROUP_H_
+
+#import
+
+#import "FlutterEngine.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/** Options that control how a FlutterEngine should be created. */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterEngineGroupOptions : NSObject
+
+/**
+ * The name of a top-level function from a Dart library. If this is FlutterDefaultDartEntrypoint
+ * (or nil); this will default to `main()`. If it is not the app's main() function, that function
+ * must be decorated with `@pragma(vm:entry-point)` to ensure themethod is not tree-shaken by the
+ * Dart compiler.
+ */
+@property(nonatomic, copy, nullable) NSString* entrypoint;
+
+/**
+ * The URI of the Dart library which contains the entrypoint method. If nil, this will default to
+ * the same library as the `main()` function in the Dart program.
+ */
+@property(nonatomic, copy, nullable) NSString* libraryURI;
+
+/**
+ * The name of the initial Flutter `Navigator` `Route` to load. If this is
+ * FlutterDefaultInitialRoute (or nil), it will default to the "/" route.
+ */
+@property(nonatomic, copy, nullable) NSString* initialRoute;
+
+/**
+ * Arguments passed as a list of string to Dart's entrypoint function.
+ */
+@property(nonatomic, retain, nullable) NSArray* entrypointArgs;
+@end
+
+/**
+ * Represents a collection of FlutterEngines who share resources which allows
+ * them to be created with less time const and occupy less memory than just
+ * creating multiple FlutterEngines.
+ *
+ * Deleting a FlutterEngineGroup doesn't invalidate existing FlutterEngines, but
+ * it eliminates the possibility to create more FlutterEngines in that group.
+ *
+ * @warning This class is a work-in-progress and may change.
+ * @see https://github.com/flutter/flutter/issues/72009
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterEngineGroup : NSObject
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ * Initialize a new FlutterEngineGroup.
+ *
+ * @param name The name that will present in the threads shared across the
+ * engines in this group.
+ * @param project The `FlutterDartProject` that all FlutterEngines in this group
+ * will be executing.
+ */
+- (instancetype)initWithName:(NSString*)name
+ project:(nullable FlutterDartProject*)project NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Creates a running `FlutterEngine` that shares components with this group.
+ *
+ * @param entrypoint The name of a top-level function from a Dart library. If this is
+ * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's
+ * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the
+ * method is not tree-shaken by the Dart compiler.
+ * @param libraryURI The URI of the Dart library which contains the entrypoint method. IF nil,
+ * this will default to the same library as the `main()` function in the Dart program.
+ *
+ * @see FlutterEngineGroup
+ */
+- (FlutterEngine*)makeEngineWithEntrypoint:(nullable NSString*)entrypoint
+ libraryURI:(nullable NSString*)libraryURI;
+
+/**
+ * Creates a running `FlutterEngine` that shares components with this group.
+ *
+ * @param entrypoint The name of a top-level function from a Dart library. If this is
+ * FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's
+ * main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the
+ * method is not tree-shaken by the Dart compiler.
+ * @param libraryURI The URI of the Dart library which contains the entrypoint method. IF nil,
+ * this will default to the same library as the `main()` function in the Dart program.
+ * @param initialRoute The name of the initial Flutter `Navigator` `Route` to load. If this is
+ * FlutterDefaultInitialRoute (or nil), it will default to the "/" route.
+ *
+ * @see FlutterEngineGroup
+ */
+- (FlutterEngine*)makeEngineWithEntrypoint:(nullable NSString*)entrypoint
+ libraryURI:(nullable NSString*)libraryURI
+ initialRoute:(nullable NSString*)initialRoute;
+
+/**
+ * Creates a running `FlutterEngine` that shares components with this group.
+ *
+ * @param options Options that control how a FlutterEngine should be created.
+ *
+ * @see FlutterEngineGroupOptions
+ */
+- (FlutterEngine*)makeEngineWithOptions:(nullable FlutterEngineGroupOptions*)options;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERENGINEGROUP_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterHeadlessDartRunner.h b/source/ios/Flutter.framework/Headers/FlutterHeadlessDartRunner.h
new file mode 100644
index 0000000..08069ab
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterHeadlessDartRunner.h
@@ -0,0 +1,97 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERHEADLESSDARTRUNNER_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERHEADLESSDARTRUNNER_H_
+
+#import
+
+#import "FlutterBinaryMessenger.h"
+#import "FlutterDartProject.h"
+#import "FlutterEngine.h"
+#import "FlutterMacros.h"
+
+/**
+ * A callback for when FlutterHeadlessDartRunner has attempted to start a Dart
+ * Isolate in the background.
+ *
+ * @param success YES if the Isolate was started and run successfully, NO
+ * otherwise.
+ */
+typedef void (^FlutterHeadlessDartRunnerCallback)(BOOL success);
+
+/**
+ * The deprecated FlutterHeadlessDartRunner runs Flutter Dart code with a null rasterizer,
+ * and no native drawing surface. It is appropriate for use in running Dart
+ * code e.g. in the background from a plugin.
+ *
+ * Most callers should prefer using `FlutterEngine` directly; this interface exists
+ * for legacy support.
+ */
+FLUTTER_DARWIN_EXPORT
+FLUTTER_DEPRECATED("FlutterEngine should be used rather than FlutterHeadlessDartRunner")
+@interface FlutterHeadlessDartRunner : FlutterEngine
+
+/**
+ * Initialize this FlutterHeadlessDartRunner with a `FlutterDartProject`.
+ *
+ * If the FlutterDartProject is not specified, the FlutterHeadlessDartRunner will attempt to locate
+ * the project in a default location.
+ *
+ * A newly initialized engine will not run the `FlutterDartProject` until either
+ * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is called.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances
+ * @param projectOrNil The `FlutterDartProject` to run.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix project:(FlutterDartProject*)projectOrNil;
+
+/**
+ * Initialize this FlutterHeadlessDartRunner with a `FlutterDartProject`.
+ *
+ * If the FlutterDartProject is not specified, the FlutterHeadlessDartRunner will attempt to locate
+ * the project in a default location.
+ *
+ * A newly initialized engine will not run the `FlutterDartProject` until either
+ * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is called.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances
+ * @param projectOrNil The `FlutterDartProject` to run.
+ * @param allowHeadlessExecution Must be set to `YES`.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix
+ project:(FlutterDartProject*)projectOrNil
+ allowHeadlessExecution:(BOOL)allowHeadlessExecution;
+
+/**
+ * Initialize this FlutterHeadlessDartRunner with a `FlutterDartProject`.
+ *
+ * If the FlutterDartProject is not specified, the FlutterHeadlessDartRunner will attempt to locate
+ * the project in a default location.
+ *
+ * A newly initialized engine will not run the `FlutterDartProject` until either
+ * `-runWithEntrypoint:` or `-runWithEntrypoint:libraryURI` is called.
+ *
+ * @param labelPrefix The label prefix used to identify threads for this instance. Should
+ * be unique across FlutterEngine instances
+ * @param projectOrNil The `FlutterDartProject` to run.
+ * @param allowHeadlessExecution Must be set to `YES`.
+ * @param restorationEnabled Must be set to `NO`.
+ */
+- (instancetype)initWithName:(NSString*)labelPrefix
+ project:(FlutterDartProject*)projectOrNil
+ allowHeadlessExecution:(BOOL)allowHeadlessExecution
+ restorationEnabled:(BOOL)restorationEnabled NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Not recommended for use - will initialize with a default label ("io.flutter.headless")
+ * and the default FlutterDartProject.
+ */
+- (instancetype)init;
+
+@end
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERHEADLESSDARTRUNNER_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterMacros.h b/source/ios/Flutter.framework/Headers/FlutterMacros.h
new file mode 100644
index 0000000..7f53b41
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterMacros.h
@@ -0,0 +1,48 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERMACROS_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERMACROS_H_
+
+#if defined(FLUTTER_FRAMEWORK)
+
+#define FLUTTER_DARWIN_EXPORT __attribute__((visibility("default")))
+
+#else // defined(FLUTTER_SDK)
+
+#define FLUTTER_DARWIN_EXPORT
+
+#endif // defined(FLUTTER_SDK)
+
+#ifndef NS_ASSUME_NONNULL_BEGIN
+#define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+#define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
+#endif // defined(NS_ASSUME_NONNULL_BEGIN)
+
+/**
+ * Indicates that the API has been deprecated for the specified reason. Code
+ * that uses the deprecated API will continue to work as before. However, the
+ * API will soon become unavailable and users are encouraged to immediately take
+ * the appropriate action mentioned in the deprecation message and the BREAKING
+ * CHANGES section present in the Flutter.h umbrella header.
+ */
+#define FLUTTER_DEPRECATED(msg) __attribute__((__deprecated__(msg)))
+
+/**
+ * Indicates that the previously deprecated API is now unavailable. Code that
+ * uses the API will not work and the declaration of the API is only a stub
+ * meant to display the given message detailing the actions for the user to take
+ * immediately.
+ */
+#define FLUTTER_UNAVAILABLE(msg) __attribute__((__unavailable__(msg)))
+
+#if __has_feature(objc_arc)
+#define FLUTTER_ASSERT_ARC
+#define FLUTTER_ASSERT_NOT_ARC #error ARC must be disabled !
+#else
+#define FLUTTER_ASSERT_ARC #error ARC must be enabled !
+#define FLUTTER_ASSERT_NOT_ARC
+#endif
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERMACROS_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterPlatformViews.h b/source/ios/Flutter.framework/Headers/FlutterPlatformViews.h
new file mode 100644
index 0000000..59ba4af
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterPlatformViews.h
@@ -0,0 +1,56 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLATFORMVIEWS_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLATFORMVIEWS_H_
+
+#import
+
+#import "FlutterCodecs.h"
+#import "FlutterMacros.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Wraps a `UIView` for embedding in the Flutter hierarchy
+ */
+@protocol FlutterPlatformView
+/**
+ * Returns a reference to the `UIView` that is wrapped by this `FlutterPlatformView`.
+ */
+- (UIView*)view;
+@end
+
+FLUTTER_DARWIN_EXPORT
+@protocol FlutterPlatformViewFactory
+/**
+ * Create a `FlutterPlatformView`.
+ *
+ * Implemented by iOS code that expose a `UIView` for embedding in a Flutter app.
+ *
+ * The implementation of this method should create a new `UIView` and return it.
+ *
+ * @param frame The rectangle for the newly created `UIView` measured in points.
+ * @param viewId A unique identifier for this `UIView`.
+ * @param args Parameters for creating the `UIView` sent from the Dart side of the Flutter app.
+ * If `createArgsCodec` is not implemented, or if no creation arguments were sent from the Dart
+ * code, this will be null. Otherwise this will be the value sent from the Dart code as decoded by
+ * `createArgsCodec`.
+ */
+- (NSObject*)createWithFrame:(CGRect)frame
+ viewIdentifier:(int64_t)viewId
+ arguments:(id _Nullable)args;
+
+/**
+ * Returns the `FlutterMessageCodec` for decoding the args parameter of `createWithFrame`.
+ *
+ * Only needs to be implemented if `createWithFrame` needs an arguments parameter.
+ */
+@optional
+- (NSObject*)createArgsCodec;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLATFORMVIEWS_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterPlugin.h b/source/ios/Flutter.framework/Headers/FlutterPlugin.h
new file mode 100644
index 0000000..8ab46cf
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterPlugin.h
@@ -0,0 +1,448 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGIN_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGIN_H_
+
+#import
+#import
+
+#import "FlutterBinaryMessenger.h"
+#import "FlutterChannels.h"
+#import "FlutterCodecs.h"
+#import "FlutterPlatformViews.h"
+#import "FlutterTexture.h"
+
+NS_ASSUME_NONNULL_BEGIN
+@protocol FlutterPluginRegistrar;
+@protocol FlutterPluginRegistry;
+
+#pragma mark -
+/**
+ * Protocol for listener of events from the UIApplication, typically a FlutterPlugin.
+ */
+@protocol FlutterApplicationLifeCycleDelegate
+
+@optional
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `NO` if this vetos application launch.
+ */
+- (BOOL)application:(UIApplication*)application
+ didFinishLaunchingWithOptions:(NSDictionary*)launchOptions;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `NO` if this vetos application launch.
+ */
+- (BOOL)application:(UIApplication*)application
+ willFinishLaunchingWithOptions:(NSDictionary*)launchOptions;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)applicationDidBecomeActive:(UIApplication*)application;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)applicationWillResignActive:(UIApplication*)application;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)applicationDidEnterBackground:(UIApplication*)application;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)applicationWillEnterForeground:(UIApplication*)application;
+
+/**
+ Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)applicationWillTerminate:(UIApplication*)application;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings
+ API_DEPRECATED(
+ "See -[UIApplicationDelegate application:didRegisterUserNotificationSettings:] deprecation",
+ ios(8.0, 10.0));
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didFailToRegisterForRemoteNotificationsWithError:(NSError*)error;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ didReceiveRemoteNotification:(NSDictionary*)userInfo
+ fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didReceiveLocalNotification:(UILocalNotification*)notification
+ API_DEPRECATED(
+ "See -[UIApplicationDelegate application:didReceiveLocalNotification:] deprecation",
+ ios(4.0, 10.0));
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ openURL:(NSURL*)url
+ options:(NSDictionary*)options;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ openURL:(NSURL*)url
+ sourceApplication:(NSString*)sourceApplication
+ annotation:(id)annotation;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
+ completionHandler:(void (^)(BOOL succeeded))completionHandler
+ API_AVAILABLE(ios(9.0));
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ handleEventsForBackgroundURLSession:(nonnull NSString*)identifier
+ completionHandler:(nonnull void (^)(void))completionHandler;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
+
+/**
+ * Called if this has been registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `YES` if this handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ continueUserActivity:(NSUserActivity*)userActivity
+ restorationHandler:(void (^)(NSArray*))restorationHandler;
+@end
+
+#pragma mark -
+/**
+ * A plugin registration callback.
+ *
+ * Used for registering plugins with additional instances of
+ * `FlutterPluginRegistry`.
+ *
+ * @param registry The registry to register plugins with.
+ */
+typedef void (*FlutterPluginRegistrantCallback)(NSObject* registry);
+
+#pragma mark -
+/**
+ * Implemented by the iOS part of a Flutter plugin.
+ *
+ * Defines a set of optional callback methods and a method to set up the plugin
+ * and register it to be called by other application components.
+ */
+@protocol FlutterPlugin
+@required
+/**
+ * Registers this plugin using the context information and callback registration
+ * methods exposed by the given registrar.
+ *
+ * The registrar is obtained from a `FlutterPluginRegistry` which keeps track of
+ * the identity of registered plugins and provides basic support for cross-plugin
+ * coordination.
+ *
+ * The caller of this method, a plugin registrant, is usually autogenerated by
+ * Flutter tooling based on declared plugin dependencies. The generated registrant
+ * asks the registry for a registrar for each plugin, and calls this method to
+ * allow the plugin to initialize itself and register callbacks with application
+ * objects available through the registrar protocol.
+ *
+ * @param registrar A helper providing application context and methods for
+ * registering callbacks.
+ */
++ (void)registerWithRegistrar:(NSObject*)registrar;
+@optional
+/**
+ * Set a callback for registering plugins to an additional `FlutterPluginRegistry`,
+ * including headless `FlutterEngine` instances.
+ *
+ * This method is typically called from within an application's `AppDelegate` at
+ * startup to allow for plugins which create additional `FlutterEngine` instances
+ * to register the application's plugins.
+ *
+ * @param callback A callback for registering some set of plugins with a
+ * `FlutterPluginRegistry`.
+ */
++ (void)setPluginRegistrantCallback:(FlutterPluginRegistrantCallback)callback;
+@optional
+/**
+ * Called if this plugin has been registered to receive `FlutterMethodCall`s.
+ *
+ * @param call The method call command object.
+ * @param result A callback for submitting the result of the call.
+ */
+- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result;
+@optional
+/**
+ * Called when a plugin is being removed from a `FlutterEngine`, which is
+ * usually the result of the `FlutterEngine` being deallocated. This method
+ * provides the opportunity to do necessary cleanup.
+ *
+ * You will only receive this method if you registered your plugin instance with
+ * the `FlutterEngine` via `-[FlutterPluginRegistry publish:]`.
+ *
+ * @param registrar The registrar that was used to publish the plugin.
+ *
+ */
+- (void)detachFromEngineForRegistrar:(NSObject*)registrar;
+@end
+
+#pragma mark -
+/**
+ * How the UIGestureRecognizers of a platform view are blocked.
+ *
+ * UIGestureRecognizers of platform views can be blocked based on decisions made by the
+ * Flutter Framework (e.g. When an interact-able widget is covering the platform view).
+ */
+typedef enum {
+ // NOLINTBEGIN(readability-identifier-naming)
+ /**
+ * Flutter blocks all the UIGestureRecognizers on the platform view as soon as it
+ * decides they should be blocked.
+ *
+ * With this policy, only the `touchesBegan` method for all the UIGestureRecognizers is guaranteed
+ * to be called.
+ */
+ FlutterPlatformViewGestureRecognizersBlockingPolicyEager,
+ /**
+ * Flutter blocks the platform view's UIGestureRecognizers from recognizing only after
+ * touchesEnded was invoked.
+ *
+ * This results in the platform view's UIGestureRecognizers seeing the entire touch sequence,
+ * but never recognizing the gesture (and never invoking actions).
+ */
+ FlutterPlatformViewGestureRecognizersBlockingPolicyWaitUntilTouchesEnded,
+ // NOLINTEND(readability-identifier-naming)
+} FlutterPlatformViewGestureRecognizersBlockingPolicy;
+
+#pragma mark -
+/**
+ * Registration context for a single `FlutterPlugin`, providing a one stop shop
+ * for the plugin to access contextual information and register callbacks for
+ * various application events.
+ *
+ * Registrars are obtained from a `FlutterPluginRegistry` which keeps track of
+ * the identity of registered plugins and provides basic support for cross-plugin
+ * coordination.
+ */
+@protocol FlutterPluginRegistrar
+/**
+ * Returns a `FlutterBinaryMessenger` for creating Dart/iOS communication
+ * channels to be used by the plugin.
+ *
+ * @return The messenger.
+ */
+- (NSObject*)messenger;
+
+/**
+ * Returns a `FlutterTextureRegistry` for registering textures
+ * provided by the plugin.
+ *
+ * @return The texture registry.
+ */
+- (NSObject*)textures;
+
+/**
+ * Registers a `FlutterPlatformViewFactory` for creation of platform views.
+ *
+ * Plugins expose `UIView` for embedding in Flutter apps by registering a view factory.
+ *
+ * @param factory The view factory that will be registered.
+ * @param factoryId A unique identifier for the factory, the Dart code of the Flutter app can use
+ * this identifier to request creation of a `UIView` by the registered factory.
+ */
+- (void)registerViewFactory:(NSObject*)factory
+ withId:(NSString*)factoryId;
+
+/**
+ * Registers a `FlutterPlatformViewFactory` for creation of platform views.
+ *
+ * Plugins can expose a `UIView` for embedding in Flutter apps by registering a view factory.
+ *
+ * @param factory The view factory that will be registered.
+ * @param factoryId A unique identifier for the factory, the Dart code of the Flutter app can use
+ * this identifier to request creation of a `UIView` by the registered factory.
+ * @param gestureRecognizersBlockingPolicy How UIGestureRecognizers on the platform views are
+ * blocked.
+ *
+ */
+- (void)registerViewFactory:(NSObject*)factory
+ withId:(NSString*)factoryId
+ gestureRecognizersBlockingPolicy:
+ (FlutterPlatformViewGestureRecognizersBlockingPolicy)gestureRecognizersBlockingPolicy;
+
+/**
+ * Publishes a value for external use of the plugin.
+ *
+ * Plugins may publish a single value, such as an instance of the
+ * plugin's main class, for situations where external control or
+ * interaction is needed.
+ *
+ * The published value will be available from the `FlutterPluginRegistry`.
+ * Repeated calls overwrite any previous publication.
+ *
+ * @param value The value to be published.
+ */
+- (void)publish:(NSObject*)value;
+
+/**
+ * Registers the plugin as a receiver of incoming method calls from the Dart side
+ * on the specified `FlutterMethodChannel`.
+ *
+ * @param delegate The receiving object, such as the plugin's main class.
+ * @param channel The channel
+ */
+- (void)addMethodCallDelegate:(NSObject*)delegate
+ channel:(FlutterMethodChannel*)channel;
+
+/**
+ * Registers the plugin as a receiver of `UIApplicationDelegate` calls.
+ *
+ * @param delegate The receiving object, such as the plugin's main class.
+ */
+- (void)addApplicationDelegate:(NSObject*)delegate
+ NS_EXTENSION_UNAVAILABLE_IOS("Disallowed in plugins used in app extensions");
+
+/**
+ * Returns the file name for the given asset.
+ * The returned file name can be used to access the asset in the application's main bundle.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @return the file name to be used for lookup in the main bundle.
+ */
+- (NSString*)lookupKeyForAsset:(NSString*)asset;
+
+/**
+ * Returns the file name for the given asset which originates from the specified package.
+ * The returned file name can be used to access the asset in the application's main bundle.
+ *
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @param package The name of the package from which the asset originates.
+ * @return the file name to be used for lookup in the main bundle.
+ */
+- (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package;
+@end
+
+#pragma mark -
+/**
+ * A registry of Flutter iOS plugins.
+ *
+ * Plugins are identified by unique string keys, typically the name of the
+ * plugin's main class. The registry tracks plugins by this key, mapping it to
+ * a value published by the plugin during registration, if any. This provides a
+ * very basic means of cross-plugin coordination with loose coupling between
+ * unrelated plugins.
+ *
+ * Plugins typically need contextual information and the ability to register
+ * callbacks for various application events. To keep the API of the registry
+ * focused, these facilities are not provided directly by the registry, but by
+ * a `FlutterPluginRegistrar`, created by the registry in exchange for the unique
+ * key of the plugin.
+ *
+ * There is no implied connection between the registry and the registrar.
+ * Specifically, callbacks registered by the plugin via the registrar may be
+ * relayed directly to the underlying iOS application objects.
+ */
+@protocol FlutterPluginRegistry
+/**
+ * Returns a registrar for registering a plugin.
+ *
+ * @param pluginKey The unique key identifying the plugin.
+ */
+- (nullable NSObject*)registrarForPlugin:(NSString*)pluginKey;
+/**
+ * Returns whether the specified plugin has been registered.
+ *
+ * @param pluginKey The unique key identifying the plugin.
+ * @return `YES` if `registrarForPlugin` has been called with `pluginKey`.
+ */
+- (BOOL)hasPlugin:(NSString*)pluginKey;
+
+/**
+ * Returns a value published by the specified plugin.
+ *
+ * @param pluginKey The unique key identifying the plugin.
+ * @return An object published by the plugin, if any. Will be `NSNull` if
+ * nothing has been published. Will be `nil` if the plugin has not been
+ * registered.
+ */
+- (nullable NSObject*)valuePublishedByPlugin:(NSString*)pluginKey;
+@end
+
+#pragma mark -
+/**
+ * Implement this in the `UIAppDelegate` of your app to enable Flutter plugins to register
+ * themselves to the application life cycle events.
+ *
+ * For plugins to receive events from `UNUserNotificationCenter`, register this as the
+ * `UNUserNotificationCenterDelegate`.
+ */
+@protocol FlutterAppLifeCycleProvider
+
+/**
+ * Called when registering a new `FlutterApplicaitonLifeCycleDelegate`.
+ *
+ * See also: `-[FlutterAppDelegate addApplicationLifeCycleDelegate:]`
+ */
+- (void)addApplicationLifeCycleDelegate:(NSObject*)delegate;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGIN_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h b/source/ios/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h
new file mode 100644
index 0000000..95d1e61
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterPluginAppLifeCycleDelegate.h
@@ -0,0 +1,148 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGINAPPLIFECYCLEDELEGATE_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGINAPPLIFECYCLEDELEGATE_H_
+
+#import "FlutterPlugin.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Propagates `UIAppDelegate` callbacks to registered plugins.
+ */
+FLUTTER_DARWIN_EXPORT
+@interface FlutterPluginAppLifeCycleDelegate : NSObject
+
+/**
+ * Registers `delegate` to receive life cycle callbacks via this FlutterPluginAppLifeCycleDelegate
+ * as long as it is alive.
+ *
+ * `delegate` will only be referenced weakly.
+ */
+- (void)addDelegate:(NSObject*)delegate;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `NO` if any plugin vetos application launch.
+ */
+- (BOOL)application:(UIApplication*)application
+ didFinishLaunchingWithOptions:(NSDictionary*)launchOptions;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ *
+ * @return `NO` if any plugin vetos application launch.
+ */
+- (BOOL)application:(UIApplication*)application
+ willFinishLaunchingWithOptions:(NSDictionary*)launchOptions;
+
+/**
+ * Called if this plugin has been registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings
+ API_DEPRECATED(
+ "See -[UIApplicationDelegate application:didRegisterUserNotificationSettings:] deprecation",
+ ios(8.0, 10.0));
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didFailToRegisterForRemoteNotificationsWithError:(NSError*)error;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didReceiveRemoteNotification:(NSDictionary*)userInfo
+ fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ didReceiveLocalNotification:(UILocalNotification*)notification
+ API_DEPRECATED(
+ "See -[UIApplicationDelegate application:didReceiveLocalNotification:] deprecation",
+ ios(4.0, 10.0));
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until
+ * some plugin handles the request.
+ *
+ * @return `YES` if any plugin handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ openURL:(NSURL*)url
+ options:(NSDictionary*)options;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until
+ * some plugin handles the request.
+ *
+ * @return `YES` if any plugin handles the request.
+ */
+- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until
+ * some plugin handles the request.
+ *
+ * @return `YES` if any plugin handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ openURL:(NSURL*)url
+ sourceApplication:(NSString*)sourceApplication
+ annotation:(id)annotation;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks.
+ */
+- (void)application:(UIApplication*)application
+ performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem
+ completionHandler:(void (^)(BOOL succeeded))completionHandler
+ API_AVAILABLE(ios(9.0));
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until
+ * some plugin handles the request.
+ *
+ * @return `YES` if any plugin handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ handleEventsForBackgroundURLSession:(nonnull NSString*)identifier
+ completionHandler:(nonnull void (^)(void))completionHandler;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until
+ * some plugin handles the request.
+ *
+ * @returns `YES` if any plugin handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
+
+/**
+ * Calls all plugins registered for `UIApplicationDelegate` callbacks in order of registration until
+ * some plugin handles the request.
+ *
+ * @return `YES` if any plugin handles the request.
+ */
+- (BOOL)application:(UIApplication*)application
+ continueUserActivity:(NSUserActivity*)userActivity
+ restorationHandler:(void (^)(NSArray*))restorationHandler;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERPLUGINAPPLIFECYCLEDELEGATE_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterTexture.h b/source/ios/Flutter.framework/Headers/FlutterTexture.h
new file mode 100644
index 0000000..003b865
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterTexture.h
@@ -0,0 +1,62 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERTEXTURE_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERTEXTURE_H_
+
+#import
+#import
+
+#import "FlutterMacros.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+FLUTTER_DARWIN_EXPORT
+/**
+ * Represents a texture that can be shared with Flutter.
+ *
+ * See also: https://github.com/flutter/plugins/tree/master/packages/camera
+ */
+@protocol FlutterTexture
+/** Copy the contents of the texture into a `CVPixelBuffer`. */
+- (CVPixelBufferRef _Nullable)copyPixelBuffer;
+
+/**
+ * Called when the texture is unregistered.
+ *
+ * Called on the raster thread.
+ */
+@optional
+- (void)onTextureUnregistered:(NSObject*)texture;
+@end
+
+FLUTTER_DARWIN_EXPORT
+/**
+ * A collection of registered `FlutterTexture`'s.
+ */
+@protocol FlutterTextureRegistry
+/**
+ * Registers a `FlutterTexture` for usage in Flutter and returns an id that can be used to reference
+ * that texture when calling into Flutter with channels. Textures must be registered on the
+ * platform thread. On success returns the pointer to the registered texture, else returns 0.
+ */
+- (int64_t)registerTexture:(NSObject*)texture;
+/**
+ * Notifies Flutter that the content of the previously registered texture has been updated.
+ *
+ * This will trigger a call to `-[FlutterTexture copyPixelBuffer]` on the raster thread.
+ */
+- (void)textureFrameAvailable:(int64_t)textureId;
+/**
+ * Unregisters a `FlutterTexture` that has previously regeistered with `registerTexture:`. Textures
+ * must be unregistered on the platform thread.
+ *
+ * @param textureId The result that was previously returned from `registerTexture:`.
+ */
+- (void)unregisterTexture:(int64_t)textureId;
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_COMMON_FRAMEWORK_HEADERS_FLUTTERTEXTURE_H_
diff --git a/source/ios/Flutter.framework/Headers/FlutterViewController.h b/source/ios/Flutter.framework/Headers/FlutterViewController.h
new file mode 100644
index 0000000..a218fd3
--- /dev/null
+++ b/source/ios/Flutter.framework/Headers/FlutterViewController.h
@@ -0,0 +1,260 @@
+// Copyright 2013 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERVIEWCONTROLLER_H_
+#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERVIEWCONTROLLER_H_
+
+#import
+#include
+
+#import "FlutterBinaryMessenger.h"
+#import "FlutterDartProject.h"
+#import "FlutterEngine.h"
+#import "FlutterMacros.h"
+#import "FlutterPlugin.h"
+#import "FlutterTexture.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class FlutterEngine;
+
+/**
+ * The name used for semantic update notifications via `NSNotificationCenter`.
+ *
+ * The object passed as the sender is the `FlutterViewController` associated
+ * with the update.
+ */
+FLUTTER_DARWIN_EXPORT
+// NOLINTNEXTLINE(readability-identifier-naming)
+extern NSNotificationName const FlutterSemanticsUpdateNotification;
+
+/**
+ * A `UIViewController` implementation for Flutter views.
+ *
+ * Dart execution, channel communication, texture registration, and plugin registration are all
+ * handled by `FlutterEngine`. Calls on this class to those members all proxy through to the
+ * `FlutterEngine` attached FlutterViewController.
+ *
+ * A FlutterViewController can be initialized either with an already-running `FlutterEngine` via the
+ * `initWithEngine:` initializer, or it can be initialized with a `FlutterDartProject` that will be
+ * used to implicitly spin up a new `FlutterEngine`. Creating a `FlutterEngine` before showing a
+ * FlutterViewController can be used to pre-initialize the Dart VM and to prepare the isolate in
+ * order to reduce the latency to the first rendered frame. See
+ * https://flutter.dev/docs/development/add-to-app/performance for more details on loading
+ * latency.
+ *
+ * Holding a `FlutterEngine` independently of FlutterViewControllers can also be used to not to lose
+ * Dart-related state and asynchronous tasks when navigating back and forth between a
+ * FlutterViewController and other `UIViewController`s.
+ */
+FLUTTER_DARWIN_EXPORT
+#ifdef __IPHONE_13_4
+@interface FlutterViewController
+ : UIViewController
+#else
+@interface FlutterViewController : UIViewController
+#endif
+
+/**
+ * Initializes this FlutterViewController with the specified `FlutterEngine`.
+ *
+ * The initialized viewcontroller will attach itself to the engine as part of this process.
+ *
+ * @param engine The `FlutterEngine` instance to attach to. Cannot be nil.
+ * @param nibName The NIB name to initialize this UIViewController with.
+ * @param nibBundle The NIB bundle.
+ */
+- (instancetype)initWithEngine:(FlutterEngine*)engine
+ nibName:(nullable NSString*)nibName
+ bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Initializes a new FlutterViewController and `FlutterEngine` with the specified
+ * `FlutterDartProject`.
+ *
+ * This will implicitly create a new `FlutterEngine` which is retrievable via the `engine` property
+ * after initialization.
+ *
+ * @param project The `FlutterDartProject` to initialize the `FlutterEngine` with.
+ * @param nibName The NIB name to initialize this UIViewController with.
+ * @param nibBundle The NIB bundle.
+ */
+- (instancetype)initWithProject:(nullable FlutterDartProject*)project
+ nibName:(nullable NSString*)nibName
+ bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Initializes a new FlutterViewController and `FlutterEngine` with the specified
+ * `FlutterDartProject` and `initialRoute`.
+ *
+ * This will implicitly create a new `FlutterEngine` which is retrievable via the `engine` property
+ * after initialization.
+ *
+ * @param project The `FlutterDartProject` to initialize the `FlutterEngine` with.
+ * @param initialRoute The initial `Navigator` route to load.
+ * @param nibName The NIB name to initialize this UIViewController with.
+ * @param nibBundle The NIB bundle.
+ */
+- (instancetype)initWithProject:(nullable FlutterDartProject*)project
+ initialRoute:(nullable NSString*)initialRoute
+ nibName:(nullable NSString*)nibName
+ bundle:(nullable NSBundle*)nibBundle NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Initializer that is called from loading a FlutterViewController from a XIB.
+ *
+ * See also:
+ * https://developer.apple.com/documentation/foundation/nscoding/1416145-initwithcoder?language=objc
+ */
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_DESIGNATED_INITIALIZER;
+
+/**
+ * Registers a callback that will be invoked when the Flutter view has been rendered.
+ * The callback will be fired only once.
+ *
+ * Replaces an existing callback. Use a `nil` callback to unregister the existing one.
+ */
+- (void)setFlutterViewDidRenderCallback:(void (^)(void))callback;
+
+/**
+ * Returns the file name for the given asset.
+ * The returned file name can be used to access the asset in the application's
+ * main bundle.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @return The file name to be used for lookup in the main bundle.
+ */
+- (NSString*)lookupKeyForAsset:(NSString*)asset;
+
+/**
+ * Returns the file name for the given asset which originates from the specified
+ * package.
+ * The returned file name can be used to access the asset in the application's
+ * main bundle.
+ *
+ * @param asset The name of the asset. The name can be hierarchical.
+ * @param package The name of the package from which the asset originates.
+ * @return The file name to be used for lookup in the main bundle.
+ */
+- (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package;
+
+/**
+ * Deprecated API to set initial route.
+ *
+ * Attempts to set the first route that the Flutter app shows if the Flutter
+ * runtime hasn't yet started. The default is "/".
+ *
+ * This method must be called immediately after `initWithProject` and has no
+ * effect when using `initWithEngine` if the `FlutterEngine` has already been
+ * run.
+ *
+ * Setting this after the Flutter started running has no effect. See `pushRoute`
+ * and `popRoute` to change the route after Flutter started running.
+ *
+ * This is deprecated because it needs to be called at the time of initialization
+ * and thus should just be in the `initWithProject` initializer. If using
+ * `initWithEngine`, the initial route should be set on the engine's
+ * initializer.
+ *
+ * @param route The name of the first route to show.
+ */
+- (void)setInitialRoute:(NSString*)route
+ FLUTTER_DEPRECATED("Use FlutterViewController initializer to specify initial route");
+
+/**
+ * Instructs the Flutter Navigator (if any) to go back.
+ */
+- (void)popRoute;
+
+/**
+ * Instructs the Flutter Navigator (if any) to push a route on to the navigation
+ * stack.
+ *
+ * @param route The name of the route to push to the navigation stack.
+ */
+- (void)pushRoute:(NSString*)route;
+
+/**
+ * The `FlutterPluginRegistry` used by this FlutterViewController.
+ */
+- (id)pluginRegistry;
+
+/**
+ * A wrapper around UIAccessibilityIsVoiceOverRunning().
+ *
+ * As a C function, UIAccessibilityIsVoiceOverRunning() cannot be mocked in testing. Mock
+ * this class method to testing features depends on UIAccessibilityIsVoiceOverRunning().
+ */
++ (BOOL)isUIAccessibilityIsVoiceOverRunning;
+
+/**
+ * True if at least one frame has rendered and the ViewController has appeared.
+ *
+ * This property is reset to false when the ViewController disappears. It is
+ * guaranteed to only alternate between true and false for observers.
+ */
+@property(nonatomic, readonly, getter=isDisplayingFlutterUI) BOOL displayingFlutterUI;
+
+/**
+ * Specifies the view to use as a splash screen. Flutter's rendering is asynchronous, so the first
+ * frame rendered by the Flutter application might not immediately appear when the Flutter view is
+ * initially placed in the view hierarchy. The splash screen view will be used as
+ * a replacement until the first frame is rendered.
+ *
+ * The view used should be appropriate for multiple sizes; an autoresizing mask to
+ * have a flexible width and height will be applied automatically.
+ *
+ * Set to nil to remove the splash screen view.
+ */
+@property(strong, nonatomic, nullable) UIView* splashScreenView;
+
+/**
+ * Attempts to set the `splashScreenView` property from the `UILaunchStoryboardName` from the
+ * main bundle's `Info.plist` file. This method will not change the value of `splashScreenView`
+ * if it cannot find a default one from a storyboard or nib.
+ *
+ * @return `YES` if successful, `NO` otherwise.
+ */
+- (BOOL)loadDefaultSplashScreenView;
+
+/**
+ * Controls whether the created view will be opaque or not.
+ *
+ * Default is `YES`. Note that setting this to `NO` may negatively impact performance
+ * when using hardware acceleration, and toggling this will trigger a re-layout of the
+ * view.
+ */
+@property(nonatomic, getter=isViewOpaque) BOOL viewOpaque;
+
+/**
+ * The `FlutterEngine` instance for this view controller. This could be the engine this
+ * `FlutterViewController` is initialized with or a new `FlutterEngine` implicitly created if
+ * no engine was supplied during initialization.
+ */
+@property(weak, nonatomic, readonly) FlutterEngine* engine;
+
+/**
+ * The `FlutterBinaryMessenger` associated with this FlutterViewController (used for communicating
+ * with channels).
+ *
+ * This is just a convenient way to get the |FlutterEngine|'s binary messenger.
+ */
+@property(nonatomic, readonly) NSObject* binaryMessenger;
+
+/**
+ * If the `FlutterViewController` creates a `FlutterEngine`, this property
+ * determines if that `FlutterEngine` has `allowHeadlessExecution` set.
+ *
+ * The intention is that this is used with the XIB. Otherwise, a
+ * `FlutterEngine` can just be sent to the init methods.
+ *
+ * See also: `-[FlutterEngine initWithName:project:allowHeadlessExecution:]`
+ */
+@property(nonatomic, readonly) BOOL engineAllowHeadlessExecution;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_HEADERS_FLUTTERVIEWCONTROLLER_H_
diff --git a/source/ios/Flutter.framework/Info.plist b/source/ios/Flutter.framework/Info.plist
new file mode 100644
index 0000000..6087946
--- /dev/null
+++ b/source/ios/Flutter.framework/Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ Flutter
+ CFBundleIdentifier
+ io.flutter.flutter
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Flutter
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1.0
+ MinimumOSVersion
+ 12.0
+ FlutterEngine
+ edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4
+ ClangVersion
+ b'Fuchsia clang version 18.0.0 (https://llvm.googlesource.com/llvm-project 725656bdd885483c39f482a01ea25d67acf39c46)'
+
+
diff --git a/source/ios/Flutter.framework/Modules/module.modulemap b/source/ios/Flutter.framework/Modules/module.modulemap
new file mode 100644
index 0000000..bf81c8a
--- /dev/null
+++ b/source/ios/Flutter.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module Flutter {
+ umbrella header "Flutter.h"
+
+ export *
+ module * { export * }
+}
diff --git a/source/ios/Flutter.framework/PrivacyInfo.xcprivacy b/source/ios/Flutter.framework/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..d4bc7fc
--- /dev/null
+++ b/source/ios/Flutter.framework/PrivacyInfo.xcprivacy
@@ -0,0 +1,32 @@
+
+
+
+
+ NSPrivacyTracking
+
+ NSPrivacyTrackingDomains
+
+ NSPrivacyCollectedDataTypes
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ 0A2A.1
+ C617.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+
+
diff --git a/source/ios/Flutter.framework/_CodeSignature/CodeResources b/source/ios/Flutter.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000..5a3ef07
--- /dev/null
+++ b/source/ios/Flutter.framework/_CodeSignature/CodeResources
@@ -0,0 +1,311 @@
+
+
+
+
+ files
+
+ Headers/Flutter.h
+
+ wTPJHICwW6wxY3b87ek7ITN5kJk=
+
+ Headers/FlutterAppDelegate.h
+
+ zbvYFr9dywry0lMMrHuNOOaNgkY=
+
+ Headers/FlutterBinaryMessenger.h
+
+ ksjIMu5IPw+Q3rw2YkAx0KjxkdM=
+
+ Headers/FlutterCallbackCache.h
+
+ V/wkSSsyYdMoexF6wPrC3KgkL4g=
+
+ Headers/FlutterChannels.h
+
+ vFsZXNqjflvqKqAzsIptQaTSJho=
+
+ Headers/FlutterCodecs.h
+
+ sUgX1PJzkvyinL5i7nS1ro/Kd5o=
+
+ Headers/FlutterDartProject.h
+
+ 1Ii7W6lYWZUeB6C6rtn269jAxgA=
+
+ Headers/FlutterEngine.h
+
+ AqVvCbPmgWMQKrRnib05Okrjbp0=
+
+ Headers/FlutterEngineGroup.h
+
+ D7zmZX01a5aYqFKalkcNejJ9toU=
+
+ Headers/FlutterHeadlessDartRunner.h
+
+ UqnnVWwQEYYX56eu7lt6dpR3LIc=
+
+ Headers/FlutterMacros.h
+
+ crQ9782ULebLQfIR+MbBkjB7d+k=
+
+ Headers/FlutterPlatformViews.h
+
+ ocQVSiAiUMYfVtZIn48LpYTJA5w=
+
+ Headers/FlutterPlugin.h
+
+ EARXud6pHb7ZYP8eXPDnluMqcXk=
+
+ Headers/FlutterPluginAppLifeCycleDelegate.h
+
+ qWHw5VIWEa0NmJ1PMhD16nlfRKk=
+
+ Headers/FlutterTexture.h
+
+ 7nFruy6bmD9XHvbzEwfdTXE4Rkk=
+
+ Headers/FlutterViewController.h
+
+ n0oqDKaGwBHcAUY4+7F+z78onKc=
+
+ Info.plist
+
+ PKo6XwAFHgqwL3taNHqLZdj8jq0=
+
+ Modules/module.modulemap
+
+ wJV5dCKEGl+FAtDc8wJJh/fvKXs=
+
+ PrivacyInfo.xcprivacy
+
+ D+cqXttvC7E/uziGjFdqFabWd7A=
+
+ icudtl.dat
+
+ Ubat0LvE4LUgCwHeyl0Anx2vnzk=
+
+
+ files2
+
+ Headers/Flutter.h
+
+ hash2
+
+ auaf7wPxiASCYD2ACy1dfbMJvmONwFvSz1BWYAQrrSw=
+
+
+ Headers/FlutterAppDelegate.h
+
+ hash2
+
+ o0iigVsmgwmtZfSv3X7hReDNYP5rXblslDnqq2s6UQc=
+
+
+ Headers/FlutterBinaryMessenger.h
+
+ hash2
+
+ EXDk4t+7qCpyQkar+q9WHqY9bcK8eyohCwGVtBJhMy8=
+
+
+ Headers/FlutterCallbackCache.h
+
+ hash2
+
+ 0h9+vK5K+r8moTsiGBfs6+TM9Qog089afHAy3gbcwDU=
+
+
+ Headers/FlutterChannels.h
+
+ hash2
+
+ kg195C3vZLiOn8KeFQUy7DoVuA9VZDpqoBLVn64uGaI=
+
+
+ Headers/FlutterCodecs.h
+
+ hash2
+
+ ZyqlHYuZbpFevVeny9Wdl0rVFgS7szIyssSiCyaaeFM=
+
+
+ Headers/FlutterDartProject.h
+
+ hash2
+
+ Y5PEW7Tws4XpVmn15X/fdaU0d76hSeF803JlgrI20qE=
+
+
+ Headers/FlutterEngine.h
+
+ hash2
+
+ RAOC6nDhZdghbAzsIZgVeq6qPt+MUNTfm/vkUnhmZO4=
+
+
+ Headers/FlutterEngineGroup.h
+
+ hash2
+
+ OW47bgphAFby1w8jlGCDvYQnMT3W1UAKiw5oFHtY788=
+
+
+ Headers/FlutterHeadlessDartRunner.h
+
+ hash2
+
+ nmZjZpvFCXrygf4U9aPkNi8VcI7cL5AtA+CY5uUWIL0=
+
+
+ Headers/FlutterMacros.h
+
+ hash2
+
+ ebBVHSZcUnAbN4hRcYq3ttt6++z1Ybc8KVSYhVToD5k=
+
+
+ Headers/FlutterPlatformViews.h
+
+ hash2
+
+ 4hl+kRU4PNNKdAHvYrliObXzSjRzow9Z18oOMRZIa0o=
+
+
+ Headers/FlutterPlugin.h
+
+ hash2
+
+ HqbvCHqKWTzs5GjLAwupqEIYVi9yf5CrMdMe31EOwUA=
+
+
+ Headers/FlutterPluginAppLifeCycleDelegate.h
+
+ hash2
+
+ +PMn+5SDj2Vd6RU8CQIt/JYl3T+8Dhp7HImqAzocoNk=
+
+
+ Headers/FlutterTexture.h
+
+ hash2
+
+ 4kb25KahvBulQiElAYv/ZSbdkhkb5F/AKRZv4IjLsOw=
+
+
+ Headers/FlutterViewController.h
+
+ hash2
+
+ phm49xhui2KkRomlqtmASHuU7lmd/s3qNCQpYxC0IMc=
+
+
+ Modules/module.modulemap
+
+ hash2
+
+ 0VjriRpZ7AZZaP/0mMAPMJPhi6LoMB4MhXzL5j24tGs=
+
+
+ PrivacyInfo.xcprivacy
+
+ hash2
+
+ n5XX54YqS1a2btkmvW1iLSplRagn0ZhHJ4tDjVcdQhI=
+
+
+ icudtl.dat
+
+ hash2
+
+ ZepykIMSjfzhwAcmupMrkaqvXkhza1ZE3TdHjl8odaw=
+
+
+
+ rules
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/source/ios/Flutter.framework/icudtl.dat b/source/ios/Flutter.framework/icudtl.dat
new file mode 100644
index 0000000..466abd8
Binary files /dev/null and b/source/ios/Flutter.framework/icudtl.dat differ
diff --git a/flutter/ios/Flutter/AppFrameworkInfo.plist b/source/ios/Flutter/AppFrameworkInfo.plist
similarity index 100%
rename from flutter/ios/Flutter/AppFrameworkInfo.plist
rename to source/ios/Flutter/AppFrameworkInfo.plist
diff --git a/flutter/ios/Flutter/Debug.xcconfig b/source/ios/Flutter/Debug.xcconfig
similarity index 100%
rename from flutter/ios/Flutter/Debug.xcconfig
rename to source/ios/Flutter/Debug.xcconfig
diff --git a/flutter/ios/Flutter/Release.xcconfig b/source/ios/Flutter/Release.xcconfig
similarity index 100%
rename from flutter/ios/Flutter/Release.xcconfig
rename to source/ios/Flutter/Release.xcconfig
diff --git a/flutter/ios/PacketTunnel/Info.plist b/source/ios/PacketTunnel/Info.plist
similarity index 100%
rename from flutter/ios/PacketTunnel/Info.plist
rename to source/ios/PacketTunnel/Info.plist
diff --git a/flutter/ios/PacketTunnel/PacketTunnel.entitlements b/source/ios/PacketTunnel/PacketTunnel.entitlements
similarity index 100%
rename from flutter/ios/PacketTunnel/PacketTunnel.entitlements
rename to source/ios/PacketTunnel/PacketTunnel.entitlements
diff --git a/flutter/ios/PacketTunnel/site.dat b/source/ios/PacketTunnel/site.dat
similarity index 100%
rename from flutter/ios/PacketTunnel/site.dat
rename to source/ios/PacketTunnel/site.dat
diff --git a/flutter/ios/Podfile b/source/ios/Podfile
similarity index 100%
rename from flutter/ios/Podfile
rename to source/ios/Podfile
diff --git a/flutter/ios/Runner.xcodeproj/project.pbxproj b/source/ios/Runner.xcodeproj/project.pbxproj
similarity index 98%
rename from flutter/ios/Runner.xcodeproj/project.pbxproj
rename to source/ios/Runner.xcodeproj/project.pbxproj
index 6eb3200..85bd63a 100644
--- a/flutter/ios/Runner.xcodeproj/project.pbxproj
+++ b/source/ios/Runner.xcodeproj/project.pbxproj
@@ -35,6 +35,7 @@
C09C70752C3E5685000F6E01 /* leaf.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0CB10F52C3275EE00A1F217 /* leaf.xcframework */; };
C09C70762C3E5685000F6E01 /* leaf.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C0CB10F52C3275EE00A1F217 /* leaf.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
C09CB0812C50A09A0028C461 /* TESWT.m in Sources */ = {isa = PBXBuildFile; fileRef = C09CB0802C50A09A0028C461 /* TESWT.m */; };
+ C09CB08E2C50AEB40028C461 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C09CB08D2C50AEB40028C461 /* Flutter.framework */; };
C0CB10F62C3275EE00A1F217 /* leaf.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0CB10F52C3275EE00A1F217 /* leaf.xcframework */; };
DBC6F25A26C78B1D91884CE1 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */; };
E2B5FEC68AAAE043A3080A59 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A9C0075B77637136AF52D8B /* Pods_Runner.framework */; };
@@ -127,6 +128,7 @@
C09CB07F2C50A09A0028C461 /* TESWT.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TESWT.h; sourceTree = ""; };
C09CB0802C50A09A0028C461 /* TESWT.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TESWT.m; sourceTree = ""; };
C09CB0832C50A0DD0028C461 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
+ C09CB08D2C50AEB40028C461 /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Flutter.framework; sourceTree = ""; };
C0CB10F52C3275EE00A1F217 /* leaf.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = leaf.xcframework; sourceTree = ""; };
/* End PBXFileReference section */
@@ -145,6 +147,7 @@
buildActionMask = 2147483647;
files = (
C0CB10F62C3275EE00A1F217 /* leaf.xcframework in Frameworks */,
+ C09CB08E2C50AEB40028C461 /* Flutter.framework in Frameworks */,
2FD21F2425A364B700F556E0 /* NetworkExtension.framework in Frameworks */,
DBC6F25A26C78B1D91884CE1 /* Pods_Runner.framework in Frameworks */,
E2B5FEC68AAAE043A3080A59 /* Pods_Runner.framework in Frameworks */,
@@ -251,6 +254,7 @@
isa = PBXGroup;
children = (
C0CB10F52C3275EE00A1F217 /* leaf.xcframework */,
+ C09CB08D2C50AEB40028C461 /* Flutter.framework */,
2FD21EF825A363AA00F556E0 /* NetworkExtension.framework */,
4A9C0075B77637136AF52D8B /* Pods_Runner.framework */,
);
@@ -568,9 +572,11 @@
CURRENT_PROJECT_VERSION = 222;
DEVELOPMENT_TEAM = 26XWXKSR3B;
ENABLE_BITCODE = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
+ "$(PROJECT_DIR)",
);
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = UUVPN;
@@ -852,9 +858,11 @@
CURRENT_PROJECT_VERSION = 222;
DEVELOPMENT_TEAM = 26XWXKSR3B;
ENABLE_BITCODE = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
+ "$(PROJECT_DIR)",
);
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = UUVPN;
@@ -897,9 +905,11 @@
CURRENT_PROJECT_VERSION = 222;
DEVELOPMENT_TEAM = 26XWXKSR3B;
ENABLE_BITCODE = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
+ "$(PROJECT_DIR)",
);
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = UUVPN;
diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/source/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to source/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
similarity index 100%
rename from flutter/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
rename to source/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
diff --git a/flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/source/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
similarity index 100%
rename from flutter/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
rename to source/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
diff --git a/flutter/ios/Runner.xcworkspace/contents.xcworkspacedata b/source/ios/Runner.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from flutter/ios/Runner.xcworkspace/contents.xcworkspacedata
rename to source/ios/Runner.xcworkspace/contents.xcworkspacedata
diff --git a/flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/source/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from flutter/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to source/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/flutter/ios/Runner/AppDelegate.swift b/source/ios/Runner/AppDelegate.swift
similarity index 99%
rename from flutter/ios/Runner/AppDelegate.swift
rename to source/ios/Runner/AppDelegate.swift
index 1c5a9fe..c047f1c 100644
--- a/flutter/ios/Runner/AppDelegate.swift
+++ b/source/ios/Runner/AppDelegate.swift
@@ -9,7 +9,7 @@ import os
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
- GeneratedPluginRegistrant.register(with: self)
+// GeneratedPluginRegistrant.register(with: self)
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController;
let vpnManagerChannel = FlutterMethodChannel.init(name: "com.vpntunnel.vpnzeus/vpn_manager",
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83_5@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png b/source/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png
rename to source/ios/Runner/Assets.xcassets/AppIcon.appiconset/ios-marketing.png
diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
diff --git a/flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/source/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
similarity index 100%
rename from flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
rename to source/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
diff --git a/flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard b/source/ios/Runner/Base.lproj/LaunchScreen.storyboard
similarity index 100%
rename from flutter/ios/Runner/Base.lproj/LaunchScreen.storyboard
rename to source/ios/Runner/Base.lproj/LaunchScreen.storyboard
diff --git a/flutter/ios/Runner/Base.lproj/Main.storyboard b/source/ios/Runner/Base.lproj/Main.storyboard
similarity index 100%
rename from flutter/ios/Runner/Base.lproj/Main.storyboard
rename to source/ios/Runner/Base.lproj/Main.storyboard
diff --git a/flutter/ios/Runner/Info.plist b/source/ios/Runner/Info.plist
similarity index 100%
rename from flutter/ios/Runner/Info.plist
rename to source/ios/Runner/Info.plist
diff --git a/flutter/ios/Runner/Runner-Bridging-Header.h b/source/ios/Runner/Runner-Bridging-Header.h
similarity index 100%
rename from flutter/ios/Runner/Runner-Bridging-Header.h
rename to source/ios/Runner/Runner-Bridging-Header.h
diff --git a/flutter/ios/Runner/Runner.entitlements b/source/ios/Runner/Runner.entitlements
similarity index 100%
rename from flutter/ios/Runner/Runner.entitlements
rename to source/ios/Runner/Runner.entitlements
diff --git a/flutter/ios/Runner/TESWT.h b/source/ios/Runner/TESWT.h
similarity index 100%
rename from flutter/ios/Runner/TESWT.h
rename to source/ios/Runner/TESWT.h
diff --git a/flutter/ios/Runner/TESWT.m b/source/ios/Runner/TESWT.m
similarity index 100%
rename from flutter/ios/Runner/TESWT.m
rename to source/ios/Runner/TESWT.m
diff --git a/flutter/ios/Shared/Helpers/FileManager+Helpers.swift b/source/ios/Shared/Helpers/FileManager+Helpers.swift
similarity index 100%
rename from flutter/ios/Shared/Helpers/FileManager+Helpers.swift
rename to source/ios/Shared/Helpers/FileManager+Helpers.swift
diff --git a/flutter/ios/Shared/Helpers/URL+Helpers.swift b/source/ios/Shared/Helpers/URL+Helpers.swift
similarity index 100%
rename from flutter/ios/Shared/Helpers/URL+Helpers.swift
rename to source/ios/Shared/Helpers/URL+Helpers.swift
diff --git a/flutter/ios/Shared/LeafAdapter.swift b/source/ios/Shared/LeafAdapter.swift
similarity index 100%
rename from flutter/ios/Shared/LeafAdapter.swift
rename to source/ios/Shared/LeafAdapter.swift
diff --git a/flutter/ios/Shared/Logger.swift b/source/ios/Shared/Logger.swift
similarity index 100%
rename from flutter/ios/Shared/Logger.swift
rename to source/ios/Shared/Logger.swift
diff --git a/flutter/ios/Shared/PacketTunnelProvider.swift b/source/ios/Shared/PacketTunnelProvider.swift
similarity index 100%
rename from flutter/ios/Shared/PacketTunnelProvider.swift
rename to source/ios/Shared/PacketTunnelProvider.swift
diff --git a/flutter/ios/Shared/TunnelConfiguration.swift b/source/ios/Shared/TunnelConfiguration.swift
similarity index 100%
rename from flutter/ios/Shared/TunnelConfiguration.swift
rename to source/ios/Shared/TunnelConfiguration.swift
diff --git a/flutter/ios/Shared/VPNManager.swift b/source/ios/Shared/VPNManager.swift
similarity index 100%
rename from flutter/ios/Shared/VPNManager.swift
rename to source/ios/Shared/VPNManager.swift
diff --git a/flutter/ios/Shared/template.conf b/source/ios/Shared/template.conf
similarity index 100%
rename from flutter/ios/Shared/template.conf
rename to source/ios/Shared/template.conf
diff --git a/flutter/ios/leaf.xcframework/Info.plist b/source/ios/leaf.xcframework/Info.plist
similarity index 100%
rename from flutter/ios/leaf.xcframework/Info.plist
rename to source/ios/leaf.xcframework/Info.plist
diff --git a/flutter/ios/leaf.xcframework/ios-arm64/Headers/leaf.h b/source/ios/leaf.xcframework/ios-arm64/Headers/leaf.h
similarity index 100%
rename from flutter/ios/leaf.xcframework/ios-arm64/Headers/leaf.h
rename to source/ios/leaf.xcframework/ios-arm64/Headers/leaf.h
diff --git a/flutter/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap b/source/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap
similarity index 100%
rename from flutter/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap
rename to source/ios/leaf.xcframework/ios-arm64/Headers/module.modulemap
diff --git a/flutter/ios/leaf.xcframework/ios-arm64/libleaf.a b/source/ios/leaf.xcframework/ios-arm64/libleaf.a
similarity index 100%
rename from flutter/ios/leaf.xcframework/ios-arm64/libleaf.a
rename to source/ios/leaf.xcframework/ios-arm64/libleaf.a
diff --git a/flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h b/source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h
similarity index 100%
rename from flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h
rename to source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/leaf.h
diff --git a/flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap b/source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap
similarity index 100%
rename from flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap
rename to source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap
diff --git a/flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a b/source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a
similarity index 100%
rename from flutter/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a
rename to source/ios/leaf.xcframework/ios-arm64_x86_64-simulator/libleaf.a
diff --git a/flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h b/source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h
similarity index 100%
rename from flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h
rename to source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/leaf.h
diff --git a/flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap b/source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap
similarity index 100%
rename from flutter/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap
rename to source/ios/leaf.xcframework/macos-arm64_x86_64/Headers/module.modulemap
diff --git a/flutter/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a b/source/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a
similarity index 100%
rename from flutter/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a
rename to source/ios/leaf.xcframework/macos-arm64_x86_64/libleaf.a
diff --git a/flutter/ios/misc/download_data.sh b/source/ios/misc/download_data.sh
similarity index 100%
rename from flutter/ios/misc/download_data.sh
rename to source/ios/misc/download_data.sh
diff --git a/flutter/ios/misc/download_leaf.sh b/source/ios/misc/download_leaf.sh
similarity index 100%
rename from flutter/ios/misc/download_leaf.sh
rename to source/ios/misc/download_leaf.sh
diff --git a/flutter/l10n.yaml b/source/l10n.yaml
similarity index 100%
rename from flutter/l10n.yaml
rename to source/l10n.yaml
diff --git a/flutter/lib/adapters/leaf_ffi/config.dart b/source/lib/adapters/leaf_ffi/config.dart
similarity index 100%
rename from flutter/lib/adapters/leaf_ffi/config.dart
rename to source/lib/adapters/leaf_ffi/config.dart
diff --git a/flutter/lib/channels/Platform.dart b/source/lib/channels/Platform.dart
similarity index 100%
rename from flutter/lib/channels/Platform.dart
rename to source/lib/channels/Platform.dart
diff --git a/flutter/lib/channels/vpn_manager.dart b/source/lib/channels/vpn_manager.dart
similarity index 100%
rename from flutter/lib/channels/vpn_manager.dart
rename to source/lib/channels/vpn_manager.dart
diff --git a/flutter/lib/common/StringUtils.dart b/source/lib/common/StringUtils.dart
similarity index 100%
rename from flutter/lib/common/StringUtils.dart
rename to source/lib/common/StringUtils.dart
diff --git a/flutter/lib/common/colours.dart b/source/lib/common/colours.dart
similarity index 100%
rename from flutter/lib/common/colours.dart
rename to source/lib/common/colours.dart
diff --git a/flutter/lib/common/global.dart b/source/lib/common/global.dart
similarity index 100%
rename from flutter/lib/common/global.dart
rename to source/lib/common/global.dart
diff --git a/flutter/lib/common/public.dart b/source/lib/common/public.dart
similarity index 100%
rename from flutter/lib/common/public.dart
rename to source/lib/common/public.dart
diff --git a/flutter/lib/common/screen.dart b/source/lib/common/screen.dart
similarity index 100%
rename from flutter/lib/common/screen.dart
rename to source/lib/common/screen.dart
diff --git a/flutter/lib/common/styles.dart b/source/lib/common/styles.dart
similarity index 100%
rename from flutter/lib/common/styles.dart
rename to source/lib/common/styles.dart
diff --git a/flutter/lib/constant/app_colors.dart b/source/lib/constant/app_colors.dart
similarity index 100%
rename from flutter/lib/constant/app_colors.dart
rename to source/lib/constant/app_colors.dart
diff --git a/flutter/lib/constant/app_dimens.dart b/source/lib/constant/app_dimens.dart
similarity index 100%
rename from flutter/lib/constant/app_dimens.dart
rename to source/lib/constant/app_dimens.dart
diff --git a/flutter/lib/constant/app_images.dart b/source/lib/constant/app_images.dart
similarity index 100%
rename from flutter/lib/constant/app_images.dart
rename to source/lib/constant/app_images.dart
diff --git a/flutter/lib/constant/app_strings.dart b/source/lib/constant/app_strings.dart
similarity index 100%
rename from flutter/lib/constant/app_strings.dart
rename to source/lib/constant/app_strings.dart
diff --git a/flutter/lib/constant/app_urls.dart b/source/lib/constant/app_urls.dart
similarity index 100%
rename from flutter/lib/constant/app_urls.dart
rename to source/lib/constant/app_urls.dart
diff --git a/flutter/lib/entity/login_entity.dart b/source/lib/entity/login_entity.dart
similarity index 100%
rename from flutter/lib/entity/login_entity.dart
rename to source/lib/entity/login_entity.dart
diff --git a/flutter/lib/entity/plan_entity.dart b/source/lib/entity/plan_entity.dart
similarity index 100%
rename from flutter/lib/entity/plan_entity.dart
rename to source/lib/entity/plan_entity.dart
diff --git a/flutter/lib/entity/server_entity.dart b/source/lib/entity/server_entity.dart
similarity index 100%
rename from flutter/lib/entity/server_entity.dart
rename to source/lib/entity/server_entity.dart
diff --git a/flutter/lib/entity/user_entity.dart b/source/lib/entity/user_entity.dart
similarity index 100%
rename from flutter/lib/entity/user_entity.dart
rename to source/lib/entity/user_entity.dart
diff --git a/flutter/lib/entity/user_subscribe_entity.dart b/source/lib/entity/user_subscribe_entity.dart
similarity index 100%
rename from flutter/lib/entity/user_subscribe_entity.dart
rename to source/lib/entity/user_subscribe_entity.dart
diff --git a/flutter/lib/http/api/apis.dart b/source/lib/http/api/apis.dart
similarity index 100%
rename from flutter/lib/http/api/apis.dart
rename to source/lib/http/api/apis.dart
diff --git a/flutter/lib/http/api_response.dart b/source/lib/http/api_response.dart
similarity index 100%
rename from flutter/lib/http/api_response.dart
rename to source/lib/http/api_response.dart
diff --git a/flutter/lib/http/error_interceptor.dart b/source/lib/http/error_interceptor.dart
similarity index 100%
rename from flutter/lib/http/error_interceptor.dart
rename to source/lib/http/error_interceptor.dart
diff --git a/flutter/lib/http/http.dart b/source/lib/http/http.dart
similarity index 100%
rename from flutter/lib/http/http.dart
rename to source/lib/http/http.dart
diff --git a/flutter/lib/http/http_exceptions.dart b/source/lib/http/http_exceptions.dart
similarity index 100%
rename from flutter/lib/http/http_exceptions.dart
rename to source/lib/http/http_exceptions.dart
diff --git a/flutter/lib/http/http_utils.dart b/source/lib/http/http_utils.dart
similarity index 100%
rename from flutter/lib/http/http_utils.dart
rename to source/lib/http/http_utils.dart
diff --git a/flutter/lib/l10n/app_en.arb b/source/lib/l10n/app_en.arb
similarity index 100%
rename from flutter/lib/l10n/app_en.arb
rename to source/lib/l10n/app_en.arb
diff --git a/flutter/lib/l10n/app_zh.arb b/source/lib/l10n/app_zh.arb
similarity index 100%
rename from flutter/lib/l10n/app_zh.arb
rename to source/lib/l10n/app_zh.arb
diff --git a/flutter/lib/main.dart b/source/lib/main.dart
similarity index 100%
rename from flutter/lib/main.dart
rename to source/lib/main.dart
diff --git a/flutter/lib/model/UserPreference.dart b/source/lib/model/UserPreference.dart
similarity index 100%
rename from flutter/lib/model/UserPreference.dart
rename to source/lib/model/UserPreference.dart
diff --git a/flutter/lib/model/flags.dart b/source/lib/model/flags.dart
similarity index 100%
rename from flutter/lib/model/flags.dart
rename to source/lib/model/flags.dart
diff --git a/flutter/lib/model/themeCollection.dart b/source/lib/model/themeCollection.dart
similarity index 100%
rename from flutter/lib/model/themeCollection.dart
rename to source/lib/model/themeCollection.dart
diff --git a/flutter/lib/models/app_model.dart b/source/lib/models/app_model.dart
similarity index 100%
rename from flutter/lib/models/app_model.dart
rename to source/lib/models/app_model.dart
diff --git a/flutter/lib/models/base_model.dart b/source/lib/models/base_model.dart
similarity index 100%
rename from flutter/lib/models/base_model.dart
rename to source/lib/models/base_model.dart
diff --git a/flutter/lib/models/login_model.dart b/source/lib/models/login_model.dart
similarity index 100%
rename from flutter/lib/models/login_model.dart
rename to source/lib/models/login_model.dart
diff --git a/flutter/lib/models/page_state.dart b/source/lib/models/page_state.dart
similarity index 100%
rename from flutter/lib/models/page_state.dart
rename to source/lib/models/page_state.dart
diff --git a/flutter/lib/models/plan_model.dart b/source/lib/models/plan_model.dart
similarity index 100%
rename from flutter/lib/models/plan_model.dart
rename to source/lib/models/plan_model.dart
diff --git a/flutter/lib/models/server_model.dart b/source/lib/models/server_model.dart
similarity index 100%
rename from flutter/lib/models/server_model.dart
rename to source/lib/models/server_model.dart
diff --git a/flutter/lib/models/user_model.dart b/source/lib/models/user_model.dart
similarity index 100%
rename from flutter/lib/models/user_model.dart
rename to source/lib/models/user_model.dart
diff --git a/flutter/lib/models/user_subscribe_model.dart b/source/lib/models/user_subscribe_model.dart
similarity index 100%
rename from flutter/lib/models/user_subscribe_model.dart
rename to source/lib/models/user_subscribe_model.dart
diff --git a/flutter/lib/pages/404/not_find_page.dart b/source/lib/pages/404/not_find_page.dart
similarity index 100%
rename from flutter/lib/pages/404/not_find_page.dart
rename to source/lib/pages/404/not_find_page.dart
diff --git a/flutter/lib/pages/ProOnecePage.dart b/source/lib/pages/ProOnecePage.dart
similarity index 100%
rename from flutter/lib/pages/ProOnecePage.dart
rename to source/lib/pages/ProOnecePage.dart
diff --git a/flutter/lib/pages/accountPage.dart b/source/lib/pages/accountPage.dart
similarity index 100%
rename from flutter/lib/pages/accountPage.dart
rename to source/lib/pages/accountPage.dart
diff --git a/flutter/lib/pages/crisp_page.dart b/source/lib/pages/crisp_page.dart
similarity index 100%
rename from flutter/lib/pages/crisp_page.dart
rename to source/lib/pages/crisp_page.dart
diff --git a/flutter/lib/pages/home/home_page.dart b/source/lib/pages/home/home_page.dart
similarity index 100%
rename from flutter/lib/pages/home/home_page.dart
rename to source/lib/pages/home/home_page.dart
diff --git a/flutter/lib/pages/homePage.dart b/source/lib/pages/homePage.dart
similarity index 100%
rename from flutter/lib/pages/homePage.dart
rename to source/lib/pages/homePage.dart
diff --git a/flutter/lib/pages/login/login_page.dart b/source/lib/pages/login/login_page.dart
similarity index 100%
rename from flutter/lib/pages/login/login_page.dart
rename to source/lib/pages/login/login_page.dart
diff --git a/flutter/lib/pages/my_profile.dart b/source/lib/pages/my_profile.dart
similarity index 100%
rename from flutter/lib/pages/my_profile.dart
rename to source/lib/pages/my_profile.dart
diff --git a/flutter/lib/pages/plan/plan_page.dart b/source/lib/pages/plan/plan_page.dart
similarity index 100%
rename from flutter/lib/pages/plan/plan_page.dart
rename to source/lib/pages/plan/plan_page.dart
diff --git a/flutter/lib/pages/proPage.dart b/source/lib/pages/proPage.dart
similarity index 100%
rename from flutter/lib/pages/proPage.dart
rename to source/lib/pages/proPage.dart
diff --git a/flutter/lib/pages/server_list.dart b/source/lib/pages/server_list.dart
similarity index 100%
rename from flutter/lib/pages/server_list.dart
rename to source/lib/pages/server_list.dart
diff --git a/flutter/lib/pages/webview_widget.dart b/source/lib/pages/webview_widget.dart
similarity index 100%
rename from flutter/lib/pages/webview_widget.dart
rename to source/lib/pages/webview_widget.dart
diff --git a/flutter/lib/resources/app_colors.dart b/source/lib/resources/app_colors.dart
similarity index 100%
rename from flutter/lib/resources/app_colors.dart
rename to source/lib/resources/app_colors.dart
diff --git a/flutter/lib/resources/app_constants.dart b/source/lib/resources/app_constants.dart
similarity index 100%
rename from flutter/lib/resources/app_constants.dart
rename to source/lib/resources/app_constants.dart
diff --git a/flutter/lib/resources/app_router.dart b/source/lib/resources/app_router.dart
similarity index 100%
rename from flutter/lib/resources/app_router.dart
rename to source/lib/resources/app_router.dart
diff --git a/flutter/lib/resources/app_routes.dart b/source/lib/resources/app_routes.dart
similarity index 100%
rename from flutter/lib/resources/app_routes.dart
rename to source/lib/resources/app_routes.dart
diff --git a/flutter/lib/resources/app_shape.dart b/source/lib/resources/app_shape.dart
similarity index 100%
rename from flutter/lib/resources/app_shape.dart
rename to source/lib/resources/app_shape.dart
diff --git a/flutter/lib/resources/app_strings.dart b/source/lib/resources/app_strings.dart
similarity index 100%
rename from flutter/lib/resources/app_strings.dart
rename to source/lib/resources/app_strings.dart
diff --git a/flutter/lib/resources/app_theme.dart b/source/lib/resources/app_theme.dart
similarity index 100%
rename from flutter/lib/resources/app_theme.dart
rename to source/lib/resources/app_theme.dart
diff --git a/flutter/lib/resources/app_typography.dart b/source/lib/resources/app_typography.dart
similarity index 100%
rename from flutter/lib/resources/app_typography.dart
rename to source/lib/resources/app_typography.dart
diff --git a/flutter/lib/resources/app_values.dart b/source/lib/resources/app_values.dart
similarity index 100%
rename from flutter/lib/resources/app_values.dart
rename to source/lib/resources/app_values.dart
diff --git a/flutter/lib/router/application.dart b/source/lib/router/application.dart
similarity index 100%
rename from flutter/lib/router/application.dart
rename to source/lib/router/application.dart
diff --git a/flutter/lib/router/router_handlers.dart b/source/lib/router/router_handlers.dart
similarity index 100%
rename from flutter/lib/router/router_handlers.dart
rename to source/lib/router/router_handlers.dart
diff --git a/flutter/lib/router/routers.dart b/source/lib/router/routers.dart
similarity index 100%
rename from flutter/lib/router/routers.dart
rename to source/lib/router/routers.dart
diff --git a/flutter/lib/routes/OnceNotice.dart b/source/lib/routes/OnceNotice.dart
similarity index 100%
rename from flutter/lib/routes/OnceNotice.dart
rename to source/lib/routes/OnceNotice.dart
diff --git a/flutter/lib/routes/chooseLocationRoute.dart b/source/lib/routes/chooseLocationRoute.dart
similarity index 100%
rename from flutter/lib/routes/chooseLocationRoute.dart
rename to source/lib/routes/chooseLocationRoute.dart
diff --git a/flutter/lib/routes/proRoute.dart b/source/lib/routes/proRoute.dart
similarity index 100%
rename from flutter/lib/routes/proRoute.dart
rename to source/lib/routes/proRoute.dart
diff --git a/flutter/lib/routes/settingsRoute.dart b/source/lib/routes/settingsRoute.dart
similarity index 100%
rename from flutter/lib/routes/settingsRoute.dart
rename to source/lib/routes/settingsRoute.dart
diff --git a/flutter/lib/service/plan_service.dart b/source/lib/service/plan_service.dart
similarity index 100%
rename from flutter/lib/service/plan_service.dart
rename to source/lib/service/plan_service.dart
diff --git a/flutter/lib/service/server_service.dart b/source/lib/service/server_service.dart
similarity index 100%
rename from flutter/lib/service/server_service.dart
rename to source/lib/service/server_service.dart
diff --git a/flutter/lib/service/user_service.dart b/source/lib/service/user_service.dart
similarity index 100%
rename from flutter/lib/service/user_service.dart
rename to source/lib/service/user_service.dart
diff --git a/flutter/lib/utils/common_util.dart b/source/lib/utils/common_util.dart
similarity index 100%
rename from flutter/lib/utils/common_util.dart
rename to source/lib/utils/common_util.dart
diff --git a/flutter/lib/utils/encrypt_util.dart b/source/lib/utils/encrypt_util.dart
similarity index 100%
rename from flutter/lib/utils/encrypt_util.dart
rename to source/lib/utils/encrypt_util.dart
diff --git a/flutter/lib/utils/http_util.dart b/source/lib/utils/http_util.dart
similarity index 100%
rename from flutter/lib/utils/http_util.dart
rename to source/lib/utils/http_util.dart
diff --git a/flutter/lib/utils/l10n.dart b/source/lib/utils/l10n.dart
similarity index 100%
rename from flutter/lib/utils/l10n.dart
rename to source/lib/utils/l10n.dart
diff --git a/flutter/lib/utils/message_util.dart b/source/lib/utils/message_util.dart
similarity index 100%
rename from flutter/lib/utils/message_util.dart
rename to source/lib/utils/message_util.dart
diff --git a/flutter/lib/utils/navigator_util.dart b/source/lib/utils/navigator_util.dart
similarity index 100%
rename from flutter/lib/utils/navigator_util.dart
rename to source/lib/utils/navigator_util.dart
diff --git a/flutter/lib/utils/shared_preferences_util.dart b/source/lib/utils/shared_preferences_util.dart
similarity index 100%
rename from flutter/lib/utils/shared_preferences_util.dart
rename to source/lib/utils/shared_preferences_util.dart
diff --git a/flutter/lib/utils/sliver_grid_delegate.dart b/source/lib/utils/sliver_grid_delegate.dart
similarity index 100%
rename from flutter/lib/utils/sliver_grid_delegate.dart
rename to source/lib/utils/sliver_grid_delegate.dart
diff --git a/flutter/lib/utils/sp_util.dart b/source/lib/utils/sp_util.dart
similarity index 100%
rename from flutter/lib/utils/sp_util.dart
rename to source/lib/utils/sp_util.dart
diff --git a/flutter/lib/utils/status.dart b/source/lib/utils/status.dart
similarity index 100%
rename from flutter/lib/utils/status.dart
rename to source/lib/utils/status.dart
diff --git a/flutter/lib/utils/strings.dart b/source/lib/utils/strings.dart
similarity index 100%
rename from flutter/lib/utils/strings.dart
rename to source/lib/utils/strings.dart
diff --git a/flutter/lib/utils/transfer_util.dart b/source/lib/utils/transfer_util.dart
similarity index 100%
rename from flutter/lib/utils/transfer_util.dart
rename to source/lib/utils/transfer_util.dart
diff --git a/flutter/lib/utils/typedef/enums.dart b/source/lib/utils/typedef/enums.dart
similarity index 100%
rename from flutter/lib/utils/typedef/enums.dart
rename to source/lib/utils/typedef/enums.dart
diff --git a/flutter/lib/utils/typedef/function.dart b/source/lib/utils/typedef/function.dart
similarity index 100%
rename from flutter/lib/utils/typedef/function.dart
rename to source/lib/utils/typedef/function.dart
diff --git a/flutter/lib/utils/typedef/functions.dart b/source/lib/utils/typedef/functions.dart
similarity index 100%
rename from flutter/lib/utils/typedef/functions.dart
rename to source/lib/utils/typedef/functions.dart
diff --git a/flutter/lib/utils/ui/auto_ui.dart b/source/lib/utils/ui/auto_ui.dart
similarity index 100%
rename from flutter/lib/utils/ui/auto_ui.dart
rename to source/lib/utils/ui/auto_ui.dart
diff --git a/flutter/lib/widgets/ProgressView.dart b/source/lib/widgets/ProgressView.dart
similarity index 100%
rename from flutter/lib/widgets/ProgressView.dart
rename to source/lib/widgets/ProgressView.dart
diff --git a/flutter/lib/widgets/bottom_block.dart b/source/lib/widgets/bottom_block.dart
similarity index 100%
rename from flutter/lib/widgets/bottom_block.dart
rename to source/lib/widgets/bottom_block.dart
diff --git a/flutter/lib/widgets/circle_painter.dart b/source/lib/widgets/circle_painter.dart
similarity index 100%
rename from flutter/lib/widgets/circle_painter.dart
rename to source/lib/widgets/circle_painter.dart
diff --git a/flutter/lib/widgets/connection_stats.dart b/source/lib/widgets/connection_stats.dart
similarity index 100%
rename from flutter/lib/widgets/connection_stats.dart
rename to source/lib/widgets/connection_stats.dart
diff --git a/flutter/lib/widgets/home_widget.dart b/source/lib/widgets/home_widget.dart
similarity index 100%
rename from flutter/lib/widgets/home_widget.dart
rename to source/lib/widgets/home_widget.dart
diff --git a/flutter/lib/widgets/logo_bar.dart b/source/lib/widgets/logo_bar.dart
similarity index 100%
rename from flutter/lib/widgets/logo_bar.dart
rename to source/lib/widgets/logo_bar.dart
diff --git a/flutter/lib/widgets/my_subscribe.dart b/source/lib/widgets/my_subscribe.dart
similarity index 100%
rename from flutter/lib/widgets/my_subscribe.dart
rename to source/lib/widgets/my_subscribe.dart
diff --git a/flutter/lib/widgets/plan_list.dart b/source/lib/widgets/plan_list.dart
similarity index 100%
rename from flutter/lib/widgets/plan_list.dart
rename to source/lib/widgets/plan_list.dart
diff --git a/flutter/lib/widgets/power_btn.dart b/source/lib/widgets/power_btn.dart
similarity index 100%
rename from flutter/lib/widgets/power_btn.dart
rename to source/lib/widgets/power_btn.dart
diff --git a/flutter/lib/widgets/profile_widget.dart b/source/lib/widgets/profile_widget.dart
similarity index 100%
rename from flutter/lib/widgets/profile_widget.dart
rename to source/lib/widgets/profile_widget.dart
diff --git a/flutter/lib/widgets/recent_connection_bottom_sheet.dart b/source/lib/widgets/recent_connection_bottom_sheet.dart
similarity index 100%
rename from flutter/lib/widgets/recent_connection_bottom_sheet.dart
rename to source/lib/widgets/recent_connection_bottom_sheet.dart
diff --git a/flutter/lib/widgets/sail_app_bar.dart b/source/lib/widgets/sail_app_bar.dart
similarity index 100%
rename from flutter/lib/widgets/sail_app_bar.dart
rename to source/lib/widgets/sail_app_bar.dart
diff --git a/flutter/lib/widgets/select_location.dart b/source/lib/widgets/select_location.dart
similarity index 100%
rename from flutter/lib/widgets/select_location.dart
rename to source/lib/widgets/select_location.dart
diff --git a/flutter/lib/widgets/sliding_cards.dart b/source/lib/widgets/sliding_cards.dart
similarity index 100%
rename from flutter/lib/widgets/sliding_cards.dart
rename to source/lib/widgets/sliding_cards.dart
diff --git a/flutter/lib/widgets/watermuticicel.dart b/source/lib/widgets/watermuticicel.dart
similarity index 100%
rename from flutter/lib/widgets/watermuticicel.dart
rename to source/lib/widgets/watermuticicel.dart
diff --git a/flutter/lib/widgets/waterrepper.dart b/source/lib/widgets/waterrepper.dart
similarity index 100%
rename from flutter/lib/widgets/waterrepper.dart
rename to source/lib/widgets/waterrepper.dart
diff --git a/flutter/pubspec.yaml b/source/pubspec.yaml
similarity index 100%
rename from flutter/pubspec.yaml
rename to source/pubspec.yaml
diff --git a/flutter/test/widget_test.dart b/source/test/widget_test.dart
similarity index 100%
rename from flutter/test/widget_test.dart
rename to source/test/widget_test.dart
diff --git a/flutter/timefile b/source/timefile
similarity index 100%
rename from flutter/timefile
rename to source/timefile